{"version":3,"file":"bungie-api-angular.mjs","sources":["../../../projects/bungie-api-angular/src/lib/configuration.ts","../../../projects/bungie-api-angular/src/lib/api.module.ts","../../../projects/bungie-api-angular/src/lib/model/applicationsApplicationScopes.ts","../../../projects/bungie-api-angular/src/lib/model/applicationsApplicationStatus.ts","../../../projects/bungie-api-angular/src/lib/model/applicationsDeveloperRole.ts","../../../projects/bungie-api-angular/src/lib/model/bungieCredentialType.ts","../../../projects/bungie-api-angular/src/lib/model/bungieMembershipType.ts","../../../projects/bungie-api-angular/src/lib/model/componentsComponentPrivacySetting.ts","../../../projects/bungie-api-angular/src/lib/model/contentModelsContentPropertyDataTypeEnum.ts","../../../projects/bungie-api-angular/src/lib/model/destinyActivityGraphNodeHighlightType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyAdvancedAwaResponseReason.ts","../../../projects/bungie-api-angular/src/lib/model/destinyAdvancedAwaType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyAdvancedAwaUserSelection.ts","../../../projects/bungie-api-angular/src/lib/model/destinyBucketCategory.ts","../../../projects/bungie-api-angular/src/lib/model/destinyBucketScope.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDamageType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDefinitionsDestinyActivityDefinition.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDefinitionsDestinyActivityPlaylistItemDefinition.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDefinitionsDestinyRewardSourceCategory.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDefinitionsDestinyTalentNodeStepDamageTypes.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDefinitionsDestinyTalentNodeStepGuardianAttributes.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDefinitionsDestinyTalentNodeStepImpactEffects.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDefinitionsDestinyTalentNodeStepLightAbilities.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDefinitionsDestinyTalentNodeStepWeaponPerformances.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDefinitionsMilestonesDestinyMilestoneDisplayPreference.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDefinitionsMilestonesDestinyMilestoneType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyActivityDifficultyTier.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyActivityModeCategory.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyActivityNavPointType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyAmmunitionType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyBreakerType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyClass.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyCollectibleState.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyComponentType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyEnergyType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyGamePrivacySetting.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyGameVersions.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyGatingScope.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyGender.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyGraphNodeState.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyItemSortType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyItemSubType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyItemType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyJoinClosedReasons.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyObjectiveGrantStyle.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyObjectiveUiStyle.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyPartyMemberStates.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyPresentationDisplayStyle.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyPresentationNodeState.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyPresentationNodeType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyPresentationScreenStyle.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyProgressionRewardItemAcquisitionBehavior.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyProgressionRewardItemState.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyProgressionScope.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyProgressionStepDisplayEffect.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyRace.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyRecordState.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyRecordToastStyle.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyRecordValueStyle.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyScope.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinySocketCategoryStyle.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinySocketVisibility.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyStatAggregationType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyStatCategory.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyTalentNodeState.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyUnlockValueUIStyle.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyVendorFilter.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyVendorInteractionRewardSelection.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyVendorItemRefundPolicy.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyVendorItemState.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyVendorProgressionType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyDestinyVendorReplyType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyEntitiesCharactersDestinyCharacterActivitiesComponent.ts","../../../projects/bungie-api-angular/src/lib/model/destinyEntitiesItemsDestinyItemInstanceComponent.ts","../../../projects/bungie-api-angular/src/lib/model/destinyEquipFailureReason.ts","../../../projects/bungie-api-angular/src/lib/model/destinyEquippingItemBlockAttributes.ts","../../../projects/bungie-api-angular/src/lib/model/destinyHistoricalStatsDefinitionsDestinyActivityModeType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyHistoricalStatsDefinitionsDestinyHistoricalStatsDefinition.ts","../../../projects/bungie-api-angular/src/lib/model/destinyHistoricalStatsDefinitionsDestinyStatsCategoryType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyHistoricalStatsDefinitionsDestinyStatsGroupType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyHistoricalStatsDefinitionsDestinyStatsMergeMethod.ts","../../../projects/bungie-api-angular/src/lib/model/destinyHistoricalStatsDefinitionsPeriodType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyHistoricalStatsDefinitionsUnitType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyItemBindStatus.ts","../../../projects/bungie-api-angular/src/lib/model/destinyItemLocation.ts","../../../projects/bungie-api-angular/src/lib/model/destinyItemPerkVisibility.ts","../../../projects/bungie-api-angular/src/lib/model/destinyItemState.ts","../../../projects/bungie-api-angular/src/lib/model/destinyMilestonesDestinyMilestoneActivity.ts","../../../projects/bungie-api-angular/src/lib/model/destinyMilestonesDestinyMilestoneActivityVariant.ts","../../../projects/bungie-api-angular/src/lib/model/destinyMilestonesDestinyMilestoneQuestActivity.ts","../../../projects/bungie-api-angular/src/lib/model/destinyMilestonesDestinyPublicMilestoneActivity.ts","../../../projects/bungie-api-angular/src/lib/model/destinyMilestonesDestinyPublicMilestoneActivityVariant.ts","../../../projects/bungie-api-angular/src/lib/model/destinyMilestonesDestinyPublicMilestoneQuestActivity.ts","../../../projects/bungie-api-angular/src/lib/model/destinyPlugAvailabilityMode.ts","../../../projects/bungie-api-angular/src/lib/model/destinyPlugUiStyles.ts","../../../projects/bungie-api-angular/src/lib/model/destinyRequestsActionsDestinySocketArrayType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyResponsesDestinyProfileUserInfoCard.ts","../../../projects/bungie-api-angular/src/lib/model/destinySocketPlugSources.ts","../../../projects/bungie-api-angular/src/lib/model/destinySocketTypeActionType.ts","../../../projects/bungie-api-angular/src/lib/model/destinySpecialItemType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyTierType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyTransferStatuses.ts","../../../projects/bungie-api-angular/src/lib/model/destinyVendorDisplayCategorySortOrder.ts","../../../projects/bungie-api-angular/src/lib/model/destinyVendorInteractionType.ts","../../../projects/bungie-api-angular/src/lib/model/destinyVendorItemStatus.ts","../../../projects/bungie-api-angular/src/lib/model/exceptionsPlatformErrorCodes.ts","../../../projects/bungie-api-angular/src/lib/model/fireteamFireteamDateRange.ts","../../../projects/bungie-api-angular/src/lib/model/fireteamFireteamPlatform.ts","../../../projects/bungie-api-angular/src/lib/model/fireteamFireteamPlatformInviteResult.ts","../../../projects/bungie-api-angular/src/lib/model/fireteamFireteamPublicSearchOption.ts","../../../projects/bungie-api-angular/src/lib/model/fireteamFireteamSlotSearch.ts","../../../projects/bungie-api-angular/src/lib/model/forumCommunityContentSortMode.ts","../../../projects/bungie-api-angular/src/lib/model/forumForumMediaType.ts","../../../projects/bungie-api-angular/src/lib/model/forumForumPostPopularity.ts","../../../projects/bungie-api-angular/src/lib/model/forumForumPostSortEnum.ts","../../../projects/bungie-api-angular/src/lib/model/forumForumRecruitmentIntensityLabel.ts","../../../projects/bungie-api-angular/src/lib/model/forumForumRecruitmentToneLabel.ts","../../../projects/bungie-api-angular/src/lib/model/forumForumTopicsCategoryFiltersEnum.ts","../../../projects/bungie-api-angular/src/lib/model/forumForumTopicsQuickDateEnum.ts","../../../projects/bungie-api-angular/src/lib/model/forumForumTopicsSortEnum.ts","../../../projects/bungie-api-angular/src/lib/model/forumsForumFlagsEnum.ts","../../../projects/bungie-api-angular/src/lib/model/forumsForumPostCategoryEnums.ts","../../../projects/bungie-api-angular/src/lib/model/globalAlertLevel.ts","../../../projects/bungie-api-angular/src/lib/model/globalAlertType.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2Capabilities.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2ChatSecuritySetting.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupAllianceStatus.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupApplicationResolveState.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupDateRange.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupEditAction.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupHomepage.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupMemberCountFilter.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupOptionalConversationEditRequest.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupOptionsEditAction.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupPostPublicity.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupPotentialMemberStatus.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupQuery.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupSortBy.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupType.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2GroupsForMemberFilter.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2HostGuidedGamesPermissionLevel.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2MembershipOption.ts","../../../projects/bungie-api-angular/src/lib/model/groupsV2RuntimeGroupMemberType.ts","../../../projects/bungie-api-angular/src/lib/model/ignoresIgnoreLength.ts","../../../projects/bungie-api-angular/src/lib/model/ignoresIgnoreStatus.ts","../../../projects/bungie-api-angular/src/lib/model/socialFriendsFriendRelationshipState.ts","../../../projects/bungie-api-angular/src/lib/model/socialFriendsPlatformFriend.ts","../../../projects/bungie-api-angular/src/lib/model/socialFriendsPlatformFriendType.ts","../../../projects/bungie-api-angular/src/lib/model/socialFriendsPresenceOnlineStateFlags.ts","../../../projects/bungie-api-angular/src/lib/model/socialFriendsPresenceStatus.ts","../../../projects/bungie-api-angular/src/lib/model/streamingDropStateEnum.ts","../../../projects/bungie-api-angular/src/lib/model/tokensPartnerOfferHistoryResponse.ts","../../../projects/bungie-api-angular/src/lib/model/trendingTrendingEntryType.ts","../../../projects/bungie-api-angular/src/lib/model/userOptInFlags.ts","../../../projects/bungie-api-angular/src/lib/encoder.ts","../../../projects/bungie-api-angular/src/lib/variables.ts","../../../projects/bungie-api-angular/src/lib/api/app.service.ts","../../../projects/bungie-api-angular/src/lib/api/communityContent.service.ts","../../../projects/bungie-api-angular/src/lib/api/content.service.ts","../../../projects/bungie-api-angular/src/lib/api/default.service.ts","../../../projects/bungie-api-angular/src/lib/api/destiny2.service.ts","../../../projects/bungie-api-angular/src/lib/api/fireteam.service.ts","../../../projects/bungie-api-angular/src/lib/api/forum.service.ts","../../../projects/bungie-api-angular/src/lib/api/groupV2.service.ts","../../../projects/bungie-api-angular/src/lib/api/preview.service.ts","../../../projects/bungie-api-angular/src/lib/api/tokens.service.ts","../../../projects/bungie-api-angular/src/lib/api/trending.service.ts","../../../projects/bungie-api-angular/src/lib/api/user.service.ts","../../../projects/bungie-api-angular/src/public-api.ts","../../../projects/bungie-api-angular/src/bungie-api-angular.ts"],"sourcesContent":["import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    apiKeys?: {[ key: string ]: string};\n    username?: string;\n    password?: string;\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    accessToken?: string | (() => string);\n    basePath?: string;\n    withCredentials?: boolean;\n    encoder?: HttpParameterCodec;\n    /**\n     * The keys are the names in the securitySchemes section of the OpenAPI\n     * document. They should map to the value used for authentication\n     * minus any standard prefixes such as 'Basic' or 'Bearer'.\n     */\n    credentials?: {[ key: string ]: string | (() => string | undefined)};\n}\n\nexport class Configuration {\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    apiKeys?: {[ key: string ]: string};\n    username?: string;\n    password?: string;\n    /**\n     *  @deprecated Since 5.0. Use credentials instead\n     */\n    accessToken?: string | (() => string);\n    basePath?: string;\n    withCredentials?: boolean;\n    encoder?: HttpParameterCodec;\n    /**\n     * The keys are the names in the securitySchemes section of the OpenAPI\n     * document. They should map to the value used for authentication\n     * minus any standard prefixes such as 'Basic' or 'Bearer'.\n     */\n    credentials: {[ key: string ]: string | (() => string | undefined)};\n\n    constructor(configurationParameters: ConfigurationParameters = {}) {\n        this.apiKeys = configurationParameters.apiKeys;\n        this.username = configurationParameters.username;\n        this.password = configurationParameters.password;\n        this.accessToken = configurationParameters.accessToken;\n        this.basePath = configurationParameters.basePath;\n        this.withCredentials = configurationParameters.withCredentials;\n        this.encoder = configurationParameters.encoder;\n        if (configurationParameters.credentials) {\n            this.credentials = configurationParameters.credentials;\n        }\n        else {\n            this.credentials = {};\n        }\n\n        // init default apiKey credential\n        if (!this.credentials['apiKey']) {\n            this.credentials['apiKey'] = () => {\n                if (this.apiKeys === null || this.apiKeys === undefined) {\n                    return undefined;\n                } else {\n                    return this.apiKeys['apiKey'] || this.apiKeys['X-API-Key'];\n                }\n            };\n        }\n\n        // init default oauth2 credential\n        if (!this.credentials['oauth2']) {\n            this.credentials['oauth2'] = () => {\n                return typeof this.accessToken === 'function'\n                    ? this.accessToken()\n                    : this.accessToken;\n            };\n        }\n    }\n\n    /**\n     * Select the correct content-type to use for a request.\n     * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n     * If no content type is found return the first found type if the contentTypes is not empty\n     * @param contentTypes - the array of content types that are available for selection\n     * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n     */\n    public selectHeaderContentType (contentTypes: string[]): string | undefined {\n        if (contentTypes.length === 0) {\n            return undefined;\n        }\n\n        const type = contentTypes.find((x: string) => this.isJsonMime(x));\n        if (type === undefined) {\n            return contentTypes[0];\n        }\n        return type;\n    }\n\n    /**\n     * Select the correct accept content-type to use for a request.\n     * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n     * If no content type is found return the first found type if the contentTypes is not empty\n     * @param accepts - the array of content types that are available for selection.\n     * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n     */\n    public selectHeaderAccept(accepts: string[]): string | undefined {\n        if (accepts.length === 0) {\n            return undefined;\n        }\n\n        const type = accepts.find((x: string) => this.isJsonMime(x));\n        if (type === undefined) {\n            return accepts[0];\n        }\n        return type;\n    }\n\n    /**\n     * Check if the given MIME is a JSON MIME.\n     * JSON MIME examples:\n     *   application/json\n     *   application/json; charset=UTF8\n     *   APPLICATION/JSON\n     *   application/vnd.company+json\n     * @param mime - MIME (Multipurpose Internet Mail Extensions)\n     * @return True if the given MIME is JSON, false otherwise.\n     */\n    public isJsonMime(mime: string): boolean {\n        const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n        return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n    }\n\n    public lookupCredential(key: string): string | undefined {\n        const value = this.credentials[key];\n        return typeof value === 'function'\n            ? value()\n            : value;\n    }\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\nimport { DefaultService } from './api/default.service';\nimport { AppService } from './api/app.service';\nimport { CommunityContentService } from './api/communityContent.service';\nimport { ContentService } from './api/content.service';\nimport { Destiny2Service } from './api/destiny2.service';\nimport { FireteamService } from './api/fireteam.service';\nimport { ForumService } from './api/forum.service';\nimport { GroupV2Service } from './api/groupV2.service';\nimport { PreviewService } from './api/preview.service';\nimport { SocialService } from './api/social.service';\nimport { TokensService } from './api/tokens.service';\nimport { TrendingService } from './api/trending.service';\nimport { UserService } from './api/user.service';\n\n@NgModule({\n  imports:      [],\n  declarations: [],\n  exports:      [],\n  providers: []\n})\nexport class ApiModule {\n    public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> {\n        return {\n            ngModule: ApiModule,\n            providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n        };\n    }\n\n    constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n                 @Optional() http: HttpClient) {\n        if (parentModule) {\n            throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n        }\n        if (!http) {\n            throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n            'See also https://github.com/angular/angular/issues/20575');\n        }\n    }\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ApplicationsApplicationScopes = 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384;\n\nexport const ApplicationsApplicationScopes = {\n    NUMBER_1: 1 as ApplicationsApplicationScopes,\n    NUMBER_2: 2 as ApplicationsApplicationScopes,\n    NUMBER_4: 4 as ApplicationsApplicationScopes,\n    NUMBER_8: 8 as ApplicationsApplicationScopes,\n    NUMBER_16: 16 as ApplicationsApplicationScopes,\n    NUMBER_32: 32 as ApplicationsApplicationScopes,\n    NUMBER_64: 64 as ApplicationsApplicationScopes,\n    NUMBER_128: 128 as ApplicationsApplicationScopes,\n    NUMBER_256: 256 as ApplicationsApplicationScopes,\n    NUMBER_512: 512 as ApplicationsApplicationScopes,\n    NUMBER_1024: 1024 as ApplicationsApplicationScopes,\n    NUMBER_2048: 2048 as ApplicationsApplicationScopes,\n    NUMBER_4096: 4096 as ApplicationsApplicationScopes,\n    NUMBER_8192: 8192 as ApplicationsApplicationScopes,\n    NUMBER_16384: 16384 as ApplicationsApplicationScopes\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ApplicationsApplicationStatus = 0 | 1 | 2 | 3 | 4;\n\nexport const ApplicationsApplicationStatus = {\n    NUMBER_0: 0 as ApplicationsApplicationStatus,\n    NUMBER_1: 1 as ApplicationsApplicationStatus,\n    NUMBER_2: 2 as ApplicationsApplicationStatus,\n    NUMBER_3: 3 as ApplicationsApplicationStatus,\n    NUMBER_4: 4 as ApplicationsApplicationStatus\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ApplicationsDeveloperRole = 0 | 1 | 2;\n\nexport const ApplicationsDeveloperRole = {\n    NUMBER_0: 0 as ApplicationsDeveloperRole,\n    NUMBER_1: 1 as ApplicationsDeveloperRole,\n    NUMBER_2: 2 as ApplicationsDeveloperRole\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The types of credentials the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.CredentialType.\n */\nexport type BungieCredentialType = 0 | 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 12 | 14 | 16 | 18 | 20;\n\nexport const BungieCredentialType = {\n    NUMBER_0: 0 as BungieCredentialType,\n    NUMBER_1: 1 as BungieCredentialType,\n    NUMBER_2: 2 as BungieCredentialType,\n    NUMBER_3: 3 as BungieCredentialType,\n    NUMBER_4: 4 as BungieCredentialType,\n    NUMBER_5: 5 as BungieCredentialType,\n    NUMBER_8: 8 as BungieCredentialType,\n    NUMBER_9: 9 as BungieCredentialType,\n    NUMBER_10: 10 as BungieCredentialType,\n    NUMBER_12: 12 as BungieCredentialType,\n    NUMBER_14: 14 as BungieCredentialType,\n    NUMBER_16: 16 as BungieCredentialType,\n    NUMBER_18: 18 as BungieCredentialType,\n    NUMBER_20: 20 as BungieCredentialType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.\n */\nexport type BungieMembershipType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 10 | 254 | -1;\n\nexport const BungieMembershipType = {\n    NUMBER_0: 0 as BungieMembershipType,\n    NUMBER_1: 1 as BungieMembershipType,\n    NUMBER_2: 2 as BungieMembershipType,\n    NUMBER_3: 3 as BungieMembershipType,\n    NUMBER_4: 4 as BungieMembershipType,\n    NUMBER_5: 5 as BungieMembershipType,\n    NUMBER_6: 6 as BungieMembershipType,\n    NUMBER_10: 10 as BungieMembershipType,\n    NUMBER_254: 254 as BungieMembershipType,\n    NUMBER_MINUS_1: -1 as BungieMembershipType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A set of flags for reason(s) why the component populated in the way that it did. Inspect the individual flags for the reasons.\n */\nexport type ComponentsComponentPrivacySetting = 0 | 1 | 2;\n\nexport const ComponentsComponentPrivacySetting = {\n    NUMBER_0: 0 as ComponentsComponentPrivacySetting,\n    NUMBER_1: 1 as ComponentsComponentPrivacySetting,\n    NUMBER_2: 2 as ComponentsComponentPrivacySetting\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ContentModelsContentPropertyDataTypeEnum = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14;\n\nexport const ContentModelsContentPropertyDataTypeEnum = {\n    NUMBER_0: 0 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_1: 1 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_2: 2 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_3: 3 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_4: 4 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_5: 5 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_6: 6 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_7: 7 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_8: 8 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_9: 9 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_10: 10 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_11: 11 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_12: 12 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_13: 13 as ContentModelsContentPropertyDataTypeEnum,\n    NUMBER_14: 14 as ContentModelsContentPropertyDataTypeEnum\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The various known UI styles in which an item can be highlighted. It\\'ll be up to you to determine what you want to show based on this highlighting, BNet doesn\\'t have any assets that correspond to these states. And yeah, RiseOfIron and Comet have their own special highlight states. Don\\'t ask me, I can\\'t imagine they\\'re still used.\n */\nexport type DestinyActivityGraphNodeHighlightType = 0 | 1 | 2 | 3 | 4;\n\nexport const DestinyActivityGraphNodeHighlightType = {\n    NUMBER_0: 0 as DestinyActivityGraphNodeHighlightType,\n    NUMBER_1: 1 as DestinyActivityGraphNodeHighlightType,\n    NUMBER_2: 2 as DestinyActivityGraphNodeHighlightType,\n    NUMBER_3: 3 as DestinyActivityGraphNodeHighlightType,\n    NUMBER_4: 4 as DestinyActivityGraphNodeHighlightType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyAdvancedAwaResponseReason = 0 | 1 | 2 | 3;\n\nexport const DestinyAdvancedAwaResponseReason = {\n    NUMBER_0: 0 as DestinyAdvancedAwaResponseReason,\n    NUMBER_1: 1 as DestinyAdvancedAwaResponseReason,\n    NUMBER_2: 2 as DestinyAdvancedAwaResponseReason,\n    NUMBER_3: 3 as DestinyAdvancedAwaResponseReason\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyAdvancedAwaType = 0 | 1;\n\nexport const DestinyAdvancedAwaType = {\n    NUMBER_0: 0 as DestinyAdvancedAwaType,\n    NUMBER_1: 1 as DestinyAdvancedAwaType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyAdvancedAwaUserSelection = 0 | 1 | 2;\n\nexport const DestinyAdvancedAwaUserSelection = {\n    NUMBER_0: 0 as DestinyAdvancedAwaUserSelection,\n    NUMBER_1: 1 as DestinyAdvancedAwaUserSelection,\n    NUMBER_2: 2 as DestinyAdvancedAwaUserSelection\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyBucketCategory = 0 | 1 | 2 | 3 | 4;\n\nexport const DestinyBucketCategory = {\n    NUMBER_0: 0 as DestinyBucketCategory,\n    NUMBER_1: 1 as DestinyBucketCategory,\n    NUMBER_2: 2 as DestinyBucketCategory,\n    NUMBER_3: 3 as DestinyBucketCategory,\n    NUMBER_4: 4 as DestinyBucketCategory\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyBucketScope = 0 | 1;\n\nexport const DestinyBucketScope = {\n    NUMBER_0: 0 as DestinyBucketScope,\n    NUMBER_1: 1 as DestinyBucketScope\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDamageType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;\n\nexport const DestinyDamageType = {\n    NUMBER_0: 0 as DestinyDamageType,\n    NUMBER_1: 1 as DestinyDamageType,\n    NUMBER_2: 2 as DestinyDamageType,\n    NUMBER_3: 3 as DestinyDamageType,\n    NUMBER_4: 4 as DestinyDamageType,\n    NUMBER_5: 5 as DestinyDamageType,\n    NUMBER_6: 6 as DestinyDamageType,\n    NUMBER_7: 7 as DestinyDamageType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DestinyDefinitionsDestinyActivityDefinitionDisplayProperties } from './destinyDefinitionsDestinyActivityDefinitionDisplayProperties';\nimport { DestinyDefinitionsDestinyActivityDefinitionSelectionScreenDisplayProperties } from './destinyDefinitionsDestinyActivityDefinitionSelectionScreenDisplayProperties';\nimport { DestinyDefinitionsDestinyActivityModifierReferenceDefinition } from './destinyDefinitionsDestinyActivityModifierReferenceDefinition';\nimport { DestinyConstantsDestinyEnvironmentLocationMapping } from './destinyConstantsDestinyEnvironmentLocationMapping';\nimport { DestinyDefinitionsDestinyActivityGraphListEntryDefinition } from './destinyDefinitionsDestinyActivityGraphListEntryDefinition';\nimport { DestinyDefinitionsDestinyActivityLoadoutRequirementSet } from './destinyDefinitionsDestinyActivityLoadoutRequirementSet';\nimport { DestinyDefinitionsDestinyActivityDefinitionGuidedGame } from './destinyDefinitionsDestinyActivityDefinitionGuidedGame';\nimport { DestinyDefinitionsDestinyActivityUnlockStringDefinition } from './destinyDefinitionsDestinyActivityUnlockStringDefinition';\nimport { DestinyDefinitionsDestinyActivityDefinitionMatchmaking } from './destinyDefinitionsDestinyActivityDefinitionMatchmaking';\nimport { DestinyDefinitionsDestinyActivityDefinitionOriginalDisplayProperties } from './destinyDefinitionsDestinyActivityDefinitionOriginalDisplayProperties';\nimport { DestinyDefinitionsDestinyActivityRewardDefinition } from './destinyDefinitionsDestinyActivityRewardDefinition';\nimport { DestinyDefinitionsDestinyActivityChallengeDefinition } from './destinyDefinitionsDestinyActivityChallengeDefinition';\nimport { DestinyDefinitionsDestinyActivityInsertionPointDefinition } from './destinyDefinitionsDestinyActivityInsertionPointDefinition';\nimport { DestinyDefinitionsDestinyActivityPlaylistItemDefinition } from './destinyDefinitionsDestinyActivityPlaylistItemDefinition';\n\n\n/**\n * The static data about Activities in Destiny 2.  Note that an Activity must be combined with an ActivityMode to know - from a Gameplay perspective - what the user is \\\"Playing\\\".  In most PvE activities, this is fairly straightforward. A Story Activity can only be played in the Story Activity Mode.  However, in PvP activities, the Activity alone only tells you the map being played, or the Playlist that the user chose to enter. You\\'ll need to know the Activity Mode they\\'re playing to know that they\\'re playing Mode X on Map Y.  Activity Definitions tell a great deal of information about what *could* be relevant to a user: what rewards they can earn, what challenges could be performed, what modifiers could be applied. To figure out which of these properties is actually live, you\\'ll need to combine the definition with \\\"Live\\\" data from one of the Destiny endpoints.  Activities also have Activity Types, but unfortunately in Destiny 2 these are even less reliable of a source of information than they were in Destiny 1. I will be looking into ways to provide more reliable sources for type information as time goes on, but for now we\\'re going to have to deal with the limitations. See DestinyActivityTypeDefinition for more information.\n */\nexport interface DestinyDefinitionsDestinyActivityDefinition { \n    displayProperties?: DestinyDefinitionsDestinyActivityDefinitionDisplayProperties;\n    originalDisplayProperties?: DestinyDefinitionsDestinyActivityDefinitionOriginalDisplayProperties;\n    selectionScreenDisplayProperties?: DestinyDefinitionsDestinyActivityDefinitionSelectionScreenDisplayProperties;\n    /**\n     * If the activity has an icon associated with a specific release (such as a DLC), this is the path to that release\\'s icon.\n     */\n    releaseIcon?: string;\n    /**\n     * If the activity will not be visible until a specific and known time, this will be the seconds since the Epoch when it will become visible.\n     */\n    releaseTime?: number;\n    /**\n     * The recommended light level for this activity.\n     */\n    activityLightLevel?: number;\n    /**\n     * The hash identifier for the Destination on which this Activity is played. Use it to look up the DestinyDestinationDefinition for human readable info about the destination. A Destination can be thought of as a more specific location than a \\\"Place\\\". For instance, if the \\\"Place\\\" is Earth, the \\\"Destination\\\" would be a specific city or region on Earth.\n     */\n    destinationHash?: number;\n    /**\n     * The hash identifier for the \\\"Place\\\" on which this Activity is played. Use it to look up the DestinyPlaceDefinition for human readable info about the Place. A Place is the largest-scoped concept for location information. For instance, if the \\\"Place\\\" is Earth, the \\\"Destination\\\" would be a specific city or region on Earth.\n     */\n    placeHash?: number;\n    /**\n     * The hash identifier for the Activity Type of this Activity. You may use it to look up the DestinyActivityTypeDefinition for human readable info, but be forewarned: Playlists and many PVP Map Activities will map to generic Activity Types. You\\'ll have to use your knowledge of the Activity Mode being played to get more specific information about what the user is playing.\n     */\n    activityTypeHash?: number;\n    /**\n     * The difficulty tier of the activity.\n     */\n    tier?: number;\n    /**\n     * When Activities are completed, we generate a \\\"Post-Game Carnage Report\\\", or PGCR, with details about what happened in that activity (how many kills someone got, which team won, etc...) We use this image as the background when displaying PGCR information, and often use it when we refer to the Activity in general.\n     */\n    pgcrImage?: string;\n    /**\n     * The expected possible rewards for the activity. These rewards may or may not be accessible for an individual player based on their character state, the account state, and even the game\\'s state overall. But it is a useful reference for possible rewards you can earn in the activity. These match up to rewards displayed when you hover over the Activity in the in-game Director, and often refer to Placeholder or \\\"Dummy\\\" items: items that tell you what you can earn in vague terms rather than what you\\'ll specifically be earning (partly because the game doesn\\'t even know what you\\'ll earn specifically until you roll for it at the end)\n     */\n    rewards?: Array<DestinyDefinitionsDestinyActivityRewardDefinition>;\n    /**\n     * Activities can have Modifiers, as defined in DestinyActivityModifierDefinition. These are references to the modifiers that *can* be applied to that activity, along with data that we use to determine if that modifier is actually active at any given point in time.\n     */\n    modifiers?: Array<DestinyDefinitionsDestinyActivityModifierReferenceDefinition>;\n    /**\n     * If True, this Activity is actually a Playlist that refers to multiple possible specific Activities and Activity Modes. For instance, a Crucible Playlist may have references to multiple Activities (Maps) with multiple Activity Modes (specific PvP gameplay modes). If this is true, refer to the playlistItems property for the specific entries in the playlist.\n     */\n    isPlaylist?: boolean;\n    /**\n     * An activity can have many Challenges, of which any subset of them may be active for play at any given period of time. This gives the information about the challenges and data that we use to understand when they\\'re active and what rewards they provide. Sadly, at the moment there\\'s no central definition for challenges: much like \\\"Skulls\\\" were in Destiny 1, these are defined on individual activities and there can be many duplicates/near duplicates across the Destiny 2 ecosystem. I have it in mind to centralize these in a future revision of the API, but we are out of time.\n     */\n    challenges?: Array<DestinyDefinitionsDestinyActivityChallengeDefinition>;\n    /**\n     * If there are status strings related to the activity and based on internal state of the game, account, or character, then this will be the definition of those strings and the states needed in order for the strings to be shown.\n     */\n    optionalUnlockStrings?: Array<DestinyDefinitionsDestinyActivityUnlockStringDefinition>;\n    /**\n     * Represents all of the possible activities that could be played in the Playlist, along with information that we can use to determine if they are active at the present time.\n     */\n    playlistItems?: Array<DestinyDefinitionsDestinyActivityPlaylistItemDefinition>;\n    /**\n     * Unfortunately, in practice this is almost never populated. In theory, this is supposed to tell which Activity Graph to show if you bring up the director while in this activity.\n     */\n    activityGraphList?: Array<DestinyDefinitionsDestinyActivityGraphListEntryDefinition>;\n    matchmaking?: DestinyDefinitionsDestinyActivityDefinitionMatchmaking;\n    guidedGame?: DestinyDefinitionsDestinyActivityDefinitionGuidedGame;\n    /**\n     * If this activity had an activity mode directly defined on it, this will be the hash of that mode.\n     */\n    directActivityModeHash?: number;\n    /**\n     * If the activity had an activity mode directly defined on it, this will be the enum value of that mode.\n     */\n    directActivityModeType?: DestinyDefinitionsDestinyActivityDefinition.DirectActivityModeTypeEnum;\n    /**\n     * The set of all possible loadout requirements that could be active for this activity. Only one will be active at any given time, and you can discover which one through activity-associated data such as Milestones that have activity info on them.\n     */\n    loadouts?: Array<DestinyDefinitionsDestinyActivityLoadoutRequirementSet>;\n    /**\n     * The hash identifiers for Activity Modes relevant to this activity.  Note that if this is a playlist, the specific playlist entry chosen will determine the actual activity modes that end up being relevant.\n     */\n    activityModeHashes?: Array<number>;\n    /**\n     * The activity modes - if any - in enum form. Because we can\\'t seem to escape the enums.\n     */\n    activityModeTypes?: Array<number>;\n    /**\n     * If true, this activity is a PVP activity or playlist.\n     */\n    isPvP?: boolean;\n    /**\n     * The list of phases or points of entry into an activity, along with information we can use to determine their gating and availability.\n     */\n    insertionPoints?: Array<DestinyDefinitionsDestinyActivityInsertionPointDefinition>;\n    /**\n     * A list of location mappings that are affected by this activity. Pulled out of DestinyLocationDefinitions for our/your lookup convenience.\n     */\n    activityLocationMappings?: Array<DestinyConstantsDestinyEnvironmentLocationMapping>;\n    /**\n     * The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.  When entities refer to each other in Destiny content, it is this hash that they are referring to.\n     */\n    hash?: number;\n    /**\n     * The index of the entity as it was found in the investment tables.\n     */\n    index?: number;\n    /**\n     * If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!\n     */\n    redacted?: boolean;\n}\nexport namespace DestinyDefinitionsDestinyActivityDefinition {\n    export type DirectActivityModeTypeEnum = 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91;\n    export const DirectActivityModeTypeEnum = {\n        NUMBER_0: 0 as DirectActivityModeTypeEnum,\n        NUMBER_2: 2 as DirectActivityModeTypeEnum,\n        NUMBER_3: 3 as DirectActivityModeTypeEnum,\n        NUMBER_4: 4 as DirectActivityModeTypeEnum,\n        NUMBER_5: 5 as DirectActivityModeTypeEnum,\n        NUMBER_6: 6 as DirectActivityModeTypeEnum,\n        NUMBER_7: 7 as DirectActivityModeTypeEnum,\n        NUMBER_9: 9 as DirectActivityModeTypeEnum,\n        NUMBER_10: 10 as DirectActivityModeTypeEnum,\n        NUMBER_11: 11 as DirectActivityModeTypeEnum,\n        NUMBER_12: 12 as DirectActivityModeTypeEnum,\n        NUMBER_13: 13 as DirectActivityModeTypeEnum,\n        NUMBER_15: 15 as DirectActivityModeTypeEnum,\n        NUMBER_16: 16 as DirectActivityModeTypeEnum,\n        NUMBER_17: 17 as DirectActivityModeTypeEnum,\n        NUMBER_18: 18 as DirectActivityModeTypeEnum,\n        NUMBER_19: 19 as DirectActivityModeTypeEnum,\n        NUMBER_20: 20 as DirectActivityModeTypeEnum,\n        NUMBER_21: 21 as DirectActivityModeTypeEnum,\n        NUMBER_22: 22 as DirectActivityModeTypeEnum,\n        NUMBER_24: 24 as DirectActivityModeTypeEnum,\n        NUMBER_25: 25 as DirectActivityModeTypeEnum,\n        NUMBER_26: 26 as DirectActivityModeTypeEnum,\n        NUMBER_27: 27 as DirectActivityModeTypeEnum,\n        NUMBER_28: 28 as DirectActivityModeTypeEnum,\n        NUMBER_29: 29 as DirectActivityModeTypeEnum,\n        NUMBER_30: 30 as DirectActivityModeTypeEnum,\n        NUMBER_31: 31 as DirectActivityModeTypeEnum,\n        NUMBER_32: 32 as DirectActivityModeTypeEnum,\n        NUMBER_37: 37 as DirectActivityModeTypeEnum,\n        NUMBER_38: 38 as DirectActivityModeTypeEnum,\n        NUMBER_39: 39 as DirectActivityModeTypeEnum,\n        NUMBER_40: 40 as DirectActivityModeTypeEnum,\n        NUMBER_41: 41 as DirectActivityModeTypeEnum,\n        NUMBER_42: 42 as DirectActivityModeTypeEnum,\n        NUMBER_43: 43 as DirectActivityModeTypeEnum,\n        NUMBER_44: 44 as DirectActivityModeTypeEnum,\n        NUMBER_45: 45 as DirectActivityModeTypeEnum,\n        NUMBER_46: 46 as DirectActivityModeTypeEnum,\n        NUMBER_47: 47 as DirectActivityModeTypeEnum,\n        NUMBER_48: 48 as DirectActivityModeTypeEnum,\n        NUMBER_49: 49 as DirectActivityModeTypeEnum,\n        NUMBER_50: 50 as DirectActivityModeTypeEnum,\n        NUMBER_51: 51 as DirectActivityModeTypeEnum,\n        NUMBER_52: 52 as DirectActivityModeTypeEnum,\n        NUMBER_53: 53 as DirectActivityModeTypeEnum,\n        NUMBER_54: 54 as DirectActivityModeTypeEnum,\n        NUMBER_55: 55 as DirectActivityModeTypeEnum,\n        NUMBER_56: 56 as DirectActivityModeTypeEnum,\n        NUMBER_57: 57 as DirectActivityModeTypeEnum,\n        NUMBER_58: 58 as DirectActivityModeTypeEnum,\n        NUMBER_59: 59 as DirectActivityModeTypeEnum,\n        NUMBER_60: 60 as DirectActivityModeTypeEnum,\n        NUMBER_61: 61 as DirectActivityModeTypeEnum,\n        NUMBER_62: 62 as DirectActivityModeTypeEnum,\n        NUMBER_63: 63 as DirectActivityModeTypeEnum,\n        NUMBER_64: 64 as DirectActivityModeTypeEnum,\n        NUMBER_65: 65 as DirectActivityModeTypeEnum,\n        NUMBER_66: 66 as DirectActivityModeTypeEnum,\n        NUMBER_67: 67 as DirectActivityModeTypeEnum,\n        NUMBER_68: 68 as DirectActivityModeTypeEnum,\n        NUMBER_69: 69 as DirectActivityModeTypeEnum,\n        NUMBER_70: 70 as DirectActivityModeTypeEnum,\n        NUMBER_71: 71 as DirectActivityModeTypeEnum,\n        NUMBER_72: 72 as DirectActivityModeTypeEnum,\n        NUMBER_73: 73 as DirectActivityModeTypeEnum,\n        NUMBER_74: 74 as DirectActivityModeTypeEnum,\n        NUMBER_75: 75 as DirectActivityModeTypeEnum,\n        NUMBER_76: 76 as DirectActivityModeTypeEnum,\n        NUMBER_77: 77 as DirectActivityModeTypeEnum,\n        NUMBER_78: 78 as DirectActivityModeTypeEnum,\n        NUMBER_79: 79 as DirectActivityModeTypeEnum,\n        NUMBER_80: 80 as DirectActivityModeTypeEnum,\n        NUMBER_81: 81 as DirectActivityModeTypeEnum,\n        NUMBER_82: 82 as DirectActivityModeTypeEnum,\n        NUMBER_83: 83 as DirectActivityModeTypeEnum,\n        NUMBER_84: 84 as DirectActivityModeTypeEnum,\n        NUMBER_85: 85 as DirectActivityModeTypeEnum,\n        NUMBER_86: 86 as DirectActivityModeTypeEnum,\n        NUMBER_87: 87 as DirectActivityModeTypeEnum,\n        NUMBER_88: 88 as DirectActivityModeTypeEnum,\n        NUMBER_89: 89 as DirectActivityModeTypeEnum,\n        NUMBER_90: 90 as DirectActivityModeTypeEnum,\n        NUMBER_91: 91 as DirectActivityModeTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * If the activity is a playlist, this is the definition for a specific entry in the playlist: a single possible combination of Activity and Activity Mode that can be chosen.\n */\nexport interface DestinyDefinitionsDestinyActivityPlaylistItemDefinition { \n    /**\n     * The hash identifier of the Activity that can be played. Use it to look up the DestinyActivityDefinition.\n     */\n    activityHash?: number;\n    /**\n     * If this playlist entry had an activity mode directly defined on it, this will be the hash of that mode.\n     */\n    directActivityModeHash?: number;\n    /**\n     * If the playlist entry had an activity mode directly defined on it, this will be the enum value of that mode.\n     */\n    directActivityModeType?: DestinyDefinitionsDestinyActivityPlaylistItemDefinition.DirectActivityModeTypeEnum;\n    /**\n     * The hash identifiers for Activity Modes relevant to this entry.\n     */\n    activityModeHashes?: Array<number>;\n    /**\n     * The activity modes - if any - in enum form. Because we can\\'t seem to escape the enums.\n     */\n    activityModeTypes?: Array<number>;\n}\nexport namespace DestinyDefinitionsDestinyActivityPlaylistItemDefinition {\n    export type DirectActivityModeTypeEnum = 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91;\n    export const DirectActivityModeTypeEnum = {\n        NUMBER_0: 0 as DirectActivityModeTypeEnum,\n        NUMBER_2: 2 as DirectActivityModeTypeEnum,\n        NUMBER_3: 3 as DirectActivityModeTypeEnum,\n        NUMBER_4: 4 as DirectActivityModeTypeEnum,\n        NUMBER_5: 5 as DirectActivityModeTypeEnum,\n        NUMBER_6: 6 as DirectActivityModeTypeEnum,\n        NUMBER_7: 7 as DirectActivityModeTypeEnum,\n        NUMBER_9: 9 as DirectActivityModeTypeEnum,\n        NUMBER_10: 10 as DirectActivityModeTypeEnum,\n        NUMBER_11: 11 as DirectActivityModeTypeEnum,\n        NUMBER_12: 12 as DirectActivityModeTypeEnum,\n        NUMBER_13: 13 as DirectActivityModeTypeEnum,\n        NUMBER_15: 15 as DirectActivityModeTypeEnum,\n        NUMBER_16: 16 as DirectActivityModeTypeEnum,\n        NUMBER_17: 17 as DirectActivityModeTypeEnum,\n        NUMBER_18: 18 as DirectActivityModeTypeEnum,\n        NUMBER_19: 19 as DirectActivityModeTypeEnum,\n        NUMBER_20: 20 as DirectActivityModeTypeEnum,\n        NUMBER_21: 21 as DirectActivityModeTypeEnum,\n        NUMBER_22: 22 as DirectActivityModeTypeEnum,\n        NUMBER_24: 24 as DirectActivityModeTypeEnum,\n        NUMBER_25: 25 as DirectActivityModeTypeEnum,\n        NUMBER_26: 26 as DirectActivityModeTypeEnum,\n        NUMBER_27: 27 as DirectActivityModeTypeEnum,\n        NUMBER_28: 28 as DirectActivityModeTypeEnum,\n        NUMBER_29: 29 as DirectActivityModeTypeEnum,\n        NUMBER_30: 30 as DirectActivityModeTypeEnum,\n        NUMBER_31: 31 as DirectActivityModeTypeEnum,\n        NUMBER_32: 32 as DirectActivityModeTypeEnum,\n        NUMBER_37: 37 as DirectActivityModeTypeEnum,\n        NUMBER_38: 38 as DirectActivityModeTypeEnum,\n        NUMBER_39: 39 as DirectActivityModeTypeEnum,\n        NUMBER_40: 40 as DirectActivityModeTypeEnum,\n        NUMBER_41: 41 as DirectActivityModeTypeEnum,\n        NUMBER_42: 42 as DirectActivityModeTypeEnum,\n        NUMBER_43: 43 as DirectActivityModeTypeEnum,\n        NUMBER_44: 44 as DirectActivityModeTypeEnum,\n        NUMBER_45: 45 as DirectActivityModeTypeEnum,\n        NUMBER_46: 46 as DirectActivityModeTypeEnum,\n        NUMBER_47: 47 as DirectActivityModeTypeEnum,\n        NUMBER_48: 48 as DirectActivityModeTypeEnum,\n        NUMBER_49: 49 as DirectActivityModeTypeEnum,\n        NUMBER_50: 50 as DirectActivityModeTypeEnum,\n        NUMBER_51: 51 as DirectActivityModeTypeEnum,\n        NUMBER_52: 52 as DirectActivityModeTypeEnum,\n        NUMBER_53: 53 as DirectActivityModeTypeEnum,\n        NUMBER_54: 54 as DirectActivityModeTypeEnum,\n        NUMBER_55: 55 as DirectActivityModeTypeEnum,\n        NUMBER_56: 56 as DirectActivityModeTypeEnum,\n        NUMBER_57: 57 as DirectActivityModeTypeEnum,\n        NUMBER_58: 58 as DirectActivityModeTypeEnum,\n        NUMBER_59: 59 as DirectActivityModeTypeEnum,\n        NUMBER_60: 60 as DirectActivityModeTypeEnum,\n        NUMBER_61: 61 as DirectActivityModeTypeEnum,\n        NUMBER_62: 62 as DirectActivityModeTypeEnum,\n        NUMBER_63: 63 as DirectActivityModeTypeEnum,\n        NUMBER_64: 64 as DirectActivityModeTypeEnum,\n        NUMBER_65: 65 as DirectActivityModeTypeEnum,\n        NUMBER_66: 66 as DirectActivityModeTypeEnum,\n        NUMBER_67: 67 as DirectActivityModeTypeEnum,\n        NUMBER_68: 68 as DirectActivityModeTypeEnum,\n        NUMBER_69: 69 as DirectActivityModeTypeEnum,\n        NUMBER_70: 70 as DirectActivityModeTypeEnum,\n        NUMBER_71: 71 as DirectActivityModeTypeEnum,\n        NUMBER_72: 72 as DirectActivityModeTypeEnum,\n        NUMBER_73: 73 as DirectActivityModeTypeEnum,\n        NUMBER_74: 74 as DirectActivityModeTypeEnum,\n        NUMBER_75: 75 as DirectActivityModeTypeEnum,\n        NUMBER_76: 76 as DirectActivityModeTypeEnum,\n        NUMBER_77: 77 as DirectActivityModeTypeEnum,\n        NUMBER_78: 78 as DirectActivityModeTypeEnum,\n        NUMBER_79: 79 as DirectActivityModeTypeEnum,\n        NUMBER_80: 80 as DirectActivityModeTypeEnum,\n        NUMBER_81: 81 as DirectActivityModeTypeEnum,\n        NUMBER_82: 82 as DirectActivityModeTypeEnum,\n        NUMBER_83: 83 as DirectActivityModeTypeEnum,\n        NUMBER_84: 84 as DirectActivityModeTypeEnum,\n        NUMBER_85: 85 as DirectActivityModeTypeEnum,\n        NUMBER_86: 86 as DirectActivityModeTypeEnum,\n        NUMBER_87: 87 as DirectActivityModeTypeEnum,\n        NUMBER_88: 88 as DirectActivityModeTypeEnum,\n        NUMBER_89: 89 as DirectActivityModeTypeEnum,\n        NUMBER_90: 90 as DirectActivityModeTypeEnum,\n        NUMBER_91: 91 as DirectActivityModeTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * BNet\\'s custom categorization of reward sources. We took a look at the existing ways that items could be spawned, and tried to make high-level categorizations of them. This needs to be re-evaluated for Destiny 2.\n */\nexport type DestinyDefinitionsDestinyRewardSourceCategory = 0 | 1 | 2 | 3;\n\nexport const DestinyDefinitionsDestinyRewardSourceCategory = {\n    NUMBER_0: 0 as DestinyDefinitionsDestinyRewardSourceCategory,\n    NUMBER_1: 1 as DestinyDefinitionsDestinyRewardSourceCategory,\n    NUMBER_2: 2 as DestinyDefinitionsDestinyRewardSourceCategory,\n    NUMBER_3: 3 as DestinyDefinitionsDestinyRewardSourceCategory\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDefinitionsDestinyTalentNodeStepDamageTypes = 0 | 1 | 2 | 4 | 8 | 15;\n\nexport const DestinyDefinitionsDestinyTalentNodeStepDamageTypes = {\n    NUMBER_0: 0 as DestinyDefinitionsDestinyTalentNodeStepDamageTypes,\n    NUMBER_1: 1 as DestinyDefinitionsDestinyTalentNodeStepDamageTypes,\n    NUMBER_2: 2 as DestinyDefinitionsDestinyTalentNodeStepDamageTypes,\n    NUMBER_4: 4 as DestinyDefinitionsDestinyTalentNodeStepDamageTypes,\n    NUMBER_8: 8 as DestinyDefinitionsDestinyTalentNodeStepDamageTypes,\n    NUMBER_15: 15 as DestinyDefinitionsDestinyTalentNodeStepDamageTypes\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 255;\n\nexport const DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes = {\n    NUMBER_0: 0 as DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes,\n    NUMBER_1: 1 as DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes,\n    NUMBER_2: 2 as DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes,\n    NUMBER_4: 4 as DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes,\n    NUMBER_8: 8 as DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes,\n    NUMBER_16: 16 as DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes,\n    NUMBER_32: 32 as DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes,\n    NUMBER_64: 64 as DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes,\n    NUMBER_128: 128 as DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes,\n    NUMBER_255: 255 as DestinyDefinitionsDestinyTalentNodeStepGuardianAttributes\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDefinitionsDestinyTalentNodeStepImpactEffects = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 63;\n\nexport const DestinyDefinitionsDestinyTalentNodeStepImpactEffects = {\n    NUMBER_0: 0 as DestinyDefinitionsDestinyTalentNodeStepImpactEffects,\n    NUMBER_1: 1 as DestinyDefinitionsDestinyTalentNodeStepImpactEffects,\n    NUMBER_2: 2 as DestinyDefinitionsDestinyTalentNodeStepImpactEffects,\n    NUMBER_4: 4 as DestinyDefinitionsDestinyTalentNodeStepImpactEffects,\n    NUMBER_8: 8 as DestinyDefinitionsDestinyTalentNodeStepImpactEffects,\n    NUMBER_16: 16 as DestinyDefinitionsDestinyTalentNodeStepImpactEffects,\n    NUMBER_32: 32 as DestinyDefinitionsDestinyTalentNodeStepImpactEffects,\n    NUMBER_63: 63 as DestinyDefinitionsDestinyTalentNodeStepImpactEffects\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDefinitionsDestinyTalentNodeStepLightAbilities = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 63;\n\nexport const DestinyDefinitionsDestinyTalentNodeStepLightAbilities = {\n    NUMBER_0: 0 as DestinyDefinitionsDestinyTalentNodeStepLightAbilities,\n    NUMBER_1: 1 as DestinyDefinitionsDestinyTalentNodeStepLightAbilities,\n    NUMBER_2: 2 as DestinyDefinitionsDestinyTalentNodeStepLightAbilities,\n    NUMBER_4: 4 as DestinyDefinitionsDestinyTalentNodeStepLightAbilities,\n    NUMBER_8: 8 as DestinyDefinitionsDestinyTalentNodeStepLightAbilities,\n    NUMBER_16: 16 as DestinyDefinitionsDestinyTalentNodeStepLightAbilities,\n    NUMBER_32: 32 as DestinyDefinitionsDestinyTalentNodeStepLightAbilities,\n    NUMBER_63: 63 as DestinyDefinitionsDestinyTalentNodeStepLightAbilities\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8191;\n\nexport const DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances = {\n    NUMBER_0: 0 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_1: 1 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_2: 2 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_4: 4 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_8: 8 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_16: 16 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_32: 32 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_64: 64 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_128: 128 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_256: 256 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_512: 512 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_1024: 1024 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_2048: 2048 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_4096: 4096 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances,\n    NUMBER_8191: 8191 as DestinyDefinitionsDestinyTalentNodeStepWeaponPerformances\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A hint for the UI as to what display information ought to be shown. Defaults to showing the static MilestoneDefinition\\'s display properties.   If for some reason the indicated property is not populated, fall back to the MilestoneDefinition.displayProperties.\n */\nexport type DestinyDefinitionsMilestonesDestinyMilestoneDisplayPreference = 0 | 1 | 2;\n\nexport const DestinyDefinitionsMilestonesDestinyMilestoneDisplayPreference = {\n    NUMBER_0: 0 as DestinyDefinitionsMilestonesDestinyMilestoneDisplayPreference,\n    NUMBER_1: 1 as DestinyDefinitionsMilestonesDestinyMilestoneDisplayPreference,\n    NUMBER_2: 2 as DestinyDefinitionsMilestonesDestinyMilestoneDisplayPreference\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The type of milestone. Milestones can be Tutorials, one-time/triggered/non-repeating but not necessarily tutorials, or Repeating Milestones.\n */\nexport type DestinyDefinitionsMilestonesDestinyMilestoneType = 0 | 1 | 2 | 3 | 4 | 5;\n\nexport const DestinyDefinitionsMilestonesDestinyMilestoneType = {\n    NUMBER_0: 0 as DestinyDefinitionsMilestonesDestinyMilestoneType,\n    NUMBER_1: 1 as DestinyDefinitionsMilestonesDestinyMilestoneType,\n    NUMBER_2: 2 as DestinyDefinitionsMilestonesDestinyMilestoneType,\n    NUMBER_3: 3 as DestinyDefinitionsMilestonesDestinyMilestoneType,\n    NUMBER_4: 4 as DestinyDefinitionsMilestonesDestinyMilestoneType,\n    NUMBER_5: 5 as DestinyDefinitionsMilestonesDestinyMilestoneType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * An enumeration representing the potential difficulty levels of an activity. Their names are... more qualitative than quantitative.\n */\nexport type DestinyDestinyActivityDifficultyTier = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;\n\nexport const DestinyDestinyActivityDifficultyTier = {\n    NUMBER_0: 0 as DestinyDestinyActivityDifficultyTier,\n    NUMBER_1: 1 as DestinyDestinyActivityDifficultyTier,\n    NUMBER_2: 2 as DestinyDestinyActivityDifficultyTier,\n    NUMBER_3: 3 as DestinyDestinyActivityDifficultyTier,\n    NUMBER_4: 4 as DestinyDestinyActivityDifficultyTier,\n    NUMBER_5: 5 as DestinyDestinyActivityDifficultyTier,\n    NUMBER_6: 6 as DestinyDestinyActivityDifficultyTier,\n    NUMBER_7: 7 as DestinyDestinyActivityDifficultyTier\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Activity Modes are grouped into a few possible broad categories.\n */\nexport type DestinyDestinyActivityModeCategory = 0 | 1 | 2 | 3;\n\nexport const DestinyDestinyActivityModeCategory = {\n    NUMBER_0: 0 as DestinyDestinyActivityModeCategory,\n    NUMBER_1: 1 as DestinyDestinyActivityModeCategory,\n    NUMBER_2: 2 as DestinyDestinyActivityModeCategory,\n    NUMBER_3: 3 as DestinyDestinyActivityModeCategory\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDestinyActivityNavPointType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16;\n\nexport const DestinyDestinyActivityNavPointType = {\n    NUMBER_0: 0 as DestinyDestinyActivityNavPointType,\n    NUMBER_1: 1 as DestinyDestinyActivityNavPointType,\n    NUMBER_2: 2 as DestinyDestinyActivityNavPointType,\n    NUMBER_3: 3 as DestinyDestinyActivityNavPointType,\n    NUMBER_4: 4 as DestinyDestinyActivityNavPointType,\n    NUMBER_5: 5 as DestinyDestinyActivityNavPointType,\n    NUMBER_6: 6 as DestinyDestinyActivityNavPointType,\n    NUMBER_7: 7 as DestinyDestinyActivityNavPointType,\n    NUMBER_8: 8 as DestinyDestinyActivityNavPointType,\n    NUMBER_9: 9 as DestinyDestinyActivityNavPointType,\n    NUMBER_10: 10 as DestinyDestinyActivityNavPointType,\n    NUMBER_11: 11 as DestinyDestinyActivityNavPointType,\n    NUMBER_12: 12 as DestinyDestinyActivityNavPointType,\n    NUMBER_13: 13 as DestinyDestinyActivityNavPointType,\n    NUMBER_14: 14 as DestinyDestinyActivityNavPointType,\n    NUMBER_15: 15 as DestinyDestinyActivityNavPointType,\n    NUMBER_16: 16 as DestinyDestinyActivityNavPointType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDestinyAmmunitionType = 0 | 1 | 2 | 3 | 4;\n\nexport const DestinyDestinyAmmunitionType = {\n    NUMBER_0: 0 as DestinyDestinyAmmunitionType,\n    NUMBER_1: 1 as DestinyDestinyAmmunitionType,\n    NUMBER_2: 2 as DestinyDestinyAmmunitionType,\n    NUMBER_3: 3 as DestinyDestinyAmmunitionType,\n    NUMBER_4: 4 as DestinyDestinyAmmunitionType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A plug can optionally have a \\\"Breaker Type\\\": a special ability that can affect units in unique ways. Activating this plug can grant one of these types.\n */\nexport type DestinyDestinyBreakerType = 0 | 1 | 2 | 3;\n\nexport const DestinyDestinyBreakerType = {\n    NUMBER_0: 0 as DestinyDestinyBreakerType,\n    NUMBER_1: 1 as DestinyDestinyBreakerType,\n    NUMBER_2: 2 as DestinyDestinyBreakerType,\n    NUMBER_3: 3 as DestinyDestinyBreakerType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDestinyClass = 0 | 1 | 2 | 3;\n\nexport const DestinyDestinyClass = {\n    NUMBER_0: 0 as DestinyDestinyClass,\n    NUMBER_1: 1 as DestinyDestinyClass,\n    NUMBER_2: 2 as DestinyDestinyClass,\n    NUMBER_3: 3 as DestinyDestinyClass\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A Flags Enumeration/bitmask where each bit represents a different state that the Collectible can be in. A collectible can be in any number of these states, and you can choose to use or ignore any or all of them when making your own UI that shows Collectible info. Our displays are going to honor them, but we\\'re also the kind of people who only pretend to inhale before quickly passing it to the left. So, you know, do what you got to do.  (All joking aside, please note the caveat I mention around the Invisible flag: there are cases where it is in the best interest of your users to honor these flags even if you\\'re a \\\"show all the data\\\" person. Collector-oriented compulsion is a very unfortunate and real thing, and I would hate to instill that compulsion in others through showing them items that they cannot earn. Please consider this when you are making your own apps/sites.)\n */\nexport type DestinyDestinyCollectibleState = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64;\n\nexport const DestinyDestinyCollectibleState = {\n    NUMBER_0: 0 as DestinyDestinyCollectibleState,\n    NUMBER_1: 1 as DestinyDestinyCollectibleState,\n    NUMBER_2: 2 as DestinyDestinyCollectibleState,\n    NUMBER_4: 4 as DestinyDestinyCollectibleState,\n    NUMBER_8: 8 as DestinyDestinyCollectibleState,\n    NUMBER_16: 16 as DestinyDestinyCollectibleState,\n    NUMBER_32: 32 as DestinyDestinyCollectibleState,\n    NUMBER_64: 64 as DestinyDestinyCollectibleState\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Represents the possible components that can be returned from Destiny \\\"Get\\\" calls such as GetProfile, GetCharacter, GetVendor etc...  When making one of these requests, you will pass one or more of these components as a comma separated list in the \\\"?components=\\\" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass \\\"?components=Profiles,Characters,CharacterProgressions\\\" You may use either the numerical or string values.\n */\nexport type DestinyDestinyComponentType = 0 | 100 | 101 | 102 | 103 | 104 | 105 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 400 | 401 | 402 | 500 | 600 | 700 | 800 | 900 | 1000 | 1100 | 1200 | 1300 | 1400;\n\nexport const DestinyDestinyComponentType = {\n    NUMBER_0: 0 as DestinyDestinyComponentType,\n    NUMBER_100: 100 as DestinyDestinyComponentType,\n    NUMBER_101: 101 as DestinyDestinyComponentType,\n    NUMBER_102: 102 as DestinyDestinyComponentType,\n    NUMBER_103: 103 as DestinyDestinyComponentType,\n    NUMBER_104: 104 as DestinyDestinyComponentType,\n    NUMBER_105: 105 as DestinyDestinyComponentType,\n    NUMBER_200: 200 as DestinyDestinyComponentType,\n    NUMBER_201: 201 as DestinyDestinyComponentType,\n    NUMBER_202: 202 as DestinyDestinyComponentType,\n    NUMBER_203: 203 as DestinyDestinyComponentType,\n    NUMBER_204: 204 as DestinyDestinyComponentType,\n    NUMBER_205: 205 as DestinyDestinyComponentType,\n    NUMBER_206: 206 as DestinyDestinyComponentType,\n    NUMBER_300: 300 as DestinyDestinyComponentType,\n    NUMBER_301: 301 as DestinyDestinyComponentType,\n    NUMBER_302: 302 as DestinyDestinyComponentType,\n    NUMBER_303: 303 as DestinyDestinyComponentType,\n    NUMBER_304: 304 as DestinyDestinyComponentType,\n    NUMBER_305: 305 as DestinyDestinyComponentType,\n    NUMBER_306: 306 as DestinyDestinyComponentType,\n    NUMBER_307: 307 as DestinyDestinyComponentType,\n    NUMBER_308: 308 as DestinyDestinyComponentType,\n    NUMBER_309: 309 as DestinyDestinyComponentType,\n    NUMBER_310: 310 as DestinyDestinyComponentType,\n    NUMBER_400: 400 as DestinyDestinyComponentType,\n    NUMBER_401: 401 as DestinyDestinyComponentType,\n    NUMBER_402: 402 as DestinyDestinyComponentType,\n    NUMBER_500: 500 as DestinyDestinyComponentType,\n    NUMBER_600: 600 as DestinyDestinyComponentType,\n    NUMBER_700: 700 as DestinyDestinyComponentType,\n    NUMBER_800: 800 as DestinyDestinyComponentType,\n    NUMBER_900: 900 as DestinyDestinyComponentType,\n    NUMBER_1000: 1000 as DestinyDestinyComponentType,\n    NUMBER_1100: 1100 as DestinyDestinyComponentType,\n    NUMBER_1200: 1200 as DestinyDestinyComponentType,\n    NUMBER_1300: 1300 as DestinyDestinyComponentType,\n    NUMBER_1400: 1400 as DestinyDestinyComponentType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Represents the socket energy types for Armor 2.0, Ghosts 2.0, and Stasis subclasses.\n */\nexport type DestinyDestinyEnergyType = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport const DestinyDestinyEnergyType = {\n    NUMBER_0: 0 as DestinyDestinyEnergyType,\n    NUMBER_1: 1 as DestinyDestinyEnergyType,\n    NUMBER_2: 2 as DestinyDestinyEnergyType,\n    NUMBER_3: 3 as DestinyDestinyEnergyType,\n    NUMBER_4: 4 as DestinyDestinyEnergyType,\n    NUMBER_5: 5 as DestinyDestinyEnergyType,\n    NUMBER_6: 6 as DestinyDestinyEnergyType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A player can choose to restrict requests to join their Fireteam to specific states. These are the possible states a user can choose.\n */\nexport type DestinyDestinyGamePrivacySetting = 0 | 1 | 2 | 3 | 4;\n\nexport const DestinyDestinyGamePrivacySetting = {\n    NUMBER_0: 0 as DestinyDestinyGamePrivacySetting,\n    NUMBER_1: 1 as DestinyDestinyGamePrivacySetting,\n    NUMBER_2: 2 as DestinyDestinyGamePrivacySetting,\n    NUMBER_3: 3 as DestinyDestinyGamePrivacySetting,\n    NUMBER_4: 4 as DestinyDestinyGamePrivacySetting\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A flags enumeration/bitmask indicating the versions of the game that a given user has purchased.\n */\nexport type DestinyDestinyGameVersions = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512;\n\nexport const DestinyDestinyGameVersions = {\n    NUMBER_0: 0 as DestinyDestinyGameVersions,\n    NUMBER_1: 1 as DestinyDestinyGameVersions,\n    NUMBER_2: 2 as DestinyDestinyGameVersions,\n    NUMBER_4: 4 as DestinyDestinyGameVersions,\n    NUMBER_8: 8 as DestinyDestinyGameVersions,\n    NUMBER_16: 16 as DestinyDestinyGameVersions,\n    NUMBER_32: 32 as DestinyDestinyGameVersions,\n    NUMBER_64: 64 as DestinyDestinyGameVersions,\n    NUMBER_128: 128 as DestinyDestinyGameVersions,\n    NUMBER_256: 256 as DestinyDestinyGameVersions,\n    NUMBER_512: 512 as DestinyDestinyGameVersions\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * This enumeration represents the most restrictive type of gating that is being performed by an entity. This is useful as a shortcut to avoid a lot of lookups when determining whether the gating on an Entity applies to everyone equally, or to their specific Profile or Character states.  None = There is no gating on this item.  Global = The gating on this item is based entirely on global game state. It will be gated the same for everyone.  Clan = The gating on this item is at the Clan level. For instance, if you\\'re gated by Clan level this will be the case.  Profile = The gating includes Profile-specific checks, but not on the Profile\\'s characters. An example of this might be when you acquire an Emblem: the Emblem will be available in your Kiosk for all characters in your Profile from that point onward.  Character = The gating includes Character-specific checks, including character level restrictions. An example of this might be an item that you can\\'t purchase from a Vendor until you reach a specific Character Level.  Item = The gating includes item-specific checks. For BNet, this generally implies that we\\'ll show this data only on a character level or deeper.  AssumedWorstCase = The unlocks and checks being used for this calculation are of an unknown type and are used for unknown purposes. For instance, if some great person decided that an unlock value should be globally scoped, but then the game changes it using character-specific data in a way that BNet doesn\\'t know about. Because of the open-ended potential for this to occur, many unlock checks for \\\"globally\\\" scoped unlock data may be assumed as the worst case unless it has been specifically whitelisted as otherwise. That sucks, but them\\'s the breaks.\n */\nexport type DestinyDestinyGatingScope = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport const DestinyDestinyGatingScope = {\n    NUMBER_0: 0 as DestinyDestinyGatingScope,\n    NUMBER_1: 1 as DestinyDestinyGatingScope,\n    NUMBER_2: 2 as DestinyDestinyGatingScope,\n    NUMBER_3: 3 as DestinyDestinyGatingScope,\n    NUMBER_4: 4 as DestinyDestinyGatingScope,\n    NUMBER_5: 5 as DestinyDestinyGatingScope,\n    NUMBER_6: 6 as DestinyDestinyGatingScope\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDestinyGender = 0 | 1 | 2;\n\nexport const DestinyDestinyGender = {\n    NUMBER_0: 0 as DestinyDestinyGender,\n    NUMBER_1: 1 as DestinyDestinyGender,\n    NUMBER_2: 2 as DestinyDestinyGender\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Represents a potential state of an Activity Graph node.\n */\nexport type DestinyDestinyGraphNodeState = 0 | 1 | 2 | 3 | 4;\n\nexport const DestinyDestinyGraphNodeState = {\n    NUMBER_0: 0 as DestinyDestinyGraphNodeState,\n    NUMBER_1: 1 as DestinyDestinyGraphNodeState,\n    NUMBER_2: 2 as DestinyDestinyGraphNodeState,\n    NUMBER_3: 3 as DestinyDestinyGraphNodeState,\n    NUMBER_4: 4 as DestinyDestinyGraphNodeState\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Determines how items are sorted in an inventory bucket.\n */\nexport type DestinyDestinyItemSortType = 0 | 1 | 2;\n\nexport const DestinyDestinyItemSortType = {\n    NUMBER_0: 0 as DestinyDestinyItemSortType,\n    NUMBER_1: 1 as DestinyDestinyItemSortType,\n    NUMBER_2: 2 as DestinyDestinyItemSortType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * This Enumeration further classifies items by more specific categorizations than DestinyItemType. The \\\"Sub-Type\\\" is where we classify and categorize items one step further in specificity: \\\"Auto Rifle\\\" instead of just \\\"Weapon\\\" for example, or \\\"Vanguard Bounty\\\" instead of merely \\\"Bounty\\\".  These sub-types are provided for historical compatibility with Destiny 1, but an ideal alternative is to use DestinyItemCategoryDefinitions and the DestinyItemDefinition.itemCategories property instead. Item Categories allow for arbitrary hierarchies of specificity, and for items to belong to multiple categories across multiple hierarchies simultaneously. For this enum, we pick a single type as a \\\"best guess\\\" fit.  NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist.\n */\nexport type DestinyDestinyItemSubType = 0 | 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33;\n\nexport const DestinyDestinyItemSubType = {\n    NUMBER_0: 0 as DestinyDestinyItemSubType,\n    NUMBER_1: 1 as DestinyDestinyItemSubType,\n    NUMBER_2: 2 as DestinyDestinyItemSubType,\n    NUMBER_5: 5 as DestinyDestinyItemSubType,\n    NUMBER_6: 6 as DestinyDestinyItemSubType,\n    NUMBER_7: 7 as DestinyDestinyItemSubType,\n    NUMBER_8: 8 as DestinyDestinyItemSubType,\n    NUMBER_9: 9 as DestinyDestinyItemSubType,\n    NUMBER_10: 10 as DestinyDestinyItemSubType,\n    NUMBER_11: 11 as DestinyDestinyItemSubType,\n    NUMBER_12: 12 as DestinyDestinyItemSubType,\n    NUMBER_13: 13 as DestinyDestinyItemSubType,\n    NUMBER_14: 14 as DestinyDestinyItemSubType,\n    NUMBER_16: 16 as DestinyDestinyItemSubType,\n    NUMBER_17: 17 as DestinyDestinyItemSubType,\n    NUMBER_18: 18 as DestinyDestinyItemSubType,\n    NUMBER_19: 19 as DestinyDestinyItemSubType,\n    NUMBER_20: 20 as DestinyDestinyItemSubType,\n    NUMBER_21: 21 as DestinyDestinyItemSubType,\n    NUMBER_22: 22 as DestinyDestinyItemSubType,\n    NUMBER_23: 23 as DestinyDestinyItemSubType,\n    NUMBER_24: 24 as DestinyDestinyItemSubType,\n    NUMBER_25: 25 as DestinyDestinyItemSubType,\n    NUMBER_26: 26 as DestinyDestinyItemSubType,\n    NUMBER_27: 27 as DestinyDestinyItemSubType,\n    NUMBER_28: 28 as DestinyDestinyItemSubType,\n    NUMBER_29: 29 as DestinyDestinyItemSubType,\n    NUMBER_30: 30 as DestinyDestinyItemSubType,\n    NUMBER_31: 31 as DestinyDestinyItemSubType,\n    NUMBER_32: 32 as DestinyDestinyItemSubType,\n    NUMBER_33: 33 as DestinyDestinyItemSubType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * An enumeration that indicates the high-level \\\"type\\\" of the item, attempting to iron out the context specific differences for specific instances of an entity. For instance, though a weapon may be of various weapon \\\"Types\\\", in DestinyItemType they are all classified as \\\"Weapon\\\". This allows for better filtering on a higher level of abstraction for the concept of types.   This enum is provided for historical compatibility with Destiny 1, but an ideal alternative is to use DestinyItemCategoryDefinitions and the DestinyItemDefinition.itemCategories property instead. Item Categories allow for arbitrary hierarchies of specificity, and for items to belong to multiple categories across multiple hierarchies simultaneously. For this enum, we pick a single type as a \\\"best guess\\\" fit.   NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist.   I keep updating these because they\\'re so damn convenient. I guess I shouldn\\'t fight it.\n */\nexport type DestinyDestinyItemType = 0 | 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30;\n\nexport const DestinyDestinyItemType = {\n    NUMBER_0: 0 as DestinyDestinyItemType,\n    NUMBER_1: 1 as DestinyDestinyItemType,\n    NUMBER_2: 2 as DestinyDestinyItemType,\n    NUMBER_3: 3 as DestinyDestinyItemType,\n    NUMBER_7: 7 as DestinyDestinyItemType,\n    NUMBER_8: 8 as DestinyDestinyItemType,\n    NUMBER_9: 9 as DestinyDestinyItemType,\n    NUMBER_10: 10 as DestinyDestinyItemType,\n    NUMBER_11: 11 as DestinyDestinyItemType,\n    NUMBER_12: 12 as DestinyDestinyItemType,\n    NUMBER_13: 13 as DestinyDestinyItemType,\n    NUMBER_14: 14 as DestinyDestinyItemType,\n    NUMBER_15: 15 as DestinyDestinyItemType,\n    NUMBER_16: 16 as DestinyDestinyItemType,\n    NUMBER_17: 17 as DestinyDestinyItemType,\n    NUMBER_18: 18 as DestinyDestinyItemType,\n    NUMBER_19: 19 as DestinyDestinyItemType,\n    NUMBER_20: 20 as DestinyDestinyItemType,\n    NUMBER_21: 21 as DestinyDestinyItemType,\n    NUMBER_22: 22 as DestinyDestinyItemType,\n    NUMBER_23: 23 as DestinyDestinyItemType,\n    NUMBER_24: 24 as DestinyDestinyItemType,\n    NUMBER_25: 25 as DestinyDestinyItemType,\n    NUMBER_26: 26 as DestinyDestinyItemType,\n    NUMBER_27: 27 as DestinyDestinyItemType,\n    NUMBER_28: 28 as DestinyDestinyItemType,\n    NUMBER_29: 29 as DestinyDestinyItemType,\n    NUMBER_30: 30 as DestinyDestinyItemType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A Flags enumeration representing the reasons why a person can\\'t join this user\\'s fireteam.\n */\nexport type DestinyDestinyJoinClosedReasons = 0 | 1 | 2 | 4 | 8 | 16 | 32768;\n\nexport const DestinyDestinyJoinClosedReasons = {\n    NUMBER_0: 0 as DestinyDestinyJoinClosedReasons,\n    NUMBER_1: 1 as DestinyDestinyJoinClosedReasons,\n    NUMBER_2: 2 as DestinyDestinyJoinClosedReasons,\n    NUMBER_4: 4 as DestinyDestinyJoinClosedReasons,\n    NUMBER_8: 8 as DestinyDestinyJoinClosedReasons,\n    NUMBER_16: 16 as DestinyDestinyJoinClosedReasons,\n    NUMBER_32768: 32768 as DestinyDestinyJoinClosedReasons\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Some Objectives provide perks, generally as part of providing some kind of interesting modifier for a Challenge or Quest. This indicates when the Perk is granted.\n */\nexport type DestinyDestinyObjectiveGrantStyle = 0 | 1 | 2;\n\nexport const DestinyDestinyObjectiveGrantStyle = {\n    NUMBER_0: 0 as DestinyDestinyObjectiveGrantStyle,\n    NUMBER_1: 1 as DestinyDestinyObjectiveGrantStyle,\n    NUMBER_2: 2 as DestinyDestinyObjectiveGrantStyle\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * If the objective has a known UI label, this enumeration will represent it.\n */\nexport type DestinyDestinyObjectiveUiStyle = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport const DestinyDestinyObjectiveUiStyle = {\n    NUMBER_0: 0 as DestinyDestinyObjectiveUiStyle,\n    NUMBER_1: 1 as DestinyDestinyObjectiveUiStyle,\n    NUMBER_2: 2 as DestinyDestinyObjectiveUiStyle,\n    NUMBER_3: 3 as DestinyDestinyObjectiveUiStyle,\n    NUMBER_4: 4 as DestinyDestinyObjectiveUiStyle,\n    NUMBER_5: 5 as DestinyDestinyObjectiveUiStyle,\n    NUMBER_6: 6 as DestinyDestinyObjectiveUiStyle\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A flags enumeration that represents a Fireteam Member\\'s status.\n */\nexport type DestinyDestinyPartyMemberStates = 0 | 1 | 2 | 4 | 8;\n\nexport const DestinyDestinyPartyMemberStates = {\n    NUMBER_0: 0 as DestinyDestinyPartyMemberStates,\n    NUMBER_1: 1 as DestinyDestinyPartyMemberStates,\n    NUMBER_2: 2 as DestinyDestinyPartyMemberStates,\n    NUMBER_4: 4 as DestinyDestinyPartyMemberStates,\n    NUMBER_8: 8 as DestinyDestinyPartyMemberStates\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A hint for how the presentation node should be displayed when shown in a list. How you use this is your UI is up to you.\n */\nexport type DestinyDestinyPresentationDisplayStyle = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport const DestinyDestinyPresentationDisplayStyle = {\n    NUMBER_0: 0 as DestinyDestinyPresentationDisplayStyle,\n    NUMBER_1: 1 as DestinyDestinyPresentationDisplayStyle,\n    NUMBER_2: 2 as DestinyDestinyPresentationDisplayStyle,\n    NUMBER_3: 3 as DestinyDestinyPresentationDisplayStyle,\n    NUMBER_4: 4 as DestinyDestinyPresentationDisplayStyle,\n    NUMBER_5: 5 as DestinyDestinyPresentationDisplayStyle,\n    NUMBER_6: 6 as DestinyDestinyPresentationDisplayStyle\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * I know this doesn\\'t look like a Flags Enumeration/bitmask right now, but I assure you it is. This is the possible states that a Presentation Node can be in, and it is almost certain that its potential states will increase in the future. So don\\'t treat it like a straight up enumeration.\n */\nexport type DestinyDestinyPresentationNodeState = 0 | 1 | 2;\n\nexport const DestinyDestinyPresentationNodeState = {\n    NUMBER_0: 0 as DestinyDestinyPresentationNodeState,\n    NUMBER_1: 1 as DestinyDestinyPresentationNodeState,\n    NUMBER_2: 2 as DestinyDestinyPresentationNodeState\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDestinyPresentationNodeType = 0 | 1 | 2 | 3 | 4 | 5;\n\nexport const DestinyDestinyPresentationNodeType = {\n    NUMBER_0: 0 as DestinyDestinyPresentationNodeType,\n    NUMBER_1: 1 as DestinyDestinyPresentationNodeType,\n    NUMBER_2: 2 as DestinyDestinyPresentationNodeType,\n    NUMBER_3: 3 as DestinyDestinyPresentationNodeType,\n    NUMBER_4: 4 as DestinyDestinyPresentationNodeType,\n    NUMBER_5: 5 as DestinyDestinyPresentationNodeType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A hint for what screen should be shown when this presentation node is clicked into. How you use this is your UI is up to you.\n */\nexport type DestinyDestinyPresentationScreenStyle = 0 | 1 | 2;\n\nexport const DestinyDestinyPresentationScreenStyle = {\n    NUMBER_0: 0 as DestinyDestinyPresentationScreenStyle,\n    NUMBER_1: 1 as DestinyDestinyPresentationScreenStyle,\n    NUMBER_2: 2 as DestinyDestinyPresentationScreenStyle\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Represents the different kinds of acquisition behavior for progression reward items.\n */\nexport type DestinyDestinyProgressionRewardItemAcquisitionBehavior = 0 | 1;\n\nexport const DestinyDestinyProgressionRewardItemAcquisitionBehavior = {\n    NUMBER_0: 0 as DestinyDestinyProgressionRewardItemAcquisitionBehavior,\n    NUMBER_1: 1 as DestinyDestinyProgressionRewardItemAcquisitionBehavior\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Represents the different states a progression reward item can be in.\n */\nexport type DestinyDestinyProgressionRewardItemState = 0 | 1 | 2 | 4 | 8;\n\nexport const DestinyDestinyProgressionRewardItemState = {\n    NUMBER_0: 0 as DestinyDestinyProgressionRewardItemState,\n    NUMBER_1: 1 as DestinyDestinyProgressionRewardItemState,\n    NUMBER_2: 2 as DestinyDestinyProgressionRewardItemState,\n    NUMBER_4: 4 as DestinyDestinyProgressionRewardItemState,\n    NUMBER_8: 8 as DestinyDestinyProgressionRewardItemState\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * There are many Progressions in Destiny (think Character Level, or Reputation). These are the various \\\"Scopes\\\" of Progressions, which affect many things: * Where/if they are stored * How they are calculated * Where they can be used in other game logic\n */\nexport type DestinyDestinyProgressionScope = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\n\nexport const DestinyDestinyProgressionScope = {\n    NUMBER_0: 0 as DestinyDestinyProgressionScope,\n    NUMBER_1: 1 as DestinyDestinyProgressionScope,\n    NUMBER_2: 2 as DestinyDestinyProgressionScope,\n    NUMBER_3: 3 as DestinyDestinyProgressionScope,\n    NUMBER_4: 4 as DestinyDestinyProgressionScope,\n    NUMBER_5: 5 as DestinyDestinyProgressionScope,\n    NUMBER_6: 6 as DestinyDestinyProgressionScope,\n    NUMBER_7: 7 as DestinyDestinyProgressionScope,\n    NUMBER_8: 8 as DestinyDestinyProgressionScope\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * If progression is earned, this determines whether the progression shows visual effects on the character or its item - or neither.\n */\nexport type DestinyDestinyProgressionStepDisplayEffect = 0 | 1 | 2;\n\nexport const DestinyDestinyProgressionStepDisplayEffect = {\n    NUMBER_0: 0 as DestinyDestinyProgressionStepDisplayEffect,\n    NUMBER_1: 1 as DestinyDestinyProgressionStepDisplayEffect,\n    NUMBER_2: 2 as DestinyDestinyProgressionStepDisplayEffect\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDestinyRace = 0 | 1 | 2 | 3;\n\nexport const DestinyDestinyRace = {\n    NUMBER_0: 0 as DestinyDestinyRace,\n    NUMBER_1: 1 as DestinyDestinyRace,\n    NUMBER_2: 2 as DestinyDestinyRace,\n    NUMBER_3: 3 as DestinyDestinyRace\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A Flags enumeration/bitmask where each bit represents a possible state that a Record/Triumph can be in.\n */\nexport type DestinyDestinyRecordState = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64;\n\nexport const DestinyDestinyRecordState = {\n    NUMBER_0: 0 as DestinyDestinyRecordState,\n    NUMBER_1: 1 as DestinyDestinyRecordState,\n    NUMBER_2: 2 as DestinyDestinyRecordState,\n    NUMBER_4: 4 as DestinyDestinyRecordState,\n    NUMBER_8: 8 as DestinyDestinyRecordState,\n    NUMBER_16: 16 as DestinyDestinyRecordState,\n    NUMBER_32: 32 as DestinyDestinyRecordState,\n    NUMBER_64: 64 as DestinyDestinyRecordState\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDestinyRecordToastStyle = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;\n\nexport const DestinyDestinyRecordToastStyle = {\n    NUMBER_0: 0 as DestinyDestinyRecordToastStyle,\n    NUMBER_1: 1 as DestinyDestinyRecordToastStyle,\n    NUMBER_2: 2 as DestinyDestinyRecordToastStyle,\n    NUMBER_3: 3 as DestinyDestinyRecordToastStyle,\n    NUMBER_4: 4 as DestinyDestinyRecordToastStyle,\n    NUMBER_5: 5 as DestinyDestinyRecordToastStyle,\n    NUMBER_6: 6 as DestinyDestinyRecordToastStyle,\n    NUMBER_7: 7 as DestinyDestinyRecordToastStyle,\n    NUMBER_8: 8 as DestinyDestinyRecordToastStyle,\n    NUMBER_9: 9 as DestinyDestinyRecordToastStyle\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDestinyRecordValueStyle = 0 | 1 | 2 | 3 | 4;\n\nexport const DestinyDestinyRecordValueStyle = {\n    NUMBER_0: 0 as DestinyDestinyRecordValueStyle,\n    NUMBER_1: 1 as DestinyDestinyRecordValueStyle,\n    NUMBER_2: 2 as DestinyDestinyRecordValueStyle,\n    NUMBER_3: 3 as DestinyDestinyRecordValueStyle,\n    NUMBER_4: 4 as DestinyDestinyRecordValueStyle\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * There\\'s a lot of places where we need to know scope on more than just a profile or character level. For everything else, there\\'s this more generic sense of scope.\n */\nexport type DestinyDestinyScope = 0 | 1;\n\nexport const DestinyDestinyScope = {\n    NUMBER_0: 0 as DestinyDestinyScope,\n    NUMBER_1: 1 as DestinyDestinyScope\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Represents the possible and known UI styles used by the game for rendering Socket Categories.\n */\nexport type DestinyDestinySocketCategoryStyle = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\n\nexport const DestinyDestinySocketCategoryStyle = {\n    NUMBER_0: 0 as DestinyDestinySocketCategoryStyle,\n    NUMBER_1: 1 as DestinyDestinySocketCategoryStyle,\n    NUMBER_2: 2 as DestinyDestinySocketCategoryStyle,\n    NUMBER_3: 3 as DestinyDestinySocketCategoryStyle,\n    NUMBER_4: 4 as DestinyDestinySocketCategoryStyle,\n    NUMBER_5: 5 as DestinyDestinySocketCategoryStyle,\n    NUMBER_6: 6 as DestinyDestinySocketCategoryStyle,\n    NUMBER_7: 7 as DestinyDestinySocketCategoryStyle,\n    NUMBER_8: 8 as DestinyDestinySocketCategoryStyle\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDestinySocketVisibility = 0 | 1 | 2 | 3;\n\nexport const DestinyDestinySocketVisibility = {\n    NUMBER_0: 0 as DestinyDestinySocketVisibility,\n    NUMBER_1: 1 as DestinyDestinySocketVisibility,\n    NUMBER_2: 2 as DestinyDestinySocketVisibility,\n    NUMBER_3: 3 as DestinyDestinySocketVisibility\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * When a Stat (DestinyStatDefinition) is aggregated, this is the rules used for determining the level and formula used for aggregation.  * CharacterAverage = apply a weighted average using the related DestinyStatGroupDefinition on the DestinyInventoryItemDefinition across the character\\'s equipped items. See both of those definitions for details. * Character = don\\'t aggregate: the stat should be located and used directly on the character. * Item = don\\'t aggregate: the stat should be located and used directly on the item.\n */\nexport type DestinyDestinyStatAggregationType = 0 | 1 | 2;\n\nexport const DestinyDestinyStatAggregationType = {\n    NUMBER_0: 0 as DestinyDestinyStatAggregationType,\n    NUMBER_1: 1 as DestinyDestinyStatAggregationType,\n    NUMBER_2: 2 as DestinyDestinyStatAggregationType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * At last, stats have categories. Use this for whatever purpose you might wish.\n */\nexport type DestinyDestinyStatCategory = 0 | 1 | 2 | 3;\n\nexport const DestinyDestinyStatCategory = {\n    NUMBER_0: 0 as DestinyDestinyStatCategory,\n    NUMBER_1: 1 as DestinyDestinyStatCategory,\n    NUMBER_2: 2 as DestinyDestinyStatCategory,\n    NUMBER_3: 3 as DestinyDestinyStatCategory\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyDestinyTalentNodeState = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13;\n\nexport const DestinyDestinyTalentNodeState = {\n    NUMBER_0: 0 as DestinyDestinyTalentNodeState,\n    NUMBER_1: 1 as DestinyDestinyTalentNodeState,\n    NUMBER_2: 2 as DestinyDestinyTalentNodeState,\n    NUMBER_3: 3 as DestinyDestinyTalentNodeState,\n    NUMBER_4: 4 as DestinyDestinyTalentNodeState,\n    NUMBER_5: 5 as DestinyDestinyTalentNodeState,\n    NUMBER_6: 6 as DestinyDestinyTalentNodeState,\n    NUMBER_7: 7 as DestinyDestinyTalentNodeState,\n    NUMBER_8: 8 as DestinyDestinyTalentNodeState,\n    NUMBER_9: 9 as DestinyDestinyTalentNodeState,\n    NUMBER_10: 10 as DestinyDestinyTalentNodeState,\n    NUMBER_11: 11 as DestinyDestinyTalentNodeState,\n    NUMBER_12: 12 as DestinyDestinyTalentNodeState,\n    NUMBER_13: 13 as DestinyDestinyTalentNodeState\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * If you\\'re showing an unlock value in the UI, this is the format in which it should be shown. You\\'ll have to build your own algorithms on the client side to determine how best to render these options.\n */\nexport type DestinyDestinyUnlockValueUIStyle = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14;\n\nexport const DestinyDestinyUnlockValueUIStyle = {\n    NUMBER_0: 0 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_1: 1 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_2: 2 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_3: 3 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_4: 4 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_5: 5 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_6: 6 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_7: 7 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_8: 8 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_9: 9 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_10: 10 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_11: 11 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_12: 12 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_13: 13 as DestinyDestinyUnlockValueUIStyle,\n    NUMBER_14: 14 as DestinyDestinyUnlockValueUIStyle\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Indicates the type of filter to apply to Vendor results.\n */\nexport type DestinyDestinyVendorFilter = 0 | 1;\n\nexport const DestinyDestinyVendorFilter = {\n    NUMBER_0: 0 as DestinyDestinyVendorFilter,\n    NUMBER_1: 1 as DestinyDestinyVendorFilter\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * When a Vendor Interaction provides rewards, they\\'ll either let you choose one or let you have all of them. This determines which it will be.\n */\nexport type DestinyDestinyVendorInteractionRewardSelection = 0 | 1 | 2;\n\nexport const DestinyDestinyVendorInteractionRewardSelection = {\n    NUMBER_0: 0 as DestinyDestinyVendorInteractionRewardSelection,\n    NUMBER_1: 1 as DestinyDestinyVendorInteractionRewardSelection,\n    NUMBER_2: 2 as DestinyDestinyVendorInteractionRewardSelection\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The action that happens when the user attempts to refund an item.\n */\nexport type DestinyDestinyVendorItemRefundPolicy = 0 | 1 | 2;\n\nexport const DestinyDestinyVendorItemRefundPolicy = {\n    NUMBER_0: 0 as DestinyDestinyVendorItemRefundPolicy,\n    NUMBER_1: 1 as DestinyDestinyVendorItemRefundPolicy,\n    NUMBER_2: 2 as DestinyDestinyVendorItemRefundPolicy\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The possible states of Destiny Profile Records. IMPORTANT: Any given item can theoretically have many of these states simultaneously: as a result, this was altered to be a flags enumeration/bitmask for v3.2.0.\n */\nexport type DestinyDestinyVendorItemState = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | 32768 | 65536 | 131072 | 262144 | 524288 | 1048576;\n\nexport const DestinyDestinyVendorItemState = {\n    NUMBER_0: 0 as DestinyDestinyVendorItemState,\n    NUMBER_1: 1 as DestinyDestinyVendorItemState,\n    NUMBER_2: 2 as DestinyDestinyVendorItemState,\n    NUMBER_4: 4 as DestinyDestinyVendorItemState,\n    NUMBER_8: 8 as DestinyDestinyVendorItemState,\n    NUMBER_16: 16 as DestinyDestinyVendorItemState,\n    NUMBER_32: 32 as DestinyDestinyVendorItemState,\n    NUMBER_64: 64 as DestinyDestinyVendorItemState,\n    NUMBER_128: 128 as DestinyDestinyVendorItemState,\n    NUMBER_256: 256 as DestinyDestinyVendorItemState,\n    NUMBER_512: 512 as DestinyDestinyVendorItemState,\n    NUMBER_1024: 1024 as DestinyDestinyVendorItemState,\n    NUMBER_2048: 2048 as DestinyDestinyVendorItemState,\n    NUMBER_4096: 4096 as DestinyDestinyVendorItemState,\n    NUMBER_8192: 8192 as DestinyDestinyVendorItemState,\n    NUMBER_16384: 16384 as DestinyDestinyVendorItemState,\n    NUMBER_32768: 32768 as DestinyDestinyVendorItemState,\n    NUMBER_65536: 65536 as DestinyDestinyVendorItemState,\n    NUMBER_131072: 131072 as DestinyDestinyVendorItemState,\n    NUMBER_262144: 262144 as DestinyDestinyVendorItemState,\n    NUMBER_524288: 524288 as DestinyDestinyVendorItemState,\n    NUMBER_1048576: 1048576 as DestinyDestinyVendorItemState\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Describes the type of progression that a vendor has.\n */\nexport type DestinyDestinyVendorProgressionType = 0 | 1 | 2;\n\nexport const DestinyDestinyVendorProgressionType = {\n    NUMBER_0: 0 as DestinyDestinyVendorProgressionType,\n    NUMBER_1: 1 as DestinyDestinyVendorProgressionType,\n    NUMBER_2: 2 as DestinyDestinyVendorProgressionType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * This determines the type of reply that a Vendor will have during an Interaction.\n */\nexport type DestinyDestinyVendorReplyType = 0 | 1 | 2;\n\nexport const DestinyDestinyVendorReplyType = {\n    NUMBER_0: 0 as DestinyDestinyVendorReplyType,\n    NUMBER_1: 1 as DestinyDestinyVendorReplyType,\n    NUMBER_2: 2 as DestinyDestinyVendorReplyType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DestinyDestinyActivity } from './destinyDestinyActivity';\n\n\n/**\n * This component holds activity data for a character. It will tell you about the character\\'s current activity status, as well as activities that are available to the user.\n */\nexport interface DestinyEntitiesCharactersDestinyCharacterActivitiesComponent { \n    /**\n     * The last date that the user started playing an activity.\n     */\n    dateActivityStarted?: string;\n    /**\n     * The list of activities that the user can play.\n     */\n    availableActivities?: Array<DestinyDestinyActivity>;\n    /**\n     * If the user is in an activity, this will be the hash of the Activity being played. Note that you must combine this info with currentActivityModeHash to get a real picture of what the user is doing right now. For instance, PVP \\\"Activities\\\" are just maps: it\\'s the ActivityMode that determines what type of PVP game they\\'re playing.\n     */\n    currentActivityHash?: number;\n    /**\n     * If the user is in an activity, this will be the hash of the activity mode being played. Combine with currentActivityHash to give a person a full picture of what they\\'re doing right now.\n     */\n    currentActivityModeHash?: number;\n    /**\n     * And the current activity\\'s most specific mode type, if it can be found.\n     */\n    currentActivityModeType?: DestinyEntitiesCharactersDestinyCharacterActivitiesComponent.CurrentActivityModeTypeEnum;\n    /**\n     * If the user is in an activity, this will be the hashes of the DestinyActivityModeDefinition being played. Combine with currentActivityHash to give a person a full picture of what they\\'re doing right now.\n     */\n    currentActivityModeHashes?: Array<number>;\n    /**\n     * All Activity Modes that apply to the current activity being played, in enum form.\n     */\n    currentActivityModeTypes?: Array<number>;\n    /**\n     * If the user is in a playlist, this is the hash identifier for the playlist that they chose.\n     */\n    currentPlaylistActivityHash?: number;\n    /**\n     * This will have the activity hash of the last completed story/campaign mission, in case you care about that.\n     */\n    lastCompletedStoryHash?: number;\n}\nexport namespace DestinyEntitiesCharactersDestinyCharacterActivitiesComponent {\n    export type CurrentActivityModeTypeEnum = 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91;\n    export const CurrentActivityModeTypeEnum = {\n        NUMBER_0: 0 as CurrentActivityModeTypeEnum,\n        NUMBER_2: 2 as CurrentActivityModeTypeEnum,\n        NUMBER_3: 3 as CurrentActivityModeTypeEnum,\n        NUMBER_4: 4 as CurrentActivityModeTypeEnum,\n        NUMBER_5: 5 as CurrentActivityModeTypeEnum,\n        NUMBER_6: 6 as CurrentActivityModeTypeEnum,\n        NUMBER_7: 7 as CurrentActivityModeTypeEnum,\n        NUMBER_9: 9 as CurrentActivityModeTypeEnum,\n        NUMBER_10: 10 as CurrentActivityModeTypeEnum,\n        NUMBER_11: 11 as CurrentActivityModeTypeEnum,\n        NUMBER_12: 12 as CurrentActivityModeTypeEnum,\n        NUMBER_13: 13 as CurrentActivityModeTypeEnum,\n        NUMBER_15: 15 as CurrentActivityModeTypeEnum,\n        NUMBER_16: 16 as CurrentActivityModeTypeEnum,\n        NUMBER_17: 17 as CurrentActivityModeTypeEnum,\n        NUMBER_18: 18 as CurrentActivityModeTypeEnum,\n        NUMBER_19: 19 as CurrentActivityModeTypeEnum,\n        NUMBER_20: 20 as CurrentActivityModeTypeEnum,\n        NUMBER_21: 21 as CurrentActivityModeTypeEnum,\n        NUMBER_22: 22 as CurrentActivityModeTypeEnum,\n        NUMBER_24: 24 as CurrentActivityModeTypeEnum,\n        NUMBER_25: 25 as CurrentActivityModeTypeEnum,\n        NUMBER_26: 26 as CurrentActivityModeTypeEnum,\n        NUMBER_27: 27 as CurrentActivityModeTypeEnum,\n        NUMBER_28: 28 as CurrentActivityModeTypeEnum,\n        NUMBER_29: 29 as CurrentActivityModeTypeEnum,\n        NUMBER_30: 30 as CurrentActivityModeTypeEnum,\n        NUMBER_31: 31 as CurrentActivityModeTypeEnum,\n        NUMBER_32: 32 as CurrentActivityModeTypeEnum,\n        NUMBER_37: 37 as CurrentActivityModeTypeEnum,\n        NUMBER_38: 38 as CurrentActivityModeTypeEnum,\n        NUMBER_39: 39 as CurrentActivityModeTypeEnum,\n        NUMBER_40: 40 as CurrentActivityModeTypeEnum,\n        NUMBER_41: 41 as CurrentActivityModeTypeEnum,\n        NUMBER_42: 42 as CurrentActivityModeTypeEnum,\n        NUMBER_43: 43 as CurrentActivityModeTypeEnum,\n        NUMBER_44: 44 as CurrentActivityModeTypeEnum,\n        NUMBER_45: 45 as CurrentActivityModeTypeEnum,\n        NUMBER_46: 46 as CurrentActivityModeTypeEnum,\n        NUMBER_47: 47 as CurrentActivityModeTypeEnum,\n        NUMBER_48: 48 as CurrentActivityModeTypeEnum,\n        NUMBER_49: 49 as CurrentActivityModeTypeEnum,\n        NUMBER_50: 50 as CurrentActivityModeTypeEnum,\n        NUMBER_51: 51 as CurrentActivityModeTypeEnum,\n        NUMBER_52: 52 as CurrentActivityModeTypeEnum,\n        NUMBER_53: 53 as CurrentActivityModeTypeEnum,\n        NUMBER_54: 54 as CurrentActivityModeTypeEnum,\n        NUMBER_55: 55 as CurrentActivityModeTypeEnum,\n        NUMBER_56: 56 as CurrentActivityModeTypeEnum,\n        NUMBER_57: 57 as CurrentActivityModeTypeEnum,\n        NUMBER_58: 58 as CurrentActivityModeTypeEnum,\n        NUMBER_59: 59 as CurrentActivityModeTypeEnum,\n        NUMBER_60: 60 as CurrentActivityModeTypeEnum,\n        NUMBER_61: 61 as CurrentActivityModeTypeEnum,\n        NUMBER_62: 62 as CurrentActivityModeTypeEnum,\n        NUMBER_63: 63 as CurrentActivityModeTypeEnum,\n        NUMBER_64: 64 as CurrentActivityModeTypeEnum,\n        NUMBER_65: 65 as CurrentActivityModeTypeEnum,\n        NUMBER_66: 66 as CurrentActivityModeTypeEnum,\n        NUMBER_67: 67 as CurrentActivityModeTypeEnum,\n        NUMBER_68: 68 as CurrentActivityModeTypeEnum,\n        NUMBER_69: 69 as CurrentActivityModeTypeEnum,\n        NUMBER_70: 70 as CurrentActivityModeTypeEnum,\n        NUMBER_71: 71 as CurrentActivityModeTypeEnum,\n        NUMBER_72: 72 as CurrentActivityModeTypeEnum,\n        NUMBER_73: 73 as CurrentActivityModeTypeEnum,\n        NUMBER_74: 74 as CurrentActivityModeTypeEnum,\n        NUMBER_75: 75 as CurrentActivityModeTypeEnum,\n        NUMBER_76: 76 as CurrentActivityModeTypeEnum,\n        NUMBER_77: 77 as CurrentActivityModeTypeEnum,\n        NUMBER_78: 78 as CurrentActivityModeTypeEnum,\n        NUMBER_79: 79 as CurrentActivityModeTypeEnum,\n        NUMBER_80: 80 as CurrentActivityModeTypeEnum,\n        NUMBER_81: 81 as CurrentActivityModeTypeEnum,\n        NUMBER_82: 82 as CurrentActivityModeTypeEnum,\n        NUMBER_83: 83 as CurrentActivityModeTypeEnum,\n        NUMBER_84: 84 as CurrentActivityModeTypeEnum,\n        NUMBER_85: 85 as CurrentActivityModeTypeEnum,\n        NUMBER_86: 86 as CurrentActivityModeTypeEnum,\n        NUMBER_87: 87 as CurrentActivityModeTypeEnum,\n        NUMBER_88: 88 as CurrentActivityModeTypeEnum,\n        NUMBER_89: 89 as CurrentActivityModeTypeEnum,\n        NUMBER_90: 90 as CurrentActivityModeTypeEnum,\n        NUMBER_91: 91 as CurrentActivityModeTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DestinyEntitiesItemsDestinyItemInstanceComponentPrimaryStat } from './destinyEntitiesItemsDestinyItemInstanceComponentPrimaryStat';\nimport { DestinyEntitiesItemsDestinyItemInstanceComponentEnergy } from './destinyEntitiesItemsDestinyItemInstanceComponentEnergy';\n\n\n/**\n * If an item is \\\"instanced\\\", this will contain information about the item\\'s instance that doesn\\'t fit easily into other components. One might say this is the \\\"essential\\\" instance data for the item.  Items are instanced if they require information or state that can vary. For instance, weapons are Instanced: they are given a unique identifier, uniquely generated stats, and can have their properties altered. Non-instanced items have none of these things: for instance, Glimmer has no unique properties aside from how much of it you own.  You can tell from an item\\'s definition whether it will be instanced or not by looking at the DestinyInventoryItemDefinition\\'s definition.inventory.isInstanceItem property.\n */\nexport interface DestinyEntitiesItemsDestinyItemInstanceComponent { \n    /**\n     * If the item has a damage type, this is the item\\'s current damage type.\n     */\n    damageType?: number;\n    /**\n     * The current damage type\\'s hash, so you can look up localized info and icons for it.\n     */\n    damageTypeHash?: number;\n    primaryStat?: DestinyEntitiesItemsDestinyItemInstanceComponentPrimaryStat;\n    /**\n     * The Item\\'s \\\"Level\\\" has the most significant bearing on its stats, such as Light and Power.\n     */\n    itemLevel?: number;\n    /**\n     * The \\\"Quality\\\" of the item has a lesser - but still impactful - bearing on stats like Light and Power.\n     */\n    quality?: number;\n    /**\n     * Is the item currently equipped on the given character?\n     */\n    isEquipped?: boolean;\n    /**\n     * If this is an equippable item, you can check it here. There are permanent as well as transitory reasons why an item might not be able to be equipped: check cannotEquipReason for details.\n     */\n    canEquip?: boolean;\n    /**\n     * If the item cannot be equipped until you reach a certain level, that level will be reflected here.\n     */\n    equipRequiredLevel?: number;\n    /**\n     * Sometimes, there are limitations to equipping that are represented by character-level flags called \\\"unlocks\\\".  This is a list of flags that they need in order to equip the item that the character has not met. Use these to look up the descriptions to show in your UI by looking up the relevant DestinyUnlockDefinitions for the hashes.\n     */\n    unlockHashesRequiredToEquip?: Array<number>;\n    /**\n     * If you cannot equip the item, this is a flags enum that enumerates all of the reasons why you couldn\\'t equip the item. You may need to refine your UI further by using unlockHashesRequiredToEquip and equipRequiredLevel.\n     */\n    cannotEquipReason?: number;\n    /**\n     * If populated, this item has a breaker type corresponding to the given value. See DestinyBreakerTypeDefinition for more details.\n     */\n    breakerType?: DestinyEntitiesItemsDestinyItemInstanceComponent.BreakerTypeEnum;\n    /**\n     * If populated, this is the hash identifier for the item\\'s breaker type. See DestinyBreakerTypeDefinition for more details.\n     */\n    breakerTypeHash?: number;\n    energy?: DestinyEntitiesItemsDestinyItemInstanceComponentEnergy;\n}\nexport namespace DestinyEntitiesItemsDestinyItemInstanceComponent {\n    export type BreakerTypeEnum = 0 | 1 | 2 | 3;\n    export const BreakerTypeEnum = {\n        NUMBER_0: 0 as BreakerTypeEnum,\n        NUMBER_1: 1 as BreakerTypeEnum,\n        NUMBER_2: 2 as BreakerTypeEnum,\n        NUMBER_3: 3 as BreakerTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The reasons why an item cannot be equipped, if any. Many flags can be set, or \\\"None\\\" if\n */\nexport type DestinyEquipFailureReason = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128;\n\nexport const DestinyEquipFailureReason = {\n    NUMBER_0: 0 as DestinyEquipFailureReason,\n    NUMBER_1: 1 as DestinyEquipFailureReason,\n    NUMBER_2: 2 as DestinyEquipFailureReason,\n    NUMBER_4: 4 as DestinyEquipFailureReason,\n    NUMBER_8: 8 as DestinyEquipFailureReason,\n    NUMBER_16: 16 as DestinyEquipFailureReason,\n    NUMBER_32: 32 as DestinyEquipFailureReason,\n    NUMBER_64: 64 as DestinyEquipFailureReason,\n    NUMBER_128: 128 as DestinyEquipFailureReason\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyEquippingItemBlockAttributes = 0 | 1;\n\nexport const DestinyEquippingItemBlockAttributes = {\n    NUMBER_0: 0 as DestinyEquippingItemBlockAttributes,\n    NUMBER_1: 1 as DestinyEquippingItemBlockAttributes\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don\\'t take this to mean that some D1-only feature is coming back!\n */\nexport type DestinyHistoricalStatsDefinitionsDestinyActivityModeType = 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91;\n\nexport const DestinyHistoricalStatsDefinitionsDestinyActivityModeType = {\n    NUMBER_0: 0 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_2: 2 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_3: 3 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_4: 4 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_5: 5 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_6: 6 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_7: 7 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_9: 9 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_10: 10 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_11: 11 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_12: 12 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_13: 13 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_15: 15 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_16: 16 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_17: 17 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_18: 18 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_19: 19 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_20: 20 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_21: 21 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_22: 22 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_24: 24 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_25: 25 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_26: 26 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_27: 27 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_28: 28 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_29: 29 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_30: 30 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_31: 31 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_32: 32 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_37: 37 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_38: 38 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_39: 39 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_40: 40 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_41: 41 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_42: 42 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_43: 43 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_44: 44 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_45: 45 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_46: 46 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_47: 47 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_48: 48 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_49: 49 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_50: 50 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_51: 51 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_52: 52 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_53: 53 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_54: 54 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_55: 55 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_56: 56 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_57: 57 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_58: 58 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_59: 59 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_60: 60 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_61: 61 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_62: 62 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_63: 63 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_64: 64 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_65: 65 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_66: 66 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_67: 67 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_68: 68 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_69: 69 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_70: 70 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_71: 71 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_72: 72 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_73: 73 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_74: 74 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_75: 75 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_76: 76 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_77: 77 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_78: 78 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_79: 79 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_80: 80 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_81: 81 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_82: 82 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_83: 83 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_84: 84 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_85: 85 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_86: 86 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_87: 87 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_88: 88 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_89: 89 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_90: 90 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType,\n    NUMBER_91: 91 as DestinyHistoricalStatsDefinitionsDestinyActivityModeType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DestinyHistoricalStatsDefinitionsDestinyHistoricalStatsDefinition { \n    /**\n     * Unique programmer friendly ID for this stat\n     */\n    statId?: string;\n    /**\n     * Statistic group\n     */\n    group?: number;\n    /**\n     * Time periods the statistic covers\n     */\n    periodTypes?: Array<number>;\n    /**\n     * Game modes where this statistic can be reported.\n     */\n    modes?: Array<number>;\n    /**\n     * Category for the stat.\n     */\n    category?: number;\n    /**\n     * Display name\n     */\n    statName?: string;\n    /**\n     * Display name abbreviated\n     */\n    statNameAbbr?: string;\n    /**\n     * Description of a stat if applicable.\n     */\n    statDescription?: string;\n    /**\n     * Unit, if any, for the statistic\n     */\n    unitType?: number;\n    /**\n     * Optional URI to an icon for the statistic\n     */\n    iconImage?: string;\n    /**\n     * Optional icon for the statistic\n     */\n    mergeMethod?: DestinyHistoricalStatsDefinitionsDestinyHistoricalStatsDefinition.MergeMethodEnum;\n    /**\n     * Localized Unit Name for the stat.\n     */\n    unitLabel?: string;\n    /**\n     * Weight assigned to this stat indicating its relative impressiveness.\n     */\n    weight?: number;\n    /**\n     * The tier associated with this medal - be it implicitly or explicitly.\n     */\n    medalTierHash?: number;\n}\nexport namespace DestinyHistoricalStatsDefinitionsDestinyHistoricalStatsDefinition {\n    export type MergeMethodEnum = 0 | 1 | 2;\n    export const MergeMethodEnum = {\n        NUMBER_0: 0 as MergeMethodEnum,\n        NUMBER_1: 1 as MergeMethodEnum,\n        NUMBER_2: 2 as MergeMethodEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15;\n\nexport const DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType = {\n    NUMBER_0: 0 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_1: 1 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_2: 2 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_3: 3 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_4: 4 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_5: 5 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_6: 6 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_7: 7 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_8: 8 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_9: 9 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_10: 10 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_11: 11 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_12: 12 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_13: 13 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_14: 14 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType,\n    NUMBER_15: 15 as DestinyHistoricalStatsDefinitionsDestinyStatsCategoryType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * If the enum value is > 100, it is a \\\"special\\\" group that cannot be queried for directly (special cases apply to when they are returned, and are not relevant in general cases)\n */\nexport type DestinyHistoricalStatsDefinitionsDestinyStatsGroupType = 0 | 1 | 2 | 3 | 100 | 101 | 102 | 103 | 104;\n\nexport const DestinyHistoricalStatsDefinitionsDestinyStatsGroupType = {\n    NUMBER_0: 0 as DestinyHistoricalStatsDefinitionsDestinyStatsGroupType,\n    NUMBER_1: 1 as DestinyHistoricalStatsDefinitionsDestinyStatsGroupType,\n    NUMBER_2: 2 as DestinyHistoricalStatsDefinitionsDestinyStatsGroupType,\n    NUMBER_3: 3 as DestinyHistoricalStatsDefinitionsDestinyStatsGroupType,\n    NUMBER_100: 100 as DestinyHistoricalStatsDefinitionsDestinyStatsGroupType,\n    NUMBER_101: 101 as DestinyHistoricalStatsDefinitionsDestinyStatsGroupType,\n    NUMBER_102: 102 as DestinyHistoricalStatsDefinitionsDestinyStatsGroupType,\n    NUMBER_103: 103 as DestinyHistoricalStatsDefinitionsDestinyStatsGroupType,\n    NUMBER_104: 104 as DestinyHistoricalStatsDefinitionsDestinyStatsGroupType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyHistoricalStatsDefinitionsDestinyStatsMergeMethod = 0 | 1 | 2;\n\nexport const DestinyHistoricalStatsDefinitionsDestinyStatsMergeMethod = {\n    NUMBER_0: 0 as DestinyHistoricalStatsDefinitionsDestinyStatsMergeMethod,\n    NUMBER_1: 1 as DestinyHistoricalStatsDefinitionsDestinyStatsMergeMethod,\n    NUMBER_2: 2 as DestinyHistoricalStatsDefinitionsDestinyStatsMergeMethod\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyHistoricalStatsDefinitionsPeriodType = 0 | 1 | 2 | 3;\n\nexport const DestinyHistoricalStatsDefinitionsPeriodType = {\n    NUMBER_0: 0 as DestinyHistoricalStatsDefinitionsPeriodType,\n    NUMBER_1: 1 as DestinyHistoricalStatsDefinitionsPeriodType,\n    NUMBER_2: 2 as DestinyHistoricalStatsDefinitionsPeriodType,\n    NUMBER_3: 3 as DestinyHistoricalStatsDefinitionsPeriodType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyHistoricalStatsDefinitionsUnitType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13;\n\nexport const DestinyHistoricalStatsDefinitionsUnitType = {\n    NUMBER_0: 0 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_1: 1 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_2: 2 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_3: 3 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_4: 4 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_5: 5 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_6: 6 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_7: 7 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_8: 8 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_9: 9 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_10: 10 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_11: 11 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_12: 12 as DestinyHistoricalStatsDefinitionsUnitType,\n    NUMBER_13: 13 as DestinyHistoricalStatsDefinitionsUnitType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyItemBindStatus = 0 | 1 | 2 | 3;\n\nexport const DestinyItemBindStatus = {\n    NUMBER_0: 0 as DestinyItemBindStatus,\n    NUMBER_1: 1 as DestinyItemBindStatus,\n    NUMBER_2: 2 as DestinyItemBindStatus,\n    NUMBER_3: 3 as DestinyItemBindStatus\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyItemLocation = 0 | 1 | 2 | 3 | 4;\n\nexport const DestinyItemLocation = {\n    NUMBER_0: 0 as DestinyItemLocation,\n    NUMBER_1: 1 as DestinyItemLocation,\n    NUMBER_2: 2 as DestinyItemLocation,\n    NUMBER_3: 3 as DestinyItemLocation,\n    NUMBER_4: 4 as DestinyItemLocation\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Indicates how a perk should be shown, or if it should be, in the game UI. Maybe useful for those of you trying to filter out internal-use-only perks (or for those of you trying to figure out what they do!)\n */\nexport type DestinyItemPerkVisibility = 0 | 1 | 2;\n\nexport const DestinyItemPerkVisibility = {\n    NUMBER_0: 0 as DestinyItemPerkVisibility,\n    NUMBER_1: 1 as DestinyItemPerkVisibility,\n    NUMBER_2: 2 as DestinyItemPerkVisibility\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A flags enumeration/bitmask where each bit represents a different possible state that the item can be in that may effect how the item is displayed to the user and what actions can be performed against it.\n */\nexport type DestinyItemState = 0 | 1 | 2 | 4 | 8 | 16;\n\nexport const DestinyItemState = {\n    NUMBER_0: 0 as DestinyItemState,\n    NUMBER_1: 1 as DestinyItemState,\n    NUMBER_2: 2 as DestinyItemState,\n    NUMBER_4: 4 as DestinyItemState,\n    NUMBER_8: 8 as DestinyItemState,\n    NUMBER_16: 16 as DestinyItemState\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DestinyMilestonesDestinyMilestoneActivityVariant } from './destinyMilestonesDestinyMilestoneActivityVariant';\n\n\n/**\n * Sometimes, we know the specific activity that the Milestone wants you to play. This entity provides additional information about that Activity and all of its variants. (sometimes there\\'s only one variant, but I think you get the point)\n */\nexport interface DestinyMilestonesDestinyMilestoneActivity { \n    /**\n     * The hash of an arbitrarily chosen variant of this activity. We\\'ll go ahead and call that the \\\"canonical\\\" activity, because if you\\'re using this value you should only use it for properties that are common across the variants: things like the name of the activity, it\\'s location, etc... Use this hash to look up the DestinyActivityDefinition of this activity for rendering data.\n     */\n    activityHash?: number;\n    /**\n     * The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it\\'s not clear what mode the PVP map is being played under. If it\\'s a playlist, this will be less specific: but hopefully useful in some way.\n     */\n    activityModeHash?: number;\n    /**\n     * The enumeration equivalent of the most specific Activity Mode under which this activity is played.\n     */\n    activityModeType?: DestinyMilestonesDestinyMilestoneActivity.ActivityModeTypeEnum;\n    /**\n     * If the activity has modifiers, this will be the list of modifiers that all variants have in common. Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied to get at the modifier data. Note that, in the DestiyActivityDefinition, you will see many more modifiers than this being referred to: those are all *possible* modifiers for the activity, not the active ones. Use only the active ones to match what\\'s really live.\n     */\n    modifierHashes?: Array<number>;\n    /**\n     * If you want more than just name/location/etc... you\\'re going to have to dig into and show the variants of the conceptual activity. These will differ in seemingly arbitrary ways, like difficulty level and modifiers applied. Show it in whatever way tickles your fancy.\n     */\n    variants?: Array<DestinyMilestonesDestinyMilestoneActivityVariant>;\n}\nexport namespace DestinyMilestonesDestinyMilestoneActivity {\n    export type ActivityModeTypeEnum = 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91;\n    export const ActivityModeTypeEnum = {\n        NUMBER_0: 0 as ActivityModeTypeEnum,\n        NUMBER_2: 2 as ActivityModeTypeEnum,\n        NUMBER_3: 3 as ActivityModeTypeEnum,\n        NUMBER_4: 4 as ActivityModeTypeEnum,\n        NUMBER_5: 5 as ActivityModeTypeEnum,\n        NUMBER_6: 6 as ActivityModeTypeEnum,\n        NUMBER_7: 7 as ActivityModeTypeEnum,\n        NUMBER_9: 9 as ActivityModeTypeEnum,\n        NUMBER_10: 10 as ActivityModeTypeEnum,\n        NUMBER_11: 11 as ActivityModeTypeEnum,\n        NUMBER_12: 12 as ActivityModeTypeEnum,\n        NUMBER_13: 13 as ActivityModeTypeEnum,\n        NUMBER_15: 15 as ActivityModeTypeEnum,\n        NUMBER_16: 16 as ActivityModeTypeEnum,\n        NUMBER_17: 17 as ActivityModeTypeEnum,\n        NUMBER_18: 18 as ActivityModeTypeEnum,\n        NUMBER_19: 19 as ActivityModeTypeEnum,\n        NUMBER_20: 20 as ActivityModeTypeEnum,\n        NUMBER_21: 21 as ActivityModeTypeEnum,\n        NUMBER_22: 22 as ActivityModeTypeEnum,\n        NUMBER_24: 24 as ActivityModeTypeEnum,\n        NUMBER_25: 25 as ActivityModeTypeEnum,\n        NUMBER_26: 26 as ActivityModeTypeEnum,\n        NUMBER_27: 27 as ActivityModeTypeEnum,\n        NUMBER_28: 28 as ActivityModeTypeEnum,\n        NUMBER_29: 29 as ActivityModeTypeEnum,\n        NUMBER_30: 30 as ActivityModeTypeEnum,\n        NUMBER_31: 31 as ActivityModeTypeEnum,\n        NUMBER_32: 32 as ActivityModeTypeEnum,\n        NUMBER_37: 37 as ActivityModeTypeEnum,\n        NUMBER_38: 38 as ActivityModeTypeEnum,\n        NUMBER_39: 39 as ActivityModeTypeEnum,\n        NUMBER_40: 40 as ActivityModeTypeEnum,\n        NUMBER_41: 41 as ActivityModeTypeEnum,\n        NUMBER_42: 42 as ActivityModeTypeEnum,\n        NUMBER_43: 43 as ActivityModeTypeEnum,\n        NUMBER_44: 44 as ActivityModeTypeEnum,\n        NUMBER_45: 45 as ActivityModeTypeEnum,\n        NUMBER_46: 46 as ActivityModeTypeEnum,\n        NUMBER_47: 47 as ActivityModeTypeEnum,\n        NUMBER_48: 48 as ActivityModeTypeEnum,\n        NUMBER_49: 49 as ActivityModeTypeEnum,\n        NUMBER_50: 50 as ActivityModeTypeEnum,\n        NUMBER_51: 51 as ActivityModeTypeEnum,\n        NUMBER_52: 52 as ActivityModeTypeEnum,\n        NUMBER_53: 53 as ActivityModeTypeEnum,\n        NUMBER_54: 54 as ActivityModeTypeEnum,\n        NUMBER_55: 55 as ActivityModeTypeEnum,\n        NUMBER_56: 56 as ActivityModeTypeEnum,\n        NUMBER_57: 57 as ActivityModeTypeEnum,\n        NUMBER_58: 58 as ActivityModeTypeEnum,\n        NUMBER_59: 59 as ActivityModeTypeEnum,\n        NUMBER_60: 60 as ActivityModeTypeEnum,\n        NUMBER_61: 61 as ActivityModeTypeEnum,\n        NUMBER_62: 62 as ActivityModeTypeEnum,\n        NUMBER_63: 63 as ActivityModeTypeEnum,\n        NUMBER_64: 64 as ActivityModeTypeEnum,\n        NUMBER_65: 65 as ActivityModeTypeEnum,\n        NUMBER_66: 66 as ActivityModeTypeEnum,\n        NUMBER_67: 67 as ActivityModeTypeEnum,\n        NUMBER_68: 68 as ActivityModeTypeEnum,\n        NUMBER_69: 69 as ActivityModeTypeEnum,\n        NUMBER_70: 70 as ActivityModeTypeEnum,\n        NUMBER_71: 71 as ActivityModeTypeEnum,\n        NUMBER_72: 72 as ActivityModeTypeEnum,\n        NUMBER_73: 73 as ActivityModeTypeEnum,\n        NUMBER_74: 74 as ActivityModeTypeEnum,\n        NUMBER_75: 75 as ActivityModeTypeEnum,\n        NUMBER_76: 76 as ActivityModeTypeEnum,\n        NUMBER_77: 77 as ActivityModeTypeEnum,\n        NUMBER_78: 78 as ActivityModeTypeEnum,\n        NUMBER_79: 79 as ActivityModeTypeEnum,\n        NUMBER_80: 80 as ActivityModeTypeEnum,\n        NUMBER_81: 81 as ActivityModeTypeEnum,\n        NUMBER_82: 82 as ActivityModeTypeEnum,\n        NUMBER_83: 83 as ActivityModeTypeEnum,\n        NUMBER_84: 84 as ActivityModeTypeEnum,\n        NUMBER_85: 85 as ActivityModeTypeEnum,\n        NUMBER_86: 86 as ActivityModeTypeEnum,\n        NUMBER_87: 87 as ActivityModeTypeEnum,\n        NUMBER_88: 88 as ActivityModeTypeEnum,\n        NUMBER_89: 89 as ActivityModeTypeEnum,\n        NUMBER_90: 90 as ActivityModeTypeEnum,\n        NUMBER_91: 91 as ActivityModeTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DestinyMilestonesDestinyMilestoneActivityVariantCompletionStatus } from './destinyMilestonesDestinyMilestoneActivityVariantCompletionStatus';\n\n\n/**\n * Represents custom data that we know about an individual variant of an activity.\n */\nexport interface DestinyMilestonesDestinyMilestoneActivityVariant { \n    /**\n     * The hash for the specific variant of the activity related to this milestone. You can pull more detailed static info from the DestinyActivityDefinition, such as difficulty level.\n     */\n    activityHash?: number;\n    completionStatus?: DestinyMilestonesDestinyMilestoneActivityVariantCompletionStatus;\n    /**\n     * The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it\\'s not clear what mode the PVP map is being played under. If it\\'s a playlist, this will be less specific: but hopefully useful in some way.\n     */\n    activityModeHash?: number;\n    /**\n     * The enumeration equivalent of the most specific Activity Mode under which this activity is played.\n     */\n    activityModeType?: DestinyMilestonesDestinyMilestoneActivityVariant.ActivityModeTypeEnum;\n}\nexport namespace DestinyMilestonesDestinyMilestoneActivityVariant {\n    export type ActivityModeTypeEnum = 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91;\n    export const ActivityModeTypeEnum = {\n        NUMBER_0: 0 as ActivityModeTypeEnum,\n        NUMBER_2: 2 as ActivityModeTypeEnum,\n        NUMBER_3: 3 as ActivityModeTypeEnum,\n        NUMBER_4: 4 as ActivityModeTypeEnum,\n        NUMBER_5: 5 as ActivityModeTypeEnum,\n        NUMBER_6: 6 as ActivityModeTypeEnum,\n        NUMBER_7: 7 as ActivityModeTypeEnum,\n        NUMBER_9: 9 as ActivityModeTypeEnum,\n        NUMBER_10: 10 as ActivityModeTypeEnum,\n        NUMBER_11: 11 as ActivityModeTypeEnum,\n        NUMBER_12: 12 as ActivityModeTypeEnum,\n        NUMBER_13: 13 as ActivityModeTypeEnum,\n        NUMBER_15: 15 as ActivityModeTypeEnum,\n        NUMBER_16: 16 as ActivityModeTypeEnum,\n        NUMBER_17: 17 as ActivityModeTypeEnum,\n        NUMBER_18: 18 as ActivityModeTypeEnum,\n        NUMBER_19: 19 as ActivityModeTypeEnum,\n        NUMBER_20: 20 as ActivityModeTypeEnum,\n        NUMBER_21: 21 as ActivityModeTypeEnum,\n        NUMBER_22: 22 as ActivityModeTypeEnum,\n        NUMBER_24: 24 as ActivityModeTypeEnum,\n        NUMBER_25: 25 as ActivityModeTypeEnum,\n        NUMBER_26: 26 as ActivityModeTypeEnum,\n        NUMBER_27: 27 as ActivityModeTypeEnum,\n        NUMBER_28: 28 as ActivityModeTypeEnum,\n        NUMBER_29: 29 as ActivityModeTypeEnum,\n        NUMBER_30: 30 as ActivityModeTypeEnum,\n        NUMBER_31: 31 as ActivityModeTypeEnum,\n        NUMBER_32: 32 as ActivityModeTypeEnum,\n        NUMBER_37: 37 as ActivityModeTypeEnum,\n        NUMBER_38: 38 as ActivityModeTypeEnum,\n        NUMBER_39: 39 as ActivityModeTypeEnum,\n        NUMBER_40: 40 as ActivityModeTypeEnum,\n        NUMBER_41: 41 as ActivityModeTypeEnum,\n        NUMBER_42: 42 as ActivityModeTypeEnum,\n        NUMBER_43: 43 as ActivityModeTypeEnum,\n        NUMBER_44: 44 as ActivityModeTypeEnum,\n        NUMBER_45: 45 as ActivityModeTypeEnum,\n        NUMBER_46: 46 as ActivityModeTypeEnum,\n        NUMBER_47: 47 as ActivityModeTypeEnum,\n        NUMBER_48: 48 as ActivityModeTypeEnum,\n        NUMBER_49: 49 as ActivityModeTypeEnum,\n        NUMBER_50: 50 as ActivityModeTypeEnum,\n        NUMBER_51: 51 as ActivityModeTypeEnum,\n        NUMBER_52: 52 as ActivityModeTypeEnum,\n        NUMBER_53: 53 as ActivityModeTypeEnum,\n        NUMBER_54: 54 as ActivityModeTypeEnum,\n        NUMBER_55: 55 as ActivityModeTypeEnum,\n        NUMBER_56: 56 as ActivityModeTypeEnum,\n        NUMBER_57: 57 as ActivityModeTypeEnum,\n        NUMBER_58: 58 as ActivityModeTypeEnum,\n        NUMBER_59: 59 as ActivityModeTypeEnum,\n        NUMBER_60: 60 as ActivityModeTypeEnum,\n        NUMBER_61: 61 as ActivityModeTypeEnum,\n        NUMBER_62: 62 as ActivityModeTypeEnum,\n        NUMBER_63: 63 as ActivityModeTypeEnum,\n        NUMBER_64: 64 as ActivityModeTypeEnum,\n        NUMBER_65: 65 as ActivityModeTypeEnum,\n        NUMBER_66: 66 as ActivityModeTypeEnum,\n        NUMBER_67: 67 as ActivityModeTypeEnum,\n        NUMBER_68: 68 as ActivityModeTypeEnum,\n        NUMBER_69: 69 as ActivityModeTypeEnum,\n        NUMBER_70: 70 as ActivityModeTypeEnum,\n        NUMBER_71: 71 as ActivityModeTypeEnum,\n        NUMBER_72: 72 as ActivityModeTypeEnum,\n        NUMBER_73: 73 as ActivityModeTypeEnum,\n        NUMBER_74: 74 as ActivityModeTypeEnum,\n        NUMBER_75: 75 as ActivityModeTypeEnum,\n        NUMBER_76: 76 as ActivityModeTypeEnum,\n        NUMBER_77: 77 as ActivityModeTypeEnum,\n        NUMBER_78: 78 as ActivityModeTypeEnum,\n        NUMBER_79: 79 as ActivityModeTypeEnum,\n        NUMBER_80: 80 as ActivityModeTypeEnum,\n        NUMBER_81: 81 as ActivityModeTypeEnum,\n        NUMBER_82: 82 as ActivityModeTypeEnum,\n        NUMBER_83: 83 as ActivityModeTypeEnum,\n        NUMBER_84: 84 as ActivityModeTypeEnum,\n        NUMBER_85: 85 as ActivityModeTypeEnum,\n        NUMBER_86: 86 as ActivityModeTypeEnum,\n        NUMBER_87: 87 as ActivityModeTypeEnum,\n        NUMBER_88: 88 as ActivityModeTypeEnum,\n        NUMBER_89: 89 as ActivityModeTypeEnum,\n        NUMBER_90: 90 as ActivityModeTypeEnum,\n        NUMBER_91: 91 as ActivityModeTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DestinyMilestonesDestinyMilestoneActivity } from './destinyMilestonesDestinyMilestoneActivity';\nimport { DestinyMilestonesDestinyMilestoneActivityVariant } from './destinyMilestonesDestinyMilestoneActivityVariant';\n\n\n/**\n * *IF* the Milestone has an active Activity that can give you greater details about what you need to do, it will be returned here. Remember to associate this with the DestinyMilestoneDefinition\\'s activities to get details about the activity, including what specific quest it is related to if you have multiple quests to choose from.\n */\nexport interface DestinyMilestonesDestinyMilestoneQuestActivity { \n    /**\n     * The hash of an arbitrarily chosen variant of this activity. We\\'ll go ahead and call that the \\\"canonical\\\" activity, because if you\\'re using this value you should only use it for properties that are common across the variants: things like the name of the activity, it\\'s location, etc... Use this hash to look up the DestinyActivityDefinition of this activity for rendering data.\n     */\n    activityHash?: number;\n    /**\n     * The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it\\'s not clear what mode the PVP map is being played under. If it\\'s a playlist, this will be less specific: but hopefully useful in some way.\n     */\n    activityModeHash?: number;\n    /**\n     * The enumeration equivalent of the most specific Activity Mode under which this activity is played.\n     */\n    activityModeType?: DestinyMilestonesDestinyMilestoneQuestActivity.ActivityModeTypeEnum;\n    /**\n     * If the activity has modifiers, this will be the list of modifiers that all variants have in common. Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied to get at the modifier data. Note that, in the DestiyActivityDefinition, you will see many more modifiers than this being referred to: those are all *possible* modifiers for the activity, not the active ones. Use only the active ones to match what\\'s really live.\n     */\n    modifierHashes?: Array<number>;\n    /**\n     * If you want more than just name/location/etc... you\\'re going to have to dig into and show the variants of the conceptual activity. These will differ in seemingly arbitrary ways, like difficulty level and modifiers applied. Show it in whatever way tickles your fancy.\n     */\n    variants?: Array<DestinyMilestonesDestinyMilestoneActivityVariant>;\n}\nexport namespace DestinyMilestonesDestinyMilestoneQuestActivity {\n    export type ActivityModeTypeEnum = 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91;\n    export const ActivityModeTypeEnum = {\n        NUMBER_0: 0 as ActivityModeTypeEnum,\n        NUMBER_2: 2 as ActivityModeTypeEnum,\n        NUMBER_3: 3 as ActivityModeTypeEnum,\n        NUMBER_4: 4 as ActivityModeTypeEnum,\n        NUMBER_5: 5 as ActivityModeTypeEnum,\n        NUMBER_6: 6 as ActivityModeTypeEnum,\n        NUMBER_7: 7 as ActivityModeTypeEnum,\n        NUMBER_9: 9 as ActivityModeTypeEnum,\n        NUMBER_10: 10 as ActivityModeTypeEnum,\n        NUMBER_11: 11 as ActivityModeTypeEnum,\n        NUMBER_12: 12 as ActivityModeTypeEnum,\n        NUMBER_13: 13 as ActivityModeTypeEnum,\n        NUMBER_15: 15 as ActivityModeTypeEnum,\n        NUMBER_16: 16 as ActivityModeTypeEnum,\n        NUMBER_17: 17 as ActivityModeTypeEnum,\n        NUMBER_18: 18 as ActivityModeTypeEnum,\n        NUMBER_19: 19 as ActivityModeTypeEnum,\n        NUMBER_20: 20 as ActivityModeTypeEnum,\n        NUMBER_21: 21 as ActivityModeTypeEnum,\n        NUMBER_22: 22 as ActivityModeTypeEnum,\n        NUMBER_24: 24 as ActivityModeTypeEnum,\n        NUMBER_25: 25 as ActivityModeTypeEnum,\n        NUMBER_26: 26 as ActivityModeTypeEnum,\n        NUMBER_27: 27 as ActivityModeTypeEnum,\n        NUMBER_28: 28 as ActivityModeTypeEnum,\n        NUMBER_29: 29 as ActivityModeTypeEnum,\n        NUMBER_30: 30 as ActivityModeTypeEnum,\n        NUMBER_31: 31 as ActivityModeTypeEnum,\n        NUMBER_32: 32 as ActivityModeTypeEnum,\n        NUMBER_37: 37 as ActivityModeTypeEnum,\n        NUMBER_38: 38 as ActivityModeTypeEnum,\n        NUMBER_39: 39 as ActivityModeTypeEnum,\n        NUMBER_40: 40 as ActivityModeTypeEnum,\n        NUMBER_41: 41 as ActivityModeTypeEnum,\n        NUMBER_42: 42 as ActivityModeTypeEnum,\n        NUMBER_43: 43 as ActivityModeTypeEnum,\n        NUMBER_44: 44 as ActivityModeTypeEnum,\n        NUMBER_45: 45 as ActivityModeTypeEnum,\n        NUMBER_46: 46 as ActivityModeTypeEnum,\n        NUMBER_47: 47 as ActivityModeTypeEnum,\n        NUMBER_48: 48 as ActivityModeTypeEnum,\n        NUMBER_49: 49 as ActivityModeTypeEnum,\n        NUMBER_50: 50 as ActivityModeTypeEnum,\n        NUMBER_51: 51 as ActivityModeTypeEnum,\n        NUMBER_52: 52 as ActivityModeTypeEnum,\n        NUMBER_53: 53 as ActivityModeTypeEnum,\n        NUMBER_54: 54 as ActivityModeTypeEnum,\n        NUMBER_55: 55 as ActivityModeTypeEnum,\n        NUMBER_56: 56 as ActivityModeTypeEnum,\n        NUMBER_57: 57 as ActivityModeTypeEnum,\n        NUMBER_58: 58 as ActivityModeTypeEnum,\n        NUMBER_59: 59 as ActivityModeTypeEnum,\n        NUMBER_60: 60 as ActivityModeTypeEnum,\n        NUMBER_61: 61 as ActivityModeTypeEnum,\n        NUMBER_62: 62 as ActivityModeTypeEnum,\n        NUMBER_63: 63 as ActivityModeTypeEnum,\n        NUMBER_64: 64 as ActivityModeTypeEnum,\n        NUMBER_65: 65 as ActivityModeTypeEnum,\n        NUMBER_66: 66 as ActivityModeTypeEnum,\n        NUMBER_67: 67 as ActivityModeTypeEnum,\n        NUMBER_68: 68 as ActivityModeTypeEnum,\n        NUMBER_69: 69 as ActivityModeTypeEnum,\n        NUMBER_70: 70 as ActivityModeTypeEnum,\n        NUMBER_71: 71 as ActivityModeTypeEnum,\n        NUMBER_72: 72 as ActivityModeTypeEnum,\n        NUMBER_73: 73 as ActivityModeTypeEnum,\n        NUMBER_74: 74 as ActivityModeTypeEnum,\n        NUMBER_75: 75 as ActivityModeTypeEnum,\n        NUMBER_76: 76 as ActivityModeTypeEnum,\n        NUMBER_77: 77 as ActivityModeTypeEnum,\n        NUMBER_78: 78 as ActivityModeTypeEnum,\n        NUMBER_79: 79 as ActivityModeTypeEnum,\n        NUMBER_80: 80 as ActivityModeTypeEnum,\n        NUMBER_81: 81 as ActivityModeTypeEnum,\n        NUMBER_82: 82 as ActivityModeTypeEnum,\n        NUMBER_83: 83 as ActivityModeTypeEnum,\n        NUMBER_84: 84 as ActivityModeTypeEnum,\n        NUMBER_85: 85 as ActivityModeTypeEnum,\n        NUMBER_86: 86 as ActivityModeTypeEnum,\n        NUMBER_87: 87 as ActivityModeTypeEnum,\n        NUMBER_88: 88 as ActivityModeTypeEnum,\n        NUMBER_89: 89 as ActivityModeTypeEnum,\n        NUMBER_90: 90 as ActivityModeTypeEnum,\n        NUMBER_91: 91 as ActivityModeTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DestinyMilestonesDestinyPublicMilestoneActivityVariant } from './destinyMilestonesDestinyPublicMilestoneActivityVariant';\n\n\n/**\n * A milestone may have one or more conceptual Activities associated with it, and each of those conceptual activities could have a variety of variants, modes, tiers, what-have-you. Our attempts to determine what qualifies as a conceptual activity are, unfortunately, janky. So if you see missing modes or modes that don\\'t seem appropriate to you, let us know and I\\'ll buy you a beer if we ever meet up in person.\n */\nexport interface DestinyMilestonesDestinyPublicMilestoneActivity { \n    /**\n     * The hash identifier of the activity that\\'s been chosen to be considered the canonical \\\"conceptual\\\" activity definition. This may have many variants, defined herein.\n     */\n    activityHash?: number;\n    /**\n     * The activity may have 0-to-many modifiers: if it does, this will contain the hashes to the DestinyActivityModifierDefinition that defines the modifier being applied.\n     */\n    modifierHashes?: Array<number>;\n    /**\n     * Every relevant variation of this conceptual activity, including the conceptual activity itself, have variants defined here.\n     */\n    variants?: Array<DestinyMilestonesDestinyPublicMilestoneActivityVariant>;\n    /**\n     * The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it\\'s not clear what mode the PVP map is being played under. If it\\'s a playlist, this will be less specific: but hopefully useful in some way.\n     */\n    activityModeHash?: number;\n    /**\n     * The enumeration equivalent of the most specific Activity Mode under which this activity is played.\n     */\n    activityModeType?: DestinyMilestonesDestinyPublicMilestoneActivity.ActivityModeTypeEnum;\n}\nexport namespace DestinyMilestonesDestinyPublicMilestoneActivity {\n    export type ActivityModeTypeEnum = 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91;\n    export const ActivityModeTypeEnum = {\n        NUMBER_0: 0 as ActivityModeTypeEnum,\n        NUMBER_2: 2 as ActivityModeTypeEnum,\n        NUMBER_3: 3 as ActivityModeTypeEnum,\n        NUMBER_4: 4 as ActivityModeTypeEnum,\n        NUMBER_5: 5 as ActivityModeTypeEnum,\n        NUMBER_6: 6 as ActivityModeTypeEnum,\n        NUMBER_7: 7 as ActivityModeTypeEnum,\n        NUMBER_9: 9 as ActivityModeTypeEnum,\n        NUMBER_10: 10 as ActivityModeTypeEnum,\n        NUMBER_11: 11 as ActivityModeTypeEnum,\n        NUMBER_12: 12 as ActivityModeTypeEnum,\n        NUMBER_13: 13 as ActivityModeTypeEnum,\n        NUMBER_15: 15 as ActivityModeTypeEnum,\n        NUMBER_16: 16 as ActivityModeTypeEnum,\n        NUMBER_17: 17 as ActivityModeTypeEnum,\n        NUMBER_18: 18 as ActivityModeTypeEnum,\n        NUMBER_19: 19 as ActivityModeTypeEnum,\n        NUMBER_20: 20 as ActivityModeTypeEnum,\n        NUMBER_21: 21 as ActivityModeTypeEnum,\n        NUMBER_22: 22 as ActivityModeTypeEnum,\n        NUMBER_24: 24 as ActivityModeTypeEnum,\n        NUMBER_25: 25 as ActivityModeTypeEnum,\n        NUMBER_26: 26 as ActivityModeTypeEnum,\n        NUMBER_27: 27 as ActivityModeTypeEnum,\n        NUMBER_28: 28 as ActivityModeTypeEnum,\n        NUMBER_29: 29 as ActivityModeTypeEnum,\n        NUMBER_30: 30 as ActivityModeTypeEnum,\n        NUMBER_31: 31 as ActivityModeTypeEnum,\n        NUMBER_32: 32 as ActivityModeTypeEnum,\n        NUMBER_37: 37 as ActivityModeTypeEnum,\n        NUMBER_38: 38 as ActivityModeTypeEnum,\n        NUMBER_39: 39 as ActivityModeTypeEnum,\n        NUMBER_40: 40 as ActivityModeTypeEnum,\n        NUMBER_41: 41 as ActivityModeTypeEnum,\n        NUMBER_42: 42 as ActivityModeTypeEnum,\n        NUMBER_43: 43 as ActivityModeTypeEnum,\n        NUMBER_44: 44 as ActivityModeTypeEnum,\n        NUMBER_45: 45 as ActivityModeTypeEnum,\n        NUMBER_46: 46 as ActivityModeTypeEnum,\n        NUMBER_47: 47 as ActivityModeTypeEnum,\n        NUMBER_48: 48 as ActivityModeTypeEnum,\n        NUMBER_49: 49 as ActivityModeTypeEnum,\n        NUMBER_50: 50 as ActivityModeTypeEnum,\n        NUMBER_51: 51 as ActivityModeTypeEnum,\n        NUMBER_52: 52 as ActivityModeTypeEnum,\n        NUMBER_53: 53 as ActivityModeTypeEnum,\n        NUMBER_54: 54 as ActivityModeTypeEnum,\n        NUMBER_55: 55 as ActivityModeTypeEnum,\n        NUMBER_56: 56 as ActivityModeTypeEnum,\n        NUMBER_57: 57 as ActivityModeTypeEnum,\n        NUMBER_58: 58 as ActivityModeTypeEnum,\n        NUMBER_59: 59 as ActivityModeTypeEnum,\n        NUMBER_60: 60 as ActivityModeTypeEnum,\n        NUMBER_61: 61 as ActivityModeTypeEnum,\n        NUMBER_62: 62 as ActivityModeTypeEnum,\n        NUMBER_63: 63 as ActivityModeTypeEnum,\n        NUMBER_64: 64 as ActivityModeTypeEnum,\n        NUMBER_65: 65 as ActivityModeTypeEnum,\n        NUMBER_66: 66 as ActivityModeTypeEnum,\n        NUMBER_67: 67 as ActivityModeTypeEnum,\n        NUMBER_68: 68 as ActivityModeTypeEnum,\n        NUMBER_69: 69 as ActivityModeTypeEnum,\n        NUMBER_70: 70 as ActivityModeTypeEnum,\n        NUMBER_71: 71 as ActivityModeTypeEnum,\n        NUMBER_72: 72 as ActivityModeTypeEnum,\n        NUMBER_73: 73 as ActivityModeTypeEnum,\n        NUMBER_74: 74 as ActivityModeTypeEnum,\n        NUMBER_75: 75 as ActivityModeTypeEnum,\n        NUMBER_76: 76 as ActivityModeTypeEnum,\n        NUMBER_77: 77 as ActivityModeTypeEnum,\n        NUMBER_78: 78 as ActivityModeTypeEnum,\n        NUMBER_79: 79 as ActivityModeTypeEnum,\n        NUMBER_80: 80 as ActivityModeTypeEnum,\n        NUMBER_81: 81 as ActivityModeTypeEnum,\n        NUMBER_82: 82 as ActivityModeTypeEnum,\n        NUMBER_83: 83 as ActivityModeTypeEnum,\n        NUMBER_84: 84 as ActivityModeTypeEnum,\n        NUMBER_85: 85 as ActivityModeTypeEnum,\n        NUMBER_86: 86 as ActivityModeTypeEnum,\n        NUMBER_87: 87 as ActivityModeTypeEnum,\n        NUMBER_88: 88 as ActivityModeTypeEnum,\n        NUMBER_89: 89 as ActivityModeTypeEnum,\n        NUMBER_90: 90 as ActivityModeTypeEnum,\n        NUMBER_91: 91 as ActivityModeTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Represents a variant of an activity that\\'s relevant to a milestone.\n */\nexport interface DestinyMilestonesDestinyPublicMilestoneActivityVariant { \n    /**\n     * The hash identifier of this activity variant. Examine the activity\\'s definition in the Manifest database to determine what makes it a distinct variant. Usually it will be difficulty level or whether or not it is a guided game variant of the activity, but theoretically it could be distinguished in any arbitrary way.\n     */\n    activityHash?: number;\n    /**\n     * The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it\\'s not clear what mode the PVP map is being played under. If it\\'s a playlist, this will be less specific: but hopefully useful in some way.\n     */\n    activityModeHash?: number;\n    /**\n     * The enumeration equivalent of the most specific Activity Mode under which this activity is played.\n     */\n    activityModeType?: DestinyMilestonesDestinyPublicMilestoneActivityVariant.ActivityModeTypeEnum;\n}\nexport namespace DestinyMilestonesDestinyPublicMilestoneActivityVariant {\n    export type ActivityModeTypeEnum = 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91;\n    export const ActivityModeTypeEnum = {\n        NUMBER_0: 0 as ActivityModeTypeEnum,\n        NUMBER_2: 2 as ActivityModeTypeEnum,\n        NUMBER_3: 3 as ActivityModeTypeEnum,\n        NUMBER_4: 4 as ActivityModeTypeEnum,\n        NUMBER_5: 5 as ActivityModeTypeEnum,\n        NUMBER_6: 6 as ActivityModeTypeEnum,\n        NUMBER_7: 7 as ActivityModeTypeEnum,\n        NUMBER_9: 9 as ActivityModeTypeEnum,\n        NUMBER_10: 10 as ActivityModeTypeEnum,\n        NUMBER_11: 11 as ActivityModeTypeEnum,\n        NUMBER_12: 12 as ActivityModeTypeEnum,\n        NUMBER_13: 13 as ActivityModeTypeEnum,\n        NUMBER_15: 15 as ActivityModeTypeEnum,\n        NUMBER_16: 16 as ActivityModeTypeEnum,\n        NUMBER_17: 17 as ActivityModeTypeEnum,\n        NUMBER_18: 18 as ActivityModeTypeEnum,\n        NUMBER_19: 19 as ActivityModeTypeEnum,\n        NUMBER_20: 20 as ActivityModeTypeEnum,\n        NUMBER_21: 21 as ActivityModeTypeEnum,\n        NUMBER_22: 22 as ActivityModeTypeEnum,\n        NUMBER_24: 24 as ActivityModeTypeEnum,\n        NUMBER_25: 25 as ActivityModeTypeEnum,\n        NUMBER_26: 26 as ActivityModeTypeEnum,\n        NUMBER_27: 27 as ActivityModeTypeEnum,\n        NUMBER_28: 28 as ActivityModeTypeEnum,\n        NUMBER_29: 29 as ActivityModeTypeEnum,\n        NUMBER_30: 30 as ActivityModeTypeEnum,\n        NUMBER_31: 31 as ActivityModeTypeEnum,\n        NUMBER_32: 32 as ActivityModeTypeEnum,\n        NUMBER_37: 37 as ActivityModeTypeEnum,\n        NUMBER_38: 38 as ActivityModeTypeEnum,\n        NUMBER_39: 39 as ActivityModeTypeEnum,\n        NUMBER_40: 40 as ActivityModeTypeEnum,\n        NUMBER_41: 41 as ActivityModeTypeEnum,\n        NUMBER_42: 42 as ActivityModeTypeEnum,\n        NUMBER_43: 43 as ActivityModeTypeEnum,\n        NUMBER_44: 44 as ActivityModeTypeEnum,\n        NUMBER_45: 45 as ActivityModeTypeEnum,\n        NUMBER_46: 46 as ActivityModeTypeEnum,\n        NUMBER_47: 47 as ActivityModeTypeEnum,\n        NUMBER_48: 48 as ActivityModeTypeEnum,\n        NUMBER_49: 49 as ActivityModeTypeEnum,\n        NUMBER_50: 50 as ActivityModeTypeEnum,\n        NUMBER_51: 51 as ActivityModeTypeEnum,\n        NUMBER_52: 52 as ActivityModeTypeEnum,\n        NUMBER_53: 53 as ActivityModeTypeEnum,\n        NUMBER_54: 54 as ActivityModeTypeEnum,\n        NUMBER_55: 55 as ActivityModeTypeEnum,\n        NUMBER_56: 56 as ActivityModeTypeEnum,\n        NUMBER_57: 57 as ActivityModeTypeEnum,\n        NUMBER_58: 58 as ActivityModeTypeEnum,\n        NUMBER_59: 59 as ActivityModeTypeEnum,\n        NUMBER_60: 60 as ActivityModeTypeEnum,\n        NUMBER_61: 61 as ActivityModeTypeEnum,\n        NUMBER_62: 62 as ActivityModeTypeEnum,\n        NUMBER_63: 63 as ActivityModeTypeEnum,\n        NUMBER_64: 64 as ActivityModeTypeEnum,\n        NUMBER_65: 65 as ActivityModeTypeEnum,\n        NUMBER_66: 66 as ActivityModeTypeEnum,\n        NUMBER_67: 67 as ActivityModeTypeEnum,\n        NUMBER_68: 68 as ActivityModeTypeEnum,\n        NUMBER_69: 69 as ActivityModeTypeEnum,\n        NUMBER_70: 70 as ActivityModeTypeEnum,\n        NUMBER_71: 71 as ActivityModeTypeEnum,\n        NUMBER_72: 72 as ActivityModeTypeEnum,\n        NUMBER_73: 73 as ActivityModeTypeEnum,\n        NUMBER_74: 74 as ActivityModeTypeEnum,\n        NUMBER_75: 75 as ActivityModeTypeEnum,\n        NUMBER_76: 76 as ActivityModeTypeEnum,\n        NUMBER_77: 77 as ActivityModeTypeEnum,\n        NUMBER_78: 78 as ActivityModeTypeEnum,\n        NUMBER_79: 79 as ActivityModeTypeEnum,\n        NUMBER_80: 80 as ActivityModeTypeEnum,\n        NUMBER_81: 81 as ActivityModeTypeEnum,\n        NUMBER_82: 82 as ActivityModeTypeEnum,\n        NUMBER_83: 83 as ActivityModeTypeEnum,\n        NUMBER_84: 84 as ActivityModeTypeEnum,\n        NUMBER_85: 85 as ActivityModeTypeEnum,\n        NUMBER_86: 86 as ActivityModeTypeEnum,\n        NUMBER_87: 87 as ActivityModeTypeEnum,\n        NUMBER_88: 88 as ActivityModeTypeEnum,\n        NUMBER_89: 89 as ActivityModeTypeEnum,\n        NUMBER_90: 90 as ActivityModeTypeEnum,\n        NUMBER_91: 91 as ActivityModeTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DestinyMilestonesDestinyPublicMilestoneActivity } from './destinyMilestonesDestinyPublicMilestoneActivity';\nimport { DestinyMilestonesDestinyPublicMilestoneActivityVariant } from './destinyMilestonesDestinyPublicMilestoneActivityVariant';\n\n\n/**\n * A milestone need not have an active activity, but if there is one it will be returned here, along with any variant and additional information.\n */\nexport interface DestinyMilestonesDestinyPublicMilestoneQuestActivity { \n    /**\n     * The hash identifier of the activity that\\'s been chosen to be considered the canonical \\\"conceptual\\\" activity definition. This may have many variants, defined herein.\n     */\n    activityHash?: number;\n    /**\n     * The activity may have 0-to-many modifiers: if it does, this will contain the hashes to the DestinyActivityModifierDefinition that defines the modifier being applied.\n     */\n    modifierHashes?: Array<number>;\n    /**\n     * Every relevant variation of this conceptual activity, including the conceptual activity itself, have variants defined here.\n     */\n    variants?: Array<DestinyMilestonesDestinyPublicMilestoneActivityVariant>;\n    /**\n     * The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it\\'s not clear what mode the PVP map is being played under. If it\\'s a playlist, this will be less specific: but hopefully useful in some way.\n     */\n    activityModeHash?: number;\n    /**\n     * The enumeration equivalent of the most specific Activity Mode under which this activity is played.\n     */\n    activityModeType?: DestinyMilestonesDestinyPublicMilestoneQuestActivity.ActivityModeTypeEnum;\n}\nexport namespace DestinyMilestonesDestinyPublicMilestoneQuestActivity {\n    export type ActivityModeTypeEnum = 0 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91;\n    export const ActivityModeTypeEnum = {\n        NUMBER_0: 0 as ActivityModeTypeEnum,\n        NUMBER_2: 2 as ActivityModeTypeEnum,\n        NUMBER_3: 3 as ActivityModeTypeEnum,\n        NUMBER_4: 4 as ActivityModeTypeEnum,\n        NUMBER_5: 5 as ActivityModeTypeEnum,\n        NUMBER_6: 6 as ActivityModeTypeEnum,\n        NUMBER_7: 7 as ActivityModeTypeEnum,\n        NUMBER_9: 9 as ActivityModeTypeEnum,\n        NUMBER_10: 10 as ActivityModeTypeEnum,\n        NUMBER_11: 11 as ActivityModeTypeEnum,\n        NUMBER_12: 12 as ActivityModeTypeEnum,\n        NUMBER_13: 13 as ActivityModeTypeEnum,\n        NUMBER_15: 15 as ActivityModeTypeEnum,\n        NUMBER_16: 16 as ActivityModeTypeEnum,\n        NUMBER_17: 17 as ActivityModeTypeEnum,\n        NUMBER_18: 18 as ActivityModeTypeEnum,\n        NUMBER_19: 19 as ActivityModeTypeEnum,\n        NUMBER_20: 20 as ActivityModeTypeEnum,\n        NUMBER_21: 21 as ActivityModeTypeEnum,\n        NUMBER_22: 22 as ActivityModeTypeEnum,\n        NUMBER_24: 24 as ActivityModeTypeEnum,\n        NUMBER_25: 25 as ActivityModeTypeEnum,\n        NUMBER_26: 26 as ActivityModeTypeEnum,\n        NUMBER_27: 27 as ActivityModeTypeEnum,\n        NUMBER_28: 28 as ActivityModeTypeEnum,\n        NUMBER_29: 29 as ActivityModeTypeEnum,\n        NUMBER_30: 30 as ActivityModeTypeEnum,\n        NUMBER_31: 31 as ActivityModeTypeEnum,\n        NUMBER_32: 32 as ActivityModeTypeEnum,\n        NUMBER_37: 37 as ActivityModeTypeEnum,\n        NUMBER_38: 38 as ActivityModeTypeEnum,\n        NUMBER_39: 39 as ActivityModeTypeEnum,\n        NUMBER_40: 40 as ActivityModeTypeEnum,\n        NUMBER_41: 41 as ActivityModeTypeEnum,\n        NUMBER_42: 42 as ActivityModeTypeEnum,\n        NUMBER_43: 43 as ActivityModeTypeEnum,\n        NUMBER_44: 44 as ActivityModeTypeEnum,\n        NUMBER_45: 45 as ActivityModeTypeEnum,\n        NUMBER_46: 46 as ActivityModeTypeEnum,\n        NUMBER_47: 47 as ActivityModeTypeEnum,\n        NUMBER_48: 48 as ActivityModeTypeEnum,\n        NUMBER_49: 49 as ActivityModeTypeEnum,\n        NUMBER_50: 50 as ActivityModeTypeEnum,\n        NUMBER_51: 51 as ActivityModeTypeEnum,\n        NUMBER_52: 52 as ActivityModeTypeEnum,\n        NUMBER_53: 53 as ActivityModeTypeEnum,\n        NUMBER_54: 54 as ActivityModeTypeEnum,\n        NUMBER_55: 55 as ActivityModeTypeEnum,\n        NUMBER_56: 56 as ActivityModeTypeEnum,\n        NUMBER_57: 57 as ActivityModeTypeEnum,\n        NUMBER_58: 58 as ActivityModeTypeEnum,\n        NUMBER_59: 59 as ActivityModeTypeEnum,\n        NUMBER_60: 60 as ActivityModeTypeEnum,\n        NUMBER_61: 61 as ActivityModeTypeEnum,\n        NUMBER_62: 62 as ActivityModeTypeEnum,\n        NUMBER_63: 63 as ActivityModeTypeEnum,\n        NUMBER_64: 64 as ActivityModeTypeEnum,\n        NUMBER_65: 65 as ActivityModeTypeEnum,\n        NUMBER_66: 66 as ActivityModeTypeEnum,\n        NUMBER_67: 67 as ActivityModeTypeEnum,\n        NUMBER_68: 68 as ActivityModeTypeEnum,\n        NUMBER_69: 69 as ActivityModeTypeEnum,\n        NUMBER_70: 70 as ActivityModeTypeEnum,\n        NUMBER_71: 71 as ActivityModeTypeEnum,\n        NUMBER_72: 72 as ActivityModeTypeEnum,\n        NUMBER_73: 73 as ActivityModeTypeEnum,\n        NUMBER_74: 74 as ActivityModeTypeEnum,\n        NUMBER_75: 75 as ActivityModeTypeEnum,\n        NUMBER_76: 76 as ActivityModeTypeEnum,\n        NUMBER_77: 77 as ActivityModeTypeEnum,\n        NUMBER_78: 78 as ActivityModeTypeEnum,\n        NUMBER_79: 79 as ActivityModeTypeEnum,\n        NUMBER_80: 80 as ActivityModeTypeEnum,\n        NUMBER_81: 81 as ActivityModeTypeEnum,\n        NUMBER_82: 82 as ActivityModeTypeEnum,\n        NUMBER_83: 83 as ActivityModeTypeEnum,\n        NUMBER_84: 84 as ActivityModeTypeEnum,\n        NUMBER_85: 85 as ActivityModeTypeEnum,\n        NUMBER_86: 86 as ActivityModeTypeEnum,\n        NUMBER_87: 87 as ActivityModeTypeEnum,\n        NUMBER_88: 88 as ActivityModeTypeEnum,\n        NUMBER_89: 89 as ActivityModeTypeEnum,\n        NUMBER_90: 90 as ActivityModeTypeEnum,\n        NUMBER_91: 91 as ActivityModeTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * This enum determines whether the plug is available to be inserted.  - Normal means that all existing rules for plug insertion apply.  - UnavailableIfSocketContainsMatchingPlugCategory means that the plug is only available if the socket does NOT match the plug category.  - AvailableIfSocketContainsMatchingPlugCategory means that the plug is only available if the socket DOES match the plug category.  For category matching, use the plug\\'s \\\"plugCategoryIdentifier\\\" property, comparing it to\n */\nexport type DestinyPlugAvailabilityMode = 0 | 1 | 2;\n\nexport const DestinyPlugAvailabilityMode = {\n    NUMBER_0: 0 as DestinyPlugAvailabilityMode,\n    NUMBER_1: 1 as DestinyPlugAvailabilityMode,\n    NUMBER_2: 2 as DestinyPlugAvailabilityMode\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * If the plug has a specific custom style, this enumeration will represent that style/those styles.\n */\nexport type DestinyPlugUiStyles = 0 | 1;\n\nexport const DestinyPlugUiStyles = {\n    NUMBER_0: 0 as DestinyPlugUiStyles,\n    NUMBER_1: 1 as DestinyPlugUiStyles\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * If you look in the DestinyInventoryItemDefinition\\'s \\\"sockets\\\" property, you\\'ll see that there are two types of sockets: intrinsic, and \\\"socketEntry.\\\"  Unfortunately, because Intrinsic sockets are a whole separate array, it is no longer sufficient to know the index into that array to know which socket we\\'re talking about. You have to know whether it\\'s in the default \\\"socketEntries\\\" or if it\\'s in the \\\"intrinsic\\\" list.\n */\nexport type DestinyRequestsActionsDestinySocketArrayType = 0 | 1;\n\nexport const DestinyRequestsActionsDestinySocketArrayType = {\n    NUMBER_0: 0 as DestinyRequestsActionsDestinySocketArrayType,\n    NUMBER_1: 1 as DestinyRequestsActionsDestinySocketArrayType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DestinyResponsesDestinyProfileUserInfoCardPlatformSilver } from './destinyResponsesDestinyProfileUserInfoCardPlatformSilver';\n\n\nexport interface DestinyResponsesDestinyProfileUserInfoCard { \n    dateLastPlayed?: string;\n    /**\n     * If this profile is being overridden/obscured by Cross Save, this will be set to true. We will still return the profile for display purposes where users need to know the info: it is up to any given area of the app/site to determine if this profile should still be shown.\n     */\n    isOverridden?: boolean;\n    /**\n     * If true, this account is hooked up as the \\\"Primary\\\" cross save account for one or more platforms.\n     */\n    isCrossSavePrimary?: boolean;\n    platformSilver?: DestinyResponsesDestinyProfileUserInfoCardPlatformSilver;\n    /**\n     * If this profile is not in a cross save pairing, this will return the game versions that we believe this profile has access to.   For the time being, we will not return this information for any membership that is in a cross save pairing. The gist is that, once the pairing occurs, we do not currently have a consistent way to get that information for the profile\\'s original Platform, and thus gameVersions would be too inconsistent (based on the last platform they happened to play on) for the info to be useful.   If we ever can get this data, this field will be deprecated and replaced with data on the DestinyLinkedProfileResponse itself, with game versions per linked Platform. But since we can\\'t get that, we have this as a stop-gap measure for getting the data in the only situation that we currently need it.\n     */\n    unpairedGameVersions?: DestinyResponsesDestinyProfileUserInfoCard.UnpairedGameVersionsEnum;\n    /**\n     * A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc.\n     */\n    supplementalDisplayName?: string;\n    /**\n     * URL the Icon if available.\n     */\n    iconPath?: string;\n    /**\n     * If there is a cross save override in effect, this value will tell you the type that is overridding this one.\n     */\n    crossSaveOverride?: number;\n    /**\n     * The list of Membership Types indicating the platforms on which this Membership can be used.   Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list\n     */\n    applicableMembershipTypes?: Array<number>;\n    /**\n     * If True, this is a public user membership.\n     */\n    isPublic?: boolean;\n    /**\n     * Type of the membership. Not necessarily the native type.\n     */\n    membershipType?: number;\n    /**\n     * Membership ID as they user is known in the Accounts service\n     */\n    membershipId?: number;\n    /**\n     * Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.\n     */\n    displayName?: string;\n    /**\n     * The bungie global display name, if set.\n     */\n    bungieGlobalDisplayName?: string;\n    /**\n     * The bungie global display name code, if set.\n     */\n    bungieGlobalDisplayNameCode?: number;\n}\nexport namespace DestinyResponsesDestinyProfileUserInfoCard {\n    export type UnpairedGameVersionsEnum = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512;\n    export const UnpairedGameVersionsEnum = {\n        NUMBER_0: 0 as UnpairedGameVersionsEnum,\n        NUMBER_1: 1 as UnpairedGameVersionsEnum,\n        NUMBER_2: 2 as UnpairedGameVersionsEnum,\n        NUMBER_4: 4 as UnpairedGameVersionsEnum,\n        NUMBER_8: 8 as UnpairedGameVersionsEnum,\n        NUMBER_16: 16 as UnpairedGameVersionsEnum,\n        NUMBER_32: 32 as UnpairedGameVersionsEnum,\n        NUMBER_64: 64 as UnpairedGameVersionsEnum,\n        NUMBER_128: 128 as UnpairedGameVersionsEnum,\n        NUMBER_256: 256 as UnpairedGameVersionsEnum,\n        NUMBER_512: 512 as UnpairedGameVersionsEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Indicates how a socket is populated, and where you should look for valid plug data.   This is a flags enumeration/bitmask field, as you may have to look in multiple sources across multiple components for valid plugs.   For instance, a socket could have plugs that are sourced from its own definition, as well as plugs that are sourced from Character-scoped AND profile-scoped Plug Sets. Only by combining plug data for every indicated source will you be able to know all of the plugs available for a socket.\n */\nexport type DestinySocketPlugSources = 0 | 1 | 2 | 4 | 8;\n\nexport const DestinySocketPlugSources = {\n    NUMBER_0: 0 as DestinySocketPlugSources,\n    NUMBER_1: 1 as DestinySocketPlugSources,\n    NUMBER_2: 2 as DestinySocketPlugSources,\n    NUMBER_4: 4 as DestinySocketPlugSources,\n    NUMBER_8: 8 as DestinySocketPlugSources\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Indicates the type of actions that can be performed\n */\nexport type DestinySocketTypeActionType = 0 | 1 | 2;\n\nexport const DestinySocketTypeActionType = {\n    NUMBER_0: 0 as DestinySocketTypeActionType,\n    NUMBER_1: 1 as DestinySocketTypeActionType,\n    NUMBER_2: 2 as DestinySocketTypeActionType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * As you run into items that need to be classified for Milestone purposes in ways that we cannot infer via direct data, add a new classification here and use a string constant to represent it in the local item config file.  NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist.\n */\nexport type DestinySpecialItemType = 0 | 1 | 8 | 9 | 23 | 24 | 25 | 27 | 29;\n\nexport const DestinySpecialItemType = {\n    NUMBER_0: 0 as DestinySpecialItemType,\n    NUMBER_1: 1 as DestinySpecialItemType,\n    NUMBER_8: 8 as DestinySpecialItemType,\n    NUMBER_9: 9 as DestinySpecialItemType,\n    NUMBER_23: 23 as DestinySpecialItemType,\n    NUMBER_24: 24 as DestinySpecialItemType,\n    NUMBER_25: 25 as DestinySpecialItemType,\n    NUMBER_27: 27 as DestinySpecialItemType,\n    NUMBER_29: 29 as DestinySpecialItemType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyTierType = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport const DestinyTierType = {\n    NUMBER_0: 0 as DestinyTierType,\n    NUMBER_1: 1 as DestinyTierType,\n    NUMBER_2: 2 as DestinyTierType,\n    NUMBER_3: 3 as DestinyTierType,\n    NUMBER_4: 4 as DestinyTierType,\n    NUMBER_5: 5 as DestinyTierType,\n    NUMBER_6: 6 as DestinyTierType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Whether you can transfer an item, and why not if you can\\'t.\n */\nexport type DestinyTransferStatuses = 0 | 1 | 2 | 4;\n\nexport const DestinyTransferStatuses = {\n    NUMBER_0: 0 as DestinyTransferStatuses,\n    NUMBER_1: 1 as DestinyTransferStatuses,\n    NUMBER_2: 2 as DestinyTransferStatuses,\n    NUMBER_4: 4 as DestinyTransferStatuses\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Display categories can have custom sort orders. These are the possible options.\n */\nexport type DestinyVendorDisplayCategorySortOrder = 0 | 1;\n\nexport const DestinyVendorDisplayCategorySortOrder = {\n    NUMBER_0: 0 as DestinyVendorDisplayCategorySortOrder,\n    NUMBER_1: 1 as DestinyVendorDisplayCategorySortOrder\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * An enumeration of the known UI interactions for Vendors.\n */\nexport type DestinyVendorInteractionType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\nexport const DestinyVendorInteractionType = {\n    NUMBER_0: 0 as DestinyVendorInteractionType,\n    NUMBER_1: 1 as DestinyVendorInteractionType,\n    NUMBER_2: 2 as DestinyVendorInteractionType,\n    NUMBER_3: 3 as DestinyVendorInteractionType,\n    NUMBER_4: 4 as DestinyVendorInteractionType,\n    NUMBER_5: 5 as DestinyVendorInteractionType,\n    NUMBER_6: 6 as DestinyVendorInteractionType,\n    NUMBER_7: 7 as DestinyVendorInteractionType,\n    NUMBER_8: 8 as DestinyVendorInteractionType,\n    NUMBER_9: 9 as DestinyVendorInteractionType,\n    NUMBER_10: 10 as DestinyVendorInteractionType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DestinyVendorItemStatus = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192;\n\nexport const DestinyVendorItemStatus = {\n    NUMBER_0: 0 as DestinyVendorItemStatus,\n    NUMBER_1: 1 as DestinyVendorItemStatus,\n    NUMBER_2: 2 as DestinyVendorItemStatus,\n    NUMBER_4: 4 as DestinyVendorItemStatus,\n    NUMBER_8: 8 as DestinyVendorItemStatus,\n    NUMBER_16: 16 as DestinyVendorItemStatus,\n    NUMBER_32: 32 as DestinyVendorItemStatus,\n    NUMBER_64: 64 as DestinyVendorItemStatus,\n    NUMBER_128: 128 as DestinyVendorItemStatus,\n    NUMBER_256: 256 as DestinyVendorItemStatus,\n    NUMBER_512: 512 as DestinyVendorItemStatus,\n    NUMBER_1024: 1024 as DestinyVendorItemStatus,\n    NUMBER_2048: 2048 as DestinyVendorItemStatus,\n    NUMBER_4096: 4096 as DestinyVendorItemStatus,\n    NUMBER_8192: 8192 as DestinyVendorItemStatus\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ExceptionsPlatformErrorCodes = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 400 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 641 | 642 | 643 | 644 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 750 | 751 | 752 | 753 | 754 | 755 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1100 | 1204 | 1205 | 1218 | 1223 | 1224 | 1225 | 1226 | 1227 | 1229 | 1230 | 1231 | 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | 1240 | 1241 | 1242 | 1300 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1311 | 1312 | 1313 | 1314 | 1315 | 1316 | 1317 | 1318 | 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | 1500 | 1501 | 1502 | 1600 | 1601 | 1602 | 1603 | 1604 | 1605 | 1606 | 1607 | 1608 | 1609 | 1610 | 1611 | 1612 | 1613 | 1614 | 1615 | 1616 | 1617 | 1618 | 1619 | 1620 | 1621 | 1622 | 1623 | 1624 | 1625 | 1626 | 1627 | 1628 | 1629 | 1630 | 1631 | 1632 | 1633 | 1634 | 1635 | 1636 | 1637 | 1638 | 1639 | 1640 | 1641 | 1642 | 1643 | 1644 | 1645 | 1646 | 1647 | 1648 | 1649 | 1650 | 1651 | 1652 | 1653 | 1654 | 1655 | 1656 | 1657 | 1658 | 1659 | 1660 | 1661 | 1662 | 1663 | 1664 | 1665 | 1666 | 1667 | 1668 | 1669 | 1670 | 1671 | 1672 | 1673 | 1674 | 1675 | 1676 | 1677 | 1678 | 1679 | 1680 | 1681 | 1682 | 1683 | 1684 | 1685 | 1686 | 1687 | 1688 | 1800 | 1801 | 1802 | 1803 | 1804 | 1805 | 1806 | 1900 | 1901 | 1902 | 1903 | 1904 | 1905 | 1906 | 1907 | 1908 | 1910 | 1911 | 1912 | 1913 | 1914 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | 2027 | 2028 | 2029 | 2030 | 2031 | 2032 | 2033 | 2034 | 2035 | 2036 | 2037 | 2038 | 2039 | 2040 | 2041 | 2042 | 2043 | 2044 | 2045 | 2046 | 2047 | 2048 | 2049 | 2050 | 2051 | 2052 | 2053 | 2054 | 2055 | 2056 | 2057 | 2058 | 2059 | 2060 | 2061 | 2062 | 2063 | 2064 | 2065 | 2100 | 2101 | 2102 | 2103 | 2104 | 2105 | 2106 | 2107 | 2108 | 2109 | 2110 | 2111 | 2112 | 2113 | 2114 | 2115 | 2116 | 2117 | 2118 | 2119 | 2120 | 2121 | 2122 | 2123 | 2124 | 2125 | 2126 | 2200 | 2201 | 2202 | 2203 | 2204 | 2205 | 2206 | 2207 | 2300 | 2500 | 2501 | 2502 | 2503 | 2504 | 2505 | 2506 | 2507 | 2508 | 2509 | 2510 | 2600 | 2601 | 2700 | 2701 | 2702 | 2703 | 2800 | 2801 | 2802 | 2803 | 2804 | 2805 | 2806 | 2900 | 2901 | 2902 | 2903 | 3000 | 3001 | 3002 | 3003 | 3004 | 3005 | 3006 | 3007 | 3008 | 3009 | 3010 | 3011 | 3012 | 3013 | 3014 | 3015 | 3016 | 3017 | 3018 | 3019 | 3020 | 3021 | 3022 | 3023 | 3024 | 3025 | 3026 | 3027 | 3028 | 3029 | 3030 | 3031 | 3032 | 3033 | 3034 | 3035 | 3036 | 3037 | 3038 | 3200 | 3201 | 3202 | 3203 | 3204 | 3206 | 3207 | 3208 | 3209 | 3210 | 3211 | 3212 | 3213 | 3214 | 3215 | 3216 | 3217 | 3218 | 3219 | 3220 | 3221 | 3222 | 3300 | 3400 | 3401 | 3402 | 3403 | 3404 | 3405 | 3406 | 3407 | 3408 | 3409 | 3410 | 3411 | 3412 | 3413 | 3414 | 3500 | 3600 | 3702 | 3703 | 3705 | 3706 | 3707 | 3708 | 3709 | 3710 | 3800 | 3801 | 3802 | 3803 | 3804 | 3805 | 3806 | 3807 | 3900 | 3901 | 3902 | 3903 | 3904 | 3905 | 3906 | 3907 | 3908 | 3910 | 3911 | 4000 | 4001 | 4002 | 4003 | 4004 | 4005 | 4006 | 4007 | 4008 | 4009;\n\nexport const ExceptionsPlatformErrorCodes = {\n    NUMBER_0: 0 as ExceptionsPlatformErrorCodes,\n    NUMBER_1: 1 as ExceptionsPlatformErrorCodes,\n    NUMBER_2: 2 as ExceptionsPlatformErrorCodes,\n    NUMBER_3: 3 as ExceptionsPlatformErrorCodes,\n    NUMBER_4: 4 as ExceptionsPlatformErrorCodes,\n    NUMBER_5: 5 as ExceptionsPlatformErrorCodes,\n    NUMBER_6: 6 as ExceptionsPlatformErrorCodes,\n    NUMBER_7: 7 as ExceptionsPlatformErrorCodes,\n    NUMBER_8: 8 as ExceptionsPlatformErrorCodes,\n    NUMBER_9: 9 as ExceptionsPlatformErrorCodes,\n    NUMBER_10: 10 as ExceptionsPlatformErrorCodes,\n    NUMBER_11: 11 as ExceptionsPlatformErrorCodes,\n    NUMBER_12: 12 as ExceptionsPlatformErrorCodes,\n    NUMBER_13: 13 as ExceptionsPlatformErrorCodes,\n    NUMBER_14: 14 as ExceptionsPlatformErrorCodes,\n    NUMBER_15: 15 as ExceptionsPlatformErrorCodes,\n    NUMBER_16: 16 as ExceptionsPlatformErrorCodes,\n    NUMBER_17: 17 as ExceptionsPlatformErrorCodes,\n    NUMBER_18: 18 as ExceptionsPlatformErrorCodes,\n    NUMBER_19: 19 as ExceptionsPlatformErrorCodes,\n    NUMBER_20: 20 as ExceptionsPlatformErrorCodes,\n    NUMBER_21: 21 as ExceptionsPlatformErrorCodes,\n    NUMBER_22: 22 as ExceptionsPlatformErrorCodes,\n    NUMBER_23: 23 as ExceptionsPlatformErrorCodes,\n    NUMBER_24: 24 as ExceptionsPlatformErrorCodes,\n    NUMBER_25: 25 as ExceptionsPlatformErrorCodes,\n    NUMBER_26: 26 as ExceptionsPlatformErrorCodes,\n    NUMBER_27: 27 as ExceptionsPlatformErrorCodes,\n    NUMBER_28: 28 as ExceptionsPlatformErrorCodes,\n    NUMBER_29: 29 as ExceptionsPlatformErrorCodes,\n    NUMBER_30: 30 as ExceptionsPlatformErrorCodes,\n    NUMBER_31: 31 as ExceptionsPlatformErrorCodes,\n    NUMBER_32: 32 as ExceptionsPlatformErrorCodes,\n    NUMBER_33: 33 as ExceptionsPlatformErrorCodes,\n    NUMBER_34: 34 as ExceptionsPlatformErrorCodes,\n    NUMBER_35: 35 as ExceptionsPlatformErrorCodes,\n    NUMBER_36: 36 as ExceptionsPlatformErrorCodes,\n    NUMBER_37: 37 as ExceptionsPlatformErrorCodes,\n    NUMBER_38: 38 as ExceptionsPlatformErrorCodes,\n    NUMBER_39: 39 as ExceptionsPlatformErrorCodes,\n    NUMBER_40: 40 as ExceptionsPlatformErrorCodes,\n    NUMBER_41: 41 as ExceptionsPlatformErrorCodes,\n    NUMBER_42: 42 as ExceptionsPlatformErrorCodes,\n    NUMBER_43: 43 as ExceptionsPlatformErrorCodes,\n    NUMBER_44: 44 as ExceptionsPlatformErrorCodes,\n    NUMBER_45: 45 as ExceptionsPlatformErrorCodes,\n    NUMBER_46: 46 as ExceptionsPlatformErrorCodes,\n    NUMBER_47: 47 as ExceptionsPlatformErrorCodes,\n    NUMBER_48: 48 as ExceptionsPlatformErrorCodes,\n    NUMBER_49: 49 as ExceptionsPlatformErrorCodes,\n    NUMBER_50: 50 as ExceptionsPlatformErrorCodes,\n    NUMBER_51: 51 as ExceptionsPlatformErrorCodes,\n    NUMBER_52: 52 as ExceptionsPlatformErrorCodes,\n    NUMBER_53: 53 as ExceptionsPlatformErrorCodes,\n    NUMBER_54: 54 as ExceptionsPlatformErrorCodes,\n    NUMBER_55: 55 as ExceptionsPlatformErrorCodes,\n    NUMBER_56: 56 as ExceptionsPlatformErrorCodes,\n    NUMBER_57: 57 as ExceptionsPlatformErrorCodes,\n    NUMBER_58: 58 as ExceptionsPlatformErrorCodes,\n    NUMBER_59: 59 as ExceptionsPlatformErrorCodes,\n    NUMBER_89: 89 as ExceptionsPlatformErrorCodes,\n    NUMBER_90: 90 as ExceptionsPlatformErrorCodes,\n    NUMBER_91: 91 as ExceptionsPlatformErrorCodes,\n    NUMBER_92: 92 as ExceptionsPlatformErrorCodes,\n    NUMBER_93: 93 as ExceptionsPlatformErrorCodes,\n    NUMBER_94: 94 as ExceptionsPlatformErrorCodes,\n    NUMBER_95: 95 as ExceptionsPlatformErrorCodes,\n    NUMBER_96: 96 as ExceptionsPlatformErrorCodes,\n    NUMBER_97: 97 as ExceptionsPlatformErrorCodes,\n    NUMBER_98: 98 as ExceptionsPlatformErrorCodes,\n    NUMBER_99: 99 as ExceptionsPlatformErrorCodes,\n    NUMBER_100: 100 as ExceptionsPlatformErrorCodes,\n    NUMBER_101: 101 as ExceptionsPlatformErrorCodes,\n    NUMBER_102: 102 as ExceptionsPlatformErrorCodes,\n    NUMBER_103: 103 as ExceptionsPlatformErrorCodes,\n    NUMBER_104: 104 as ExceptionsPlatformErrorCodes,\n    NUMBER_105: 105 as ExceptionsPlatformErrorCodes,\n    NUMBER_106: 106 as ExceptionsPlatformErrorCodes,\n    NUMBER_107: 107 as ExceptionsPlatformErrorCodes,\n    NUMBER_108: 108 as ExceptionsPlatformErrorCodes,\n    NUMBER_109: 109 as ExceptionsPlatformErrorCodes,\n    NUMBER_110: 110 as ExceptionsPlatformErrorCodes,\n    NUMBER_111: 111 as ExceptionsPlatformErrorCodes,\n    NUMBER_112: 112 as ExceptionsPlatformErrorCodes,\n    NUMBER_113: 113 as ExceptionsPlatformErrorCodes,\n    NUMBER_115: 115 as ExceptionsPlatformErrorCodes,\n    NUMBER_116: 116 as ExceptionsPlatformErrorCodes,\n    NUMBER_117: 117 as ExceptionsPlatformErrorCodes,\n    NUMBER_118: 118 as ExceptionsPlatformErrorCodes,\n    NUMBER_119: 119 as ExceptionsPlatformErrorCodes,\n    NUMBER_120: 120 as ExceptionsPlatformErrorCodes,\n    NUMBER_121: 121 as ExceptionsPlatformErrorCodes,\n    NUMBER_122: 122 as ExceptionsPlatformErrorCodes,\n    NUMBER_123: 123 as ExceptionsPlatformErrorCodes,\n    NUMBER_124: 124 as ExceptionsPlatformErrorCodes,\n    NUMBER_125: 125 as ExceptionsPlatformErrorCodes,\n    NUMBER_126: 126 as ExceptionsPlatformErrorCodes,\n    NUMBER_127: 127 as ExceptionsPlatformErrorCodes,\n    NUMBER_128: 128 as ExceptionsPlatformErrorCodes,\n    NUMBER_129: 129 as ExceptionsPlatformErrorCodes,\n    NUMBER_130: 130 as ExceptionsPlatformErrorCodes,\n    NUMBER_131: 131 as ExceptionsPlatformErrorCodes,\n    NUMBER_132: 132 as ExceptionsPlatformErrorCodes,\n    NUMBER_133: 133 as ExceptionsPlatformErrorCodes,\n    NUMBER_134: 134 as ExceptionsPlatformErrorCodes,\n    NUMBER_135: 135 as ExceptionsPlatformErrorCodes,\n    NUMBER_136: 136 as ExceptionsPlatformErrorCodes,\n    NUMBER_137: 137 as ExceptionsPlatformErrorCodes,\n    NUMBER_138: 138 as ExceptionsPlatformErrorCodes,\n    NUMBER_139: 139 as ExceptionsPlatformErrorCodes,\n    NUMBER_140: 140 as ExceptionsPlatformErrorCodes,\n    NUMBER_141: 141 as ExceptionsPlatformErrorCodes,\n    NUMBER_142: 142 as ExceptionsPlatformErrorCodes,\n    NUMBER_143: 143 as ExceptionsPlatformErrorCodes,\n    NUMBER_144: 144 as ExceptionsPlatformErrorCodes,\n    NUMBER_145: 145 as ExceptionsPlatformErrorCodes,\n    NUMBER_146: 146 as ExceptionsPlatformErrorCodes,\n    NUMBER_147: 147 as ExceptionsPlatformErrorCodes,\n    NUMBER_148: 148 as ExceptionsPlatformErrorCodes,\n    NUMBER_149: 149 as ExceptionsPlatformErrorCodes,\n    NUMBER_150: 150 as ExceptionsPlatformErrorCodes,\n    NUMBER_151: 151 as ExceptionsPlatformErrorCodes,\n    NUMBER_152: 152 as ExceptionsPlatformErrorCodes,\n    NUMBER_153: 153 as ExceptionsPlatformErrorCodes,\n    NUMBER_154: 154 as ExceptionsPlatformErrorCodes,\n    NUMBER_155: 155 as ExceptionsPlatformErrorCodes,\n    NUMBER_156: 156 as ExceptionsPlatformErrorCodes,\n    NUMBER_157: 157 as ExceptionsPlatformErrorCodes,\n    NUMBER_158: 158 as ExceptionsPlatformErrorCodes,\n    NUMBER_159: 159 as ExceptionsPlatformErrorCodes,\n    NUMBER_160: 160 as ExceptionsPlatformErrorCodes,\n    NUMBER_161: 161 as ExceptionsPlatformErrorCodes,\n    NUMBER_162: 162 as ExceptionsPlatformErrorCodes,\n    NUMBER_163: 163 as ExceptionsPlatformErrorCodes,\n    NUMBER_164: 164 as ExceptionsPlatformErrorCodes,\n    NUMBER_165: 165 as ExceptionsPlatformErrorCodes,\n    NUMBER_166: 166 as ExceptionsPlatformErrorCodes,\n    NUMBER_167: 167 as ExceptionsPlatformErrorCodes,\n    NUMBER_168: 168 as ExceptionsPlatformErrorCodes,\n    NUMBER_169: 169 as ExceptionsPlatformErrorCodes,\n    NUMBER_170: 170 as ExceptionsPlatformErrorCodes,\n    NUMBER_171: 171 as ExceptionsPlatformErrorCodes,\n    NUMBER_172: 172 as ExceptionsPlatformErrorCodes,\n    NUMBER_173: 173 as ExceptionsPlatformErrorCodes,\n    NUMBER_174: 174 as ExceptionsPlatformErrorCodes,\n    NUMBER_175: 175 as ExceptionsPlatformErrorCodes,\n    NUMBER_176: 176 as ExceptionsPlatformErrorCodes,\n    NUMBER_177: 177 as ExceptionsPlatformErrorCodes,\n    NUMBER_178: 178 as ExceptionsPlatformErrorCodes,\n    NUMBER_179: 179 as ExceptionsPlatformErrorCodes,\n    NUMBER_180: 180 as ExceptionsPlatformErrorCodes,\n    NUMBER_181: 181 as ExceptionsPlatformErrorCodes,\n    NUMBER_200: 200 as ExceptionsPlatformErrorCodes,\n    NUMBER_201: 201 as ExceptionsPlatformErrorCodes,\n    NUMBER_202: 202 as ExceptionsPlatformErrorCodes,\n    NUMBER_203: 203 as ExceptionsPlatformErrorCodes,\n    NUMBER_204: 204 as ExceptionsPlatformErrorCodes,\n    NUMBER_205: 205 as ExceptionsPlatformErrorCodes,\n    NUMBER_206: 206 as ExceptionsPlatformErrorCodes,\n    NUMBER_207: 207 as ExceptionsPlatformErrorCodes,\n    NUMBER_208: 208 as ExceptionsPlatformErrorCodes,\n    NUMBER_209: 209 as ExceptionsPlatformErrorCodes,\n    NUMBER_210: 210 as ExceptionsPlatformErrorCodes,\n    NUMBER_211: 211 as ExceptionsPlatformErrorCodes,\n    NUMBER_212: 212 as ExceptionsPlatformErrorCodes,\n    NUMBER_213: 213 as ExceptionsPlatformErrorCodes,\n    NUMBER_214: 214 as ExceptionsPlatformErrorCodes,\n    NUMBER_215: 215 as ExceptionsPlatformErrorCodes,\n    NUMBER_216: 216 as ExceptionsPlatformErrorCodes,\n    NUMBER_217: 217 as ExceptionsPlatformErrorCodes,\n    NUMBER_218: 218 as ExceptionsPlatformErrorCodes,\n    NUMBER_219: 219 as ExceptionsPlatformErrorCodes,\n    NUMBER_220: 220 as ExceptionsPlatformErrorCodes,\n    NUMBER_221: 221 as ExceptionsPlatformErrorCodes,\n    NUMBER_222: 222 as ExceptionsPlatformErrorCodes,\n    NUMBER_223: 223 as ExceptionsPlatformErrorCodes,\n    NUMBER_224: 224 as ExceptionsPlatformErrorCodes,\n    NUMBER_225: 225 as ExceptionsPlatformErrorCodes,\n    NUMBER_226: 226 as ExceptionsPlatformErrorCodes,\n    NUMBER_227: 227 as ExceptionsPlatformErrorCodes,\n    NUMBER_228: 228 as ExceptionsPlatformErrorCodes,\n    NUMBER_229: 229 as ExceptionsPlatformErrorCodes,\n    NUMBER_230: 230 as ExceptionsPlatformErrorCodes,\n    NUMBER_231: 231 as ExceptionsPlatformErrorCodes,\n    NUMBER_232: 232 as ExceptionsPlatformErrorCodes,\n    NUMBER_233: 233 as ExceptionsPlatformErrorCodes,\n    NUMBER_234: 234 as ExceptionsPlatformErrorCodes,\n    NUMBER_235: 235 as ExceptionsPlatformErrorCodes,\n    NUMBER_236: 236 as ExceptionsPlatformErrorCodes,\n    NUMBER_237: 237 as ExceptionsPlatformErrorCodes,\n    NUMBER_238: 238 as ExceptionsPlatformErrorCodes,\n    NUMBER_239: 239 as ExceptionsPlatformErrorCodes,\n    NUMBER_240: 240 as ExceptionsPlatformErrorCodes,\n    NUMBER_241: 241 as ExceptionsPlatformErrorCodes,\n    NUMBER_242: 242 as ExceptionsPlatformErrorCodes,\n    NUMBER_243: 243 as ExceptionsPlatformErrorCodes,\n    NUMBER_244: 244 as ExceptionsPlatformErrorCodes,\n    NUMBER_300: 300 as ExceptionsPlatformErrorCodes,\n    NUMBER_301: 301 as ExceptionsPlatformErrorCodes,\n    NUMBER_302: 302 as ExceptionsPlatformErrorCodes,\n    NUMBER_303: 303 as ExceptionsPlatformErrorCodes,\n    NUMBER_304: 304 as ExceptionsPlatformErrorCodes,\n    NUMBER_305: 305 as ExceptionsPlatformErrorCodes,\n    NUMBER_306: 306 as ExceptionsPlatformErrorCodes,\n    NUMBER_307: 307 as ExceptionsPlatformErrorCodes,\n    NUMBER_308: 308 as ExceptionsPlatformErrorCodes,\n    NUMBER_309: 309 as ExceptionsPlatformErrorCodes,\n    NUMBER_310: 310 as ExceptionsPlatformErrorCodes,\n    NUMBER_311: 311 as ExceptionsPlatformErrorCodes,\n    NUMBER_312: 312 as ExceptionsPlatformErrorCodes,\n    NUMBER_313: 313 as ExceptionsPlatformErrorCodes,\n    NUMBER_400: 400 as ExceptionsPlatformErrorCodes,\n    NUMBER_500: 500 as ExceptionsPlatformErrorCodes,\n    NUMBER_501: 501 as ExceptionsPlatformErrorCodes,\n    NUMBER_502: 502 as ExceptionsPlatformErrorCodes,\n    NUMBER_503: 503 as ExceptionsPlatformErrorCodes,\n    NUMBER_504: 504 as ExceptionsPlatformErrorCodes,\n    NUMBER_505: 505 as ExceptionsPlatformErrorCodes,\n    NUMBER_506: 506 as ExceptionsPlatformErrorCodes,\n    NUMBER_507: 507 as ExceptionsPlatformErrorCodes,\n    NUMBER_508: 508 as ExceptionsPlatformErrorCodes,\n    NUMBER_509: 509 as ExceptionsPlatformErrorCodes,\n    NUMBER_510: 510 as ExceptionsPlatformErrorCodes,\n    NUMBER_511: 511 as ExceptionsPlatformErrorCodes,\n    NUMBER_512: 512 as ExceptionsPlatformErrorCodes,\n    NUMBER_513: 513 as ExceptionsPlatformErrorCodes,\n    NUMBER_514: 514 as ExceptionsPlatformErrorCodes,\n    NUMBER_515: 515 as ExceptionsPlatformErrorCodes,\n    NUMBER_516: 516 as ExceptionsPlatformErrorCodes,\n    NUMBER_517: 517 as ExceptionsPlatformErrorCodes,\n    NUMBER_518: 518 as ExceptionsPlatformErrorCodes,\n    NUMBER_519: 519 as ExceptionsPlatformErrorCodes,\n    NUMBER_520: 520 as ExceptionsPlatformErrorCodes,\n    NUMBER_521: 521 as ExceptionsPlatformErrorCodes,\n    NUMBER_522: 522 as ExceptionsPlatformErrorCodes,\n    NUMBER_523: 523 as ExceptionsPlatformErrorCodes,\n    NUMBER_524: 524 as ExceptionsPlatformErrorCodes,\n    NUMBER_525: 525 as ExceptionsPlatformErrorCodes,\n    NUMBER_526: 526 as ExceptionsPlatformErrorCodes,\n    NUMBER_527: 527 as ExceptionsPlatformErrorCodes,\n    NUMBER_528: 528 as ExceptionsPlatformErrorCodes,\n    NUMBER_529: 529 as ExceptionsPlatformErrorCodes,\n    NUMBER_530: 530 as ExceptionsPlatformErrorCodes,\n    NUMBER_531: 531 as ExceptionsPlatformErrorCodes,\n    NUMBER_532: 532 as ExceptionsPlatformErrorCodes,\n    NUMBER_533: 533 as ExceptionsPlatformErrorCodes,\n    NUMBER_534: 534 as ExceptionsPlatformErrorCodes,\n    NUMBER_535: 535 as ExceptionsPlatformErrorCodes,\n    NUMBER_536: 536 as ExceptionsPlatformErrorCodes,\n    NUMBER_537: 537 as ExceptionsPlatformErrorCodes,\n    NUMBER_538: 538 as ExceptionsPlatformErrorCodes,\n    NUMBER_539: 539 as ExceptionsPlatformErrorCodes,\n    NUMBER_540: 540 as ExceptionsPlatformErrorCodes,\n    NUMBER_541: 541 as ExceptionsPlatformErrorCodes,\n    NUMBER_542: 542 as ExceptionsPlatformErrorCodes,\n    NUMBER_543: 543 as ExceptionsPlatformErrorCodes,\n    NUMBER_544: 544 as ExceptionsPlatformErrorCodes,\n    NUMBER_555: 555 as ExceptionsPlatformErrorCodes,\n    NUMBER_556: 556 as ExceptionsPlatformErrorCodes,\n    NUMBER_557: 557 as ExceptionsPlatformErrorCodes,\n    NUMBER_558: 558 as ExceptionsPlatformErrorCodes,\n    NUMBER_559: 559 as ExceptionsPlatformErrorCodes,\n    NUMBER_560: 560 as ExceptionsPlatformErrorCodes,\n    NUMBER_561: 561 as ExceptionsPlatformErrorCodes,\n    NUMBER_562: 562 as ExceptionsPlatformErrorCodes,\n    NUMBER_563: 563 as ExceptionsPlatformErrorCodes,\n    NUMBER_564: 564 as ExceptionsPlatformErrorCodes,\n    NUMBER_565: 565 as ExceptionsPlatformErrorCodes,\n    NUMBER_566: 566 as ExceptionsPlatformErrorCodes,\n    NUMBER_567: 567 as ExceptionsPlatformErrorCodes,\n    NUMBER_568: 568 as ExceptionsPlatformErrorCodes,\n    NUMBER_569: 569 as ExceptionsPlatformErrorCodes,\n    NUMBER_570: 570 as ExceptionsPlatformErrorCodes,\n    NUMBER_571: 571 as ExceptionsPlatformErrorCodes,\n    NUMBER_572: 572 as ExceptionsPlatformErrorCodes,\n    NUMBER_573: 573 as ExceptionsPlatformErrorCodes,\n    NUMBER_574: 574 as ExceptionsPlatformErrorCodes,\n    NUMBER_575: 575 as ExceptionsPlatformErrorCodes,\n    NUMBER_576: 576 as ExceptionsPlatformErrorCodes,\n    NUMBER_577: 577 as ExceptionsPlatformErrorCodes,\n    NUMBER_578: 578 as ExceptionsPlatformErrorCodes,\n    NUMBER_579: 579 as ExceptionsPlatformErrorCodes,\n    NUMBER_580: 580 as ExceptionsPlatformErrorCodes,\n    NUMBER_581: 581 as ExceptionsPlatformErrorCodes,\n    NUMBER_582: 582 as ExceptionsPlatformErrorCodes,\n    NUMBER_583: 583 as ExceptionsPlatformErrorCodes,\n    NUMBER_584: 584 as ExceptionsPlatformErrorCodes,\n    NUMBER_585: 585 as ExceptionsPlatformErrorCodes,\n    NUMBER_586: 586 as ExceptionsPlatformErrorCodes,\n    NUMBER_587: 587 as ExceptionsPlatformErrorCodes,\n    NUMBER_588: 588 as ExceptionsPlatformErrorCodes,\n    NUMBER_589: 589 as ExceptionsPlatformErrorCodes,\n    NUMBER_590: 590 as ExceptionsPlatformErrorCodes,\n    NUMBER_591: 591 as ExceptionsPlatformErrorCodes,\n    NUMBER_592: 592 as ExceptionsPlatformErrorCodes,\n    NUMBER_593: 593 as ExceptionsPlatformErrorCodes,\n    NUMBER_594: 594 as ExceptionsPlatformErrorCodes,\n    NUMBER_595: 595 as ExceptionsPlatformErrorCodes,\n    NUMBER_596: 596 as ExceptionsPlatformErrorCodes,\n    NUMBER_601: 601 as ExceptionsPlatformErrorCodes,\n    NUMBER_602: 602 as ExceptionsPlatformErrorCodes,\n    NUMBER_603: 603 as ExceptionsPlatformErrorCodes,\n    NUMBER_604: 604 as ExceptionsPlatformErrorCodes,\n    NUMBER_605: 605 as ExceptionsPlatformErrorCodes,\n    NUMBER_606: 606 as ExceptionsPlatformErrorCodes,\n    NUMBER_607: 607 as ExceptionsPlatformErrorCodes,\n    NUMBER_608: 608 as ExceptionsPlatformErrorCodes,\n    NUMBER_609: 609 as ExceptionsPlatformErrorCodes,\n    NUMBER_610: 610 as ExceptionsPlatformErrorCodes,\n    NUMBER_611: 611 as ExceptionsPlatformErrorCodes,\n    NUMBER_612: 612 as ExceptionsPlatformErrorCodes,\n    NUMBER_613: 613 as ExceptionsPlatformErrorCodes,\n    NUMBER_614: 614 as ExceptionsPlatformErrorCodes,\n    NUMBER_615: 615 as ExceptionsPlatformErrorCodes,\n    NUMBER_616: 616 as ExceptionsPlatformErrorCodes,\n    NUMBER_617: 617 as ExceptionsPlatformErrorCodes,\n    NUMBER_618: 618 as ExceptionsPlatformErrorCodes,\n    NUMBER_619: 619 as ExceptionsPlatformErrorCodes,\n    NUMBER_620: 620 as ExceptionsPlatformErrorCodes,\n    NUMBER_621: 621 as ExceptionsPlatformErrorCodes,\n    NUMBER_622: 622 as ExceptionsPlatformErrorCodes,\n    NUMBER_623: 623 as ExceptionsPlatformErrorCodes,\n    NUMBER_624: 624 as ExceptionsPlatformErrorCodes,\n    NUMBER_625: 625 as ExceptionsPlatformErrorCodes,\n    NUMBER_626: 626 as ExceptionsPlatformErrorCodes,\n    NUMBER_627: 627 as ExceptionsPlatformErrorCodes,\n    NUMBER_628: 628 as ExceptionsPlatformErrorCodes,\n    NUMBER_629: 629 as ExceptionsPlatformErrorCodes,\n    NUMBER_630: 630 as ExceptionsPlatformErrorCodes,\n    NUMBER_631: 631 as ExceptionsPlatformErrorCodes,\n    NUMBER_632: 632 as ExceptionsPlatformErrorCodes,\n    NUMBER_633: 633 as ExceptionsPlatformErrorCodes,\n    NUMBER_634: 634 as ExceptionsPlatformErrorCodes,\n    NUMBER_635: 635 as ExceptionsPlatformErrorCodes,\n    NUMBER_636: 636 as ExceptionsPlatformErrorCodes,\n    NUMBER_637: 637 as ExceptionsPlatformErrorCodes,\n    NUMBER_638: 638 as ExceptionsPlatformErrorCodes,\n    NUMBER_639: 639 as ExceptionsPlatformErrorCodes,\n    NUMBER_641: 641 as ExceptionsPlatformErrorCodes,\n    NUMBER_642: 642 as ExceptionsPlatformErrorCodes,\n    NUMBER_643: 643 as ExceptionsPlatformErrorCodes,\n    NUMBER_644: 644 as ExceptionsPlatformErrorCodes,\n    NUMBER_646: 646 as ExceptionsPlatformErrorCodes,\n    NUMBER_647: 647 as ExceptionsPlatformErrorCodes,\n    NUMBER_648: 648 as ExceptionsPlatformErrorCodes,\n    NUMBER_649: 649 as ExceptionsPlatformErrorCodes,\n    NUMBER_650: 650 as ExceptionsPlatformErrorCodes,\n    NUMBER_651: 651 as ExceptionsPlatformErrorCodes,\n    NUMBER_652: 652 as ExceptionsPlatformErrorCodes,\n    NUMBER_653: 653 as ExceptionsPlatformErrorCodes,\n    NUMBER_654: 654 as ExceptionsPlatformErrorCodes,\n    NUMBER_655: 655 as ExceptionsPlatformErrorCodes,\n    NUMBER_656: 656 as ExceptionsPlatformErrorCodes,\n    NUMBER_657: 657 as ExceptionsPlatformErrorCodes,\n    NUMBER_658: 658 as ExceptionsPlatformErrorCodes,\n    NUMBER_659: 659 as ExceptionsPlatformErrorCodes,\n    NUMBER_660: 660 as ExceptionsPlatformErrorCodes,\n    NUMBER_661: 661 as ExceptionsPlatformErrorCodes,\n    NUMBER_662: 662 as ExceptionsPlatformErrorCodes,\n    NUMBER_663: 663 as ExceptionsPlatformErrorCodes,\n    NUMBER_664: 664 as ExceptionsPlatformErrorCodes,\n    NUMBER_665: 665 as ExceptionsPlatformErrorCodes,\n    NUMBER_666: 666 as ExceptionsPlatformErrorCodes,\n    NUMBER_667: 667 as ExceptionsPlatformErrorCodes,\n    NUMBER_668: 668 as ExceptionsPlatformErrorCodes,\n    NUMBER_669: 669 as ExceptionsPlatformErrorCodes,\n    NUMBER_670: 670 as ExceptionsPlatformErrorCodes,\n    NUMBER_671: 671 as ExceptionsPlatformErrorCodes,\n    NUMBER_672: 672 as ExceptionsPlatformErrorCodes,\n    NUMBER_673: 673 as ExceptionsPlatformErrorCodes,\n    NUMBER_674: 674 as ExceptionsPlatformErrorCodes,\n    NUMBER_675: 675 as ExceptionsPlatformErrorCodes,\n    NUMBER_676: 676 as ExceptionsPlatformErrorCodes,\n    NUMBER_677: 677 as ExceptionsPlatformErrorCodes,\n    NUMBER_678: 678 as ExceptionsPlatformErrorCodes,\n    NUMBER_679: 679 as ExceptionsPlatformErrorCodes,\n    NUMBER_680: 680 as ExceptionsPlatformErrorCodes,\n    NUMBER_681: 681 as ExceptionsPlatformErrorCodes,\n    NUMBER_682: 682 as ExceptionsPlatformErrorCodes,\n    NUMBER_683: 683 as ExceptionsPlatformErrorCodes,\n    NUMBER_684: 684 as ExceptionsPlatformErrorCodes,\n    NUMBER_685: 685 as ExceptionsPlatformErrorCodes,\n    NUMBER_686: 686 as ExceptionsPlatformErrorCodes,\n    NUMBER_687: 687 as ExceptionsPlatformErrorCodes,\n    NUMBER_688: 688 as ExceptionsPlatformErrorCodes,\n    NUMBER_689: 689 as ExceptionsPlatformErrorCodes,\n    NUMBER_690: 690 as ExceptionsPlatformErrorCodes,\n    NUMBER_691: 691 as ExceptionsPlatformErrorCodes,\n    NUMBER_692: 692 as ExceptionsPlatformErrorCodes,\n    NUMBER_693: 693 as ExceptionsPlatformErrorCodes,\n    NUMBER_694: 694 as ExceptionsPlatformErrorCodes,\n    NUMBER_695: 695 as ExceptionsPlatformErrorCodes,\n    NUMBER_696: 696 as ExceptionsPlatformErrorCodes,\n    NUMBER_697: 697 as ExceptionsPlatformErrorCodes,\n    NUMBER_698: 698 as ExceptionsPlatformErrorCodes,\n    NUMBER_699: 699 as ExceptionsPlatformErrorCodes,\n    NUMBER_701: 701 as ExceptionsPlatformErrorCodes,\n    NUMBER_702: 702 as ExceptionsPlatformErrorCodes,\n    NUMBER_703: 703 as ExceptionsPlatformErrorCodes,\n    NUMBER_704: 704 as ExceptionsPlatformErrorCodes,\n    NUMBER_705: 705 as ExceptionsPlatformErrorCodes,\n    NUMBER_706: 706 as ExceptionsPlatformErrorCodes,\n    NUMBER_707: 707 as ExceptionsPlatformErrorCodes,\n    NUMBER_750: 750 as ExceptionsPlatformErrorCodes,\n    NUMBER_751: 751 as ExceptionsPlatformErrorCodes,\n    NUMBER_752: 752 as ExceptionsPlatformErrorCodes,\n    NUMBER_753: 753 as ExceptionsPlatformErrorCodes,\n    NUMBER_754: 754 as ExceptionsPlatformErrorCodes,\n    NUMBER_755: 755 as ExceptionsPlatformErrorCodes,\n    NUMBER_801: 801 as ExceptionsPlatformErrorCodes,\n    NUMBER_802: 802 as ExceptionsPlatformErrorCodes,\n    NUMBER_803: 803 as ExceptionsPlatformErrorCodes,\n    NUMBER_804: 804 as ExceptionsPlatformErrorCodes,\n    NUMBER_805: 805 as ExceptionsPlatformErrorCodes,\n    NUMBER_806: 806 as ExceptionsPlatformErrorCodes,\n    NUMBER_807: 807 as ExceptionsPlatformErrorCodes,\n    NUMBER_900: 900 as ExceptionsPlatformErrorCodes,\n    NUMBER_901: 901 as ExceptionsPlatformErrorCodes,\n    NUMBER_902: 902 as ExceptionsPlatformErrorCodes,\n    NUMBER_903: 903 as ExceptionsPlatformErrorCodes,\n    NUMBER_904: 904 as ExceptionsPlatformErrorCodes,\n    NUMBER_905: 905 as ExceptionsPlatformErrorCodes,\n    NUMBER_906: 906 as ExceptionsPlatformErrorCodes,\n    NUMBER_907: 907 as ExceptionsPlatformErrorCodes,\n    NUMBER_908: 908 as ExceptionsPlatformErrorCodes,\n    NUMBER_909: 909 as ExceptionsPlatformErrorCodes,\n    NUMBER_1000: 1000 as ExceptionsPlatformErrorCodes,\n    NUMBER_1001: 1001 as ExceptionsPlatformErrorCodes,\n    NUMBER_1002: 1002 as ExceptionsPlatformErrorCodes,\n    NUMBER_1003: 1003 as ExceptionsPlatformErrorCodes,\n    NUMBER_1004: 1004 as ExceptionsPlatformErrorCodes,\n    NUMBER_1005: 1005 as ExceptionsPlatformErrorCodes,\n    NUMBER_1006: 1006 as ExceptionsPlatformErrorCodes,\n    NUMBER_1007: 1007 as ExceptionsPlatformErrorCodes,\n    NUMBER_1008: 1008 as ExceptionsPlatformErrorCodes,\n    NUMBER_1009: 1009 as ExceptionsPlatformErrorCodes,\n    NUMBER_1010: 1010 as ExceptionsPlatformErrorCodes,\n    NUMBER_1100: 1100 as ExceptionsPlatformErrorCodes,\n    NUMBER_1204: 1204 as ExceptionsPlatformErrorCodes,\n    NUMBER_1205: 1205 as ExceptionsPlatformErrorCodes,\n    NUMBER_1218: 1218 as ExceptionsPlatformErrorCodes,\n    NUMBER_1223: 1223 as ExceptionsPlatformErrorCodes,\n    NUMBER_1224: 1224 as ExceptionsPlatformErrorCodes,\n    NUMBER_1225: 1225 as ExceptionsPlatformErrorCodes,\n    NUMBER_1226: 1226 as ExceptionsPlatformErrorCodes,\n    NUMBER_1227: 1227 as ExceptionsPlatformErrorCodes,\n    NUMBER_1229: 1229 as ExceptionsPlatformErrorCodes,\n    NUMBER_1230: 1230 as ExceptionsPlatformErrorCodes,\n    NUMBER_1231: 1231 as ExceptionsPlatformErrorCodes,\n    NUMBER_1232: 1232 as ExceptionsPlatformErrorCodes,\n    NUMBER_1233: 1233 as ExceptionsPlatformErrorCodes,\n    NUMBER_1234: 1234 as ExceptionsPlatformErrorCodes,\n    NUMBER_1235: 1235 as ExceptionsPlatformErrorCodes,\n    NUMBER_1236: 1236 as ExceptionsPlatformErrorCodes,\n    NUMBER_1237: 1237 as ExceptionsPlatformErrorCodes,\n    NUMBER_1238: 1238 as ExceptionsPlatformErrorCodes,\n    NUMBER_1239: 1239 as ExceptionsPlatformErrorCodes,\n    NUMBER_1240: 1240 as ExceptionsPlatformErrorCodes,\n    NUMBER_1241: 1241 as ExceptionsPlatformErrorCodes,\n    NUMBER_1242: 1242 as ExceptionsPlatformErrorCodes,\n    NUMBER_1300: 1300 as ExceptionsPlatformErrorCodes,\n    NUMBER_1301: 1301 as ExceptionsPlatformErrorCodes,\n    NUMBER_1302: 1302 as ExceptionsPlatformErrorCodes,\n    NUMBER_1303: 1303 as ExceptionsPlatformErrorCodes,\n    NUMBER_1304: 1304 as ExceptionsPlatformErrorCodes,\n    NUMBER_1305: 1305 as ExceptionsPlatformErrorCodes,\n    NUMBER_1306: 1306 as ExceptionsPlatformErrorCodes,\n    NUMBER_1307: 1307 as ExceptionsPlatformErrorCodes,\n    NUMBER_1308: 1308 as ExceptionsPlatformErrorCodes,\n    NUMBER_1309: 1309 as ExceptionsPlatformErrorCodes,\n    NUMBER_1310: 1310 as ExceptionsPlatformErrorCodes,\n    NUMBER_1311: 1311 as ExceptionsPlatformErrorCodes,\n    NUMBER_1312: 1312 as ExceptionsPlatformErrorCodes,\n    NUMBER_1313: 1313 as ExceptionsPlatformErrorCodes,\n    NUMBER_1314: 1314 as ExceptionsPlatformErrorCodes,\n    NUMBER_1315: 1315 as ExceptionsPlatformErrorCodes,\n    NUMBER_1316: 1316 as ExceptionsPlatformErrorCodes,\n    NUMBER_1317: 1317 as ExceptionsPlatformErrorCodes,\n    NUMBER_1318: 1318 as ExceptionsPlatformErrorCodes,\n    NUMBER_1400: 1400 as ExceptionsPlatformErrorCodes,\n    NUMBER_1401: 1401 as ExceptionsPlatformErrorCodes,\n    NUMBER_1402: 1402 as ExceptionsPlatformErrorCodes,\n    NUMBER_1403: 1403 as ExceptionsPlatformErrorCodes,\n    NUMBER_1404: 1404 as ExceptionsPlatformErrorCodes,\n    NUMBER_1405: 1405 as ExceptionsPlatformErrorCodes,\n    NUMBER_1500: 1500 as ExceptionsPlatformErrorCodes,\n    NUMBER_1501: 1501 as ExceptionsPlatformErrorCodes,\n    NUMBER_1502: 1502 as ExceptionsPlatformErrorCodes,\n    NUMBER_1600: 1600 as ExceptionsPlatformErrorCodes,\n    NUMBER_1601: 1601 as ExceptionsPlatformErrorCodes,\n    NUMBER_1602: 1602 as ExceptionsPlatformErrorCodes,\n    NUMBER_1603: 1603 as ExceptionsPlatformErrorCodes,\n    NUMBER_1604: 1604 as ExceptionsPlatformErrorCodes,\n    NUMBER_1605: 1605 as ExceptionsPlatformErrorCodes,\n    NUMBER_1606: 1606 as ExceptionsPlatformErrorCodes,\n    NUMBER_1607: 1607 as ExceptionsPlatformErrorCodes,\n    NUMBER_1608: 1608 as ExceptionsPlatformErrorCodes,\n    NUMBER_1609: 1609 as ExceptionsPlatformErrorCodes,\n    NUMBER_1610: 1610 as ExceptionsPlatformErrorCodes,\n    NUMBER_1611: 1611 as ExceptionsPlatformErrorCodes,\n    NUMBER_1612: 1612 as ExceptionsPlatformErrorCodes,\n    NUMBER_1613: 1613 as ExceptionsPlatformErrorCodes,\n    NUMBER_1614: 1614 as ExceptionsPlatformErrorCodes,\n    NUMBER_1615: 1615 as ExceptionsPlatformErrorCodes,\n    NUMBER_1616: 1616 as ExceptionsPlatformErrorCodes,\n    NUMBER_1617: 1617 as ExceptionsPlatformErrorCodes,\n    NUMBER_1618: 1618 as ExceptionsPlatformErrorCodes,\n    NUMBER_1619: 1619 as ExceptionsPlatformErrorCodes,\n    NUMBER_1620: 1620 as ExceptionsPlatformErrorCodes,\n    NUMBER_1621: 1621 as ExceptionsPlatformErrorCodes,\n    NUMBER_1622: 1622 as ExceptionsPlatformErrorCodes,\n    NUMBER_1623: 1623 as ExceptionsPlatformErrorCodes,\n    NUMBER_1624: 1624 as ExceptionsPlatformErrorCodes,\n    NUMBER_1625: 1625 as ExceptionsPlatformErrorCodes,\n    NUMBER_1626: 1626 as ExceptionsPlatformErrorCodes,\n    NUMBER_1627: 1627 as ExceptionsPlatformErrorCodes,\n    NUMBER_1628: 1628 as ExceptionsPlatformErrorCodes,\n    NUMBER_1629: 1629 as ExceptionsPlatformErrorCodes,\n    NUMBER_1630: 1630 as ExceptionsPlatformErrorCodes,\n    NUMBER_1631: 1631 as ExceptionsPlatformErrorCodes,\n    NUMBER_1632: 1632 as ExceptionsPlatformErrorCodes,\n    NUMBER_1633: 1633 as ExceptionsPlatformErrorCodes,\n    NUMBER_1634: 1634 as ExceptionsPlatformErrorCodes,\n    NUMBER_1635: 1635 as ExceptionsPlatformErrorCodes,\n    NUMBER_1636: 1636 as ExceptionsPlatformErrorCodes,\n    NUMBER_1637: 1637 as ExceptionsPlatformErrorCodes,\n    NUMBER_1638: 1638 as ExceptionsPlatformErrorCodes,\n    NUMBER_1639: 1639 as ExceptionsPlatformErrorCodes,\n    NUMBER_1640: 1640 as ExceptionsPlatformErrorCodes,\n    NUMBER_1641: 1641 as ExceptionsPlatformErrorCodes,\n    NUMBER_1642: 1642 as ExceptionsPlatformErrorCodes,\n    NUMBER_1643: 1643 as ExceptionsPlatformErrorCodes,\n    NUMBER_1644: 1644 as ExceptionsPlatformErrorCodes,\n    NUMBER_1645: 1645 as ExceptionsPlatformErrorCodes,\n    NUMBER_1646: 1646 as ExceptionsPlatformErrorCodes,\n    NUMBER_1647: 1647 as ExceptionsPlatformErrorCodes,\n    NUMBER_1648: 1648 as ExceptionsPlatformErrorCodes,\n    NUMBER_1649: 1649 as ExceptionsPlatformErrorCodes,\n    NUMBER_1650: 1650 as ExceptionsPlatformErrorCodes,\n    NUMBER_1651: 1651 as ExceptionsPlatformErrorCodes,\n    NUMBER_1652: 1652 as ExceptionsPlatformErrorCodes,\n    NUMBER_1653: 1653 as ExceptionsPlatformErrorCodes,\n    NUMBER_1654: 1654 as ExceptionsPlatformErrorCodes,\n    NUMBER_1655: 1655 as ExceptionsPlatformErrorCodes,\n    NUMBER_1656: 1656 as ExceptionsPlatformErrorCodes,\n    NUMBER_1657: 1657 as ExceptionsPlatformErrorCodes,\n    NUMBER_1658: 1658 as ExceptionsPlatformErrorCodes,\n    NUMBER_1659: 1659 as ExceptionsPlatformErrorCodes,\n    NUMBER_1660: 1660 as ExceptionsPlatformErrorCodes,\n    NUMBER_1661: 1661 as ExceptionsPlatformErrorCodes,\n    NUMBER_1662: 1662 as ExceptionsPlatformErrorCodes,\n    NUMBER_1663: 1663 as ExceptionsPlatformErrorCodes,\n    NUMBER_1664: 1664 as ExceptionsPlatformErrorCodes,\n    NUMBER_1665: 1665 as ExceptionsPlatformErrorCodes,\n    NUMBER_1666: 1666 as ExceptionsPlatformErrorCodes,\n    NUMBER_1667: 1667 as ExceptionsPlatformErrorCodes,\n    NUMBER_1668: 1668 as ExceptionsPlatformErrorCodes,\n    NUMBER_1669: 1669 as ExceptionsPlatformErrorCodes,\n    NUMBER_1670: 1670 as ExceptionsPlatformErrorCodes,\n    NUMBER_1671: 1671 as ExceptionsPlatformErrorCodes,\n    NUMBER_1672: 1672 as ExceptionsPlatformErrorCodes,\n    NUMBER_1673: 1673 as ExceptionsPlatformErrorCodes,\n    NUMBER_1674: 1674 as ExceptionsPlatformErrorCodes,\n    NUMBER_1675: 1675 as ExceptionsPlatformErrorCodes,\n    NUMBER_1676: 1676 as ExceptionsPlatformErrorCodes,\n    NUMBER_1677: 1677 as ExceptionsPlatformErrorCodes,\n    NUMBER_1678: 1678 as ExceptionsPlatformErrorCodes,\n    NUMBER_1679: 1679 as ExceptionsPlatformErrorCodes,\n    NUMBER_1680: 1680 as ExceptionsPlatformErrorCodes,\n    NUMBER_1681: 1681 as ExceptionsPlatformErrorCodes,\n    NUMBER_1682: 1682 as ExceptionsPlatformErrorCodes,\n    NUMBER_1683: 1683 as ExceptionsPlatformErrorCodes,\n    NUMBER_1684: 1684 as ExceptionsPlatformErrorCodes,\n    NUMBER_1685: 1685 as ExceptionsPlatformErrorCodes,\n    NUMBER_1686: 1686 as ExceptionsPlatformErrorCodes,\n    NUMBER_1687: 1687 as ExceptionsPlatformErrorCodes,\n    NUMBER_1688: 1688 as ExceptionsPlatformErrorCodes,\n    NUMBER_1800: 1800 as ExceptionsPlatformErrorCodes,\n    NUMBER_1801: 1801 as ExceptionsPlatformErrorCodes,\n    NUMBER_1802: 1802 as ExceptionsPlatformErrorCodes,\n    NUMBER_1803: 1803 as ExceptionsPlatformErrorCodes,\n    NUMBER_1804: 1804 as ExceptionsPlatformErrorCodes,\n    NUMBER_1805: 1805 as ExceptionsPlatformErrorCodes,\n    NUMBER_1806: 1806 as ExceptionsPlatformErrorCodes,\n    NUMBER_1900: 1900 as ExceptionsPlatformErrorCodes,\n    NUMBER_1901: 1901 as ExceptionsPlatformErrorCodes,\n    NUMBER_1902: 1902 as ExceptionsPlatformErrorCodes,\n    NUMBER_1903: 1903 as ExceptionsPlatformErrorCodes,\n    NUMBER_1904: 1904 as ExceptionsPlatformErrorCodes,\n    NUMBER_1905: 1905 as ExceptionsPlatformErrorCodes,\n    NUMBER_1906: 1906 as ExceptionsPlatformErrorCodes,\n    NUMBER_1907: 1907 as ExceptionsPlatformErrorCodes,\n    NUMBER_1908: 1908 as ExceptionsPlatformErrorCodes,\n    NUMBER_1910: 1910 as ExceptionsPlatformErrorCodes,\n    NUMBER_1911: 1911 as ExceptionsPlatformErrorCodes,\n    NUMBER_1912: 1912 as ExceptionsPlatformErrorCodes,\n    NUMBER_1913: 1913 as ExceptionsPlatformErrorCodes,\n    NUMBER_1914: 1914 as ExceptionsPlatformErrorCodes,\n    NUMBER_2000: 2000 as ExceptionsPlatformErrorCodes,\n    NUMBER_2001: 2001 as ExceptionsPlatformErrorCodes,\n    NUMBER_2002: 2002 as ExceptionsPlatformErrorCodes,\n    NUMBER_2003: 2003 as ExceptionsPlatformErrorCodes,\n    NUMBER_2004: 2004 as ExceptionsPlatformErrorCodes,\n    NUMBER_2005: 2005 as ExceptionsPlatformErrorCodes,\n    NUMBER_2006: 2006 as ExceptionsPlatformErrorCodes,\n    NUMBER_2007: 2007 as ExceptionsPlatformErrorCodes,\n    NUMBER_2008: 2008 as ExceptionsPlatformErrorCodes,\n    NUMBER_2009: 2009 as ExceptionsPlatformErrorCodes,\n    NUMBER_2010: 2010 as ExceptionsPlatformErrorCodes,\n    NUMBER_2011: 2011 as ExceptionsPlatformErrorCodes,\n    NUMBER_2012: 2012 as ExceptionsPlatformErrorCodes,\n    NUMBER_2013: 2013 as ExceptionsPlatformErrorCodes,\n    NUMBER_2014: 2014 as ExceptionsPlatformErrorCodes,\n    NUMBER_2015: 2015 as ExceptionsPlatformErrorCodes,\n    NUMBER_2016: 2016 as ExceptionsPlatformErrorCodes,\n    NUMBER_2017: 2017 as ExceptionsPlatformErrorCodes,\n    NUMBER_2018: 2018 as ExceptionsPlatformErrorCodes,\n    NUMBER_2019: 2019 as ExceptionsPlatformErrorCodes,\n    NUMBER_2020: 2020 as ExceptionsPlatformErrorCodes,\n    NUMBER_2021: 2021 as ExceptionsPlatformErrorCodes,\n    NUMBER_2022: 2022 as ExceptionsPlatformErrorCodes,\n    NUMBER_2023: 2023 as ExceptionsPlatformErrorCodes,\n    NUMBER_2024: 2024 as ExceptionsPlatformErrorCodes,\n    NUMBER_2025: 2025 as ExceptionsPlatformErrorCodes,\n    NUMBER_2026: 2026 as ExceptionsPlatformErrorCodes,\n    NUMBER_2027: 2027 as ExceptionsPlatformErrorCodes,\n    NUMBER_2028: 2028 as ExceptionsPlatformErrorCodes,\n    NUMBER_2029: 2029 as ExceptionsPlatformErrorCodes,\n    NUMBER_2030: 2030 as ExceptionsPlatformErrorCodes,\n    NUMBER_2031: 2031 as ExceptionsPlatformErrorCodes,\n    NUMBER_2032: 2032 as ExceptionsPlatformErrorCodes,\n    NUMBER_2033: 2033 as ExceptionsPlatformErrorCodes,\n    NUMBER_2034: 2034 as ExceptionsPlatformErrorCodes,\n    NUMBER_2035: 2035 as ExceptionsPlatformErrorCodes,\n    NUMBER_2036: 2036 as ExceptionsPlatformErrorCodes,\n    NUMBER_2037: 2037 as ExceptionsPlatformErrorCodes,\n    NUMBER_2038: 2038 as ExceptionsPlatformErrorCodes,\n    NUMBER_2039: 2039 as ExceptionsPlatformErrorCodes,\n    NUMBER_2040: 2040 as ExceptionsPlatformErrorCodes,\n    NUMBER_2041: 2041 as ExceptionsPlatformErrorCodes,\n    NUMBER_2042: 2042 as ExceptionsPlatformErrorCodes,\n    NUMBER_2043: 2043 as ExceptionsPlatformErrorCodes,\n    NUMBER_2044: 2044 as ExceptionsPlatformErrorCodes,\n    NUMBER_2045: 2045 as ExceptionsPlatformErrorCodes,\n    NUMBER_2046: 2046 as ExceptionsPlatformErrorCodes,\n    NUMBER_2047: 2047 as ExceptionsPlatformErrorCodes,\n    NUMBER_2048: 2048 as ExceptionsPlatformErrorCodes,\n    NUMBER_2049: 2049 as ExceptionsPlatformErrorCodes,\n    NUMBER_2050: 2050 as ExceptionsPlatformErrorCodes,\n    NUMBER_2051: 2051 as ExceptionsPlatformErrorCodes,\n    NUMBER_2052: 2052 as ExceptionsPlatformErrorCodes,\n    NUMBER_2053: 2053 as ExceptionsPlatformErrorCodes,\n    NUMBER_2054: 2054 as ExceptionsPlatformErrorCodes,\n    NUMBER_2055: 2055 as ExceptionsPlatformErrorCodes,\n    NUMBER_2056: 2056 as ExceptionsPlatformErrorCodes,\n    NUMBER_2057: 2057 as ExceptionsPlatformErrorCodes,\n    NUMBER_2058: 2058 as ExceptionsPlatformErrorCodes,\n    NUMBER_2059: 2059 as ExceptionsPlatformErrorCodes,\n    NUMBER_2060: 2060 as ExceptionsPlatformErrorCodes,\n    NUMBER_2061: 2061 as ExceptionsPlatformErrorCodes,\n    NUMBER_2062: 2062 as ExceptionsPlatformErrorCodes,\n    NUMBER_2063: 2063 as ExceptionsPlatformErrorCodes,\n    NUMBER_2064: 2064 as ExceptionsPlatformErrorCodes,\n    NUMBER_2065: 2065 as ExceptionsPlatformErrorCodes,\n    NUMBER_2100: 2100 as ExceptionsPlatformErrorCodes,\n    NUMBER_2101: 2101 as ExceptionsPlatformErrorCodes,\n    NUMBER_2102: 2102 as ExceptionsPlatformErrorCodes,\n    NUMBER_2103: 2103 as ExceptionsPlatformErrorCodes,\n    NUMBER_2104: 2104 as ExceptionsPlatformErrorCodes,\n    NUMBER_2105: 2105 as ExceptionsPlatformErrorCodes,\n    NUMBER_2106: 2106 as ExceptionsPlatformErrorCodes,\n    NUMBER_2107: 2107 as ExceptionsPlatformErrorCodes,\n    NUMBER_2108: 2108 as ExceptionsPlatformErrorCodes,\n    NUMBER_2109: 2109 as ExceptionsPlatformErrorCodes,\n    NUMBER_2110: 2110 as ExceptionsPlatformErrorCodes,\n    NUMBER_2111: 2111 as ExceptionsPlatformErrorCodes,\n    NUMBER_2112: 2112 as ExceptionsPlatformErrorCodes,\n    NUMBER_2113: 2113 as ExceptionsPlatformErrorCodes,\n    NUMBER_2114: 2114 as ExceptionsPlatformErrorCodes,\n    NUMBER_2115: 2115 as ExceptionsPlatformErrorCodes,\n    NUMBER_2116: 2116 as ExceptionsPlatformErrorCodes,\n    NUMBER_2117: 2117 as ExceptionsPlatformErrorCodes,\n    NUMBER_2118: 2118 as ExceptionsPlatformErrorCodes,\n    NUMBER_2119: 2119 as ExceptionsPlatformErrorCodes,\n    NUMBER_2120: 2120 as ExceptionsPlatformErrorCodes,\n    NUMBER_2121: 2121 as ExceptionsPlatformErrorCodes,\n    NUMBER_2122: 2122 as ExceptionsPlatformErrorCodes,\n    NUMBER_2123: 2123 as ExceptionsPlatformErrorCodes,\n    NUMBER_2124: 2124 as ExceptionsPlatformErrorCodes,\n    NUMBER_2125: 2125 as ExceptionsPlatformErrorCodes,\n    NUMBER_2126: 2126 as ExceptionsPlatformErrorCodes,\n    NUMBER_2200: 2200 as ExceptionsPlatformErrorCodes,\n    NUMBER_2201: 2201 as ExceptionsPlatformErrorCodes,\n    NUMBER_2202: 2202 as ExceptionsPlatformErrorCodes,\n    NUMBER_2203: 2203 as ExceptionsPlatformErrorCodes,\n    NUMBER_2204: 2204 as ExceptionsPlatformErrorCodes,\n    NUMBER_2205: 2205 as ExceptionsPlatformErrorCodes,\n    NUMBER_2206: 2206 as ExceptionsPlatformErrorCodes,\n    NUMBER_2207: 2207 as ExceptionsPlatformErrorCodes,\n    NUMBER_2300: 2300 as ExceptionsPlatformErrorCodes,\n    NUMBER_2500: 2500 as ExceptionsPlatformErrorCodes,\n    NUMBER_2501: 2501 as ExceptionsPlatformErrorCodes,\n    NUMBER_2502: 2502 as ExceptionsPlatformErrorCodes,\n    NUMBER_2503: 2503 as ExceptionsPlatformErrorCodes,\n    NUMBER_2504: 2504 as ExceptionsPlatformErrorCodes,\n    NUMBER_2505: 2505 as ExceptionsPlatformErrorCodes,\n    NUMBER_2506: 2506 as ExceptionsPlatformErrorCodes,\n    NUMBER_2507: 2507 as ExceptionsPlatformErrorCodes,\n    NUMBER_2508: 2508 as ExceptionsPlatformErrorCodes,\n    NUMBER_2509: 2509 as ExceptionsPlatformErrorCodes,\n    NUMBER_2510: 2510 as ExceptionsPlatformErrorCodes,\n    NUMBER_2600: 2600 as ExceptionsPlatformErrorCodes,\n    NUMBER_2601: 2601 as ExceptionsPlatformErrorCodes,\n    NUMBER_2700: 2700 as ExceptionsPlatformErrorCodes,\n    NUMBER_2701: 2701 as ExceptionsPlatformErrorCodes,\n    NUMBER_2702: 2702 as ExceptionsPlatformErrorCodes,\n    NUMBER_2703: 2703 as ExceptionsPlatformErrorCodes,\n    NUMBER_2800: 2800 as ExceptionsPlatformErrorCodes,\n    NUMBER_2801: 2801 as ExceptionsPlatformErrorCodes,\n    NUMBER_2802: 2802 as ExceptionsPlatformErrorCodes,\n    NUMBER_2803: 2803 as ExceptionsPlatformErrorCodes,\n    NUMBER_2804: 2804 as ExceptionsPlatformErrorCodes,\n    NUMBER_2805: 2805 as ExceptionsPlatformErrorCodes,\n    NUMBER_2806: 2806 as ExceptionsPlatformErrorCodes,\n    NUMBER_2900: 2900 as ExceptionsPlatformErrorCodes,\n    NUMBER_2901: 2901 as ExceptionsPlatformErrorCodes,\n    NUMBER_2902: 2902 as ExceptionsPlatformErrorCodes,\n    NUMBER_2903: 2903 as ExceptionsPlatformErrorCodes,\n    NUMBER_3000: 3000 as ExceptionsPlatformErrorCodes,\n    NUMBER_3001: 3001 as ExceptionsPlatformErrorCodes,\n    NUMBER_3002: 3002 as ExceptionsPlatformErrorCodes,\n    NUMBER_3003: 3003 as ExceptionsPlatformErrorCodes,\n    NUMBER_3004: 3004 as ExceptionsPlatformErrorCodes,\n    NUMBER_3005: 3005 as ExceptionsPlatformErrorCodes,\n    NUMBER_3006: 3006 as ExceptionsPlatformErrorCodes,\n    NUMBER_3007: 3007 as ExceptionsPlatformErrorCodes,\n    NUMBER_3008: 3008 as ExceptionsPlatformErrorCodes,\n    NUMBER_3009: 3009 as ExceptionsPlatformErrorCodes,\n    NUMBER_3010: 3010 as ExceptionsPlatformErrorCodes,\n    NUMBER_3011: 3011 as ExceptionsPlatformErrorCodes,\n    NUMBER_3012: 3012 as ExceptionsPlatformErrorCodes,\n    NUMBER_3013: 3013 as ExceptionsPlatformErrorCodes,\n    NUMBER_3014: 3014 as ExceptionsPlatformErrorCodes,\n    NUMBER_3015: 3015 as ExceptionsPlatformErrorCodes,\n    NUMBER_3016: 3016 as ExceptionsPlatformErrorCodes,\n    NUMBER_3017: 3017 as ExceptionsPlatformErrorCodes,\n    NUMBER_3018: 3018 as ExceptionsPlatformErrorCodes,\n    NUMBER_3019: 3019 as ExceptionsPlatformErrorCodes,\n    NUMBER_3020: 3020 as ExceptionsPlatformErrorCodes,\n    NUMBER_3021: 3021 as ExceptionsPlatformErrorCodes,\n    NUMBER_3022: 3022 as ExceptionsPlatformErrorCodes,\n    NUMBER_3023: 3023 as ExceptionsPlatformErrorCodes,\n    NUMBER_3024: 3024 as ExceptionsPlatformErrorCodes,\n    NUMBER_3025: 3025 as ExceptionsPlatformErrorCodes,\n    NUMBER_3026: 3026 as ExceptionsPlatformErrorCodes,\n    NUMBER_3027: 3027 as ExceptionsPlatformErrorCodes,\n    NUMBER_3028: 3028 as ExceptionsPlatformErrorCodes,\n    NUMBER_3029: 3029 as ExceptionsPlatformErrorCodes,\n    NUMBER_3030: 3030 as ExceptionsPlatformErrorCodes,\n    NUMBER_3031: 3031 as ExceptionsPlatformErrorCodes,\n    NUMBER_3032: 3032 as ExceptionsPlatformErrorCodes,\n    NUMBER_3033: 3033 as ExceptionsPlatformErrorCodes,\n    NUMBER_3034: 3034 as ExceptionsPlatformErrorCodes,\n    NUMBER_3035: 3035 as ExceptionsPlatformErrorCodes,\n    NUMBER_3036: 3036 as ExceptionsPlatformErrorCodes,\n    NUMBER_3037: 3037 as ExceptionsPlatformErrorCodes,\n    NUMBER_3038: 3038 as ExceptionsPlatformErrorCodes,\n    NUMBER_3200: 3200 as ExceptionsPlatformErrorCodes,\n    NUMBER_3201: 3201 as ExceptionsPlatformErrorCodes,\n    NUMBER_3202: 3202 as ExceptionsPlatformErrorCodes,\n    NUMBER_3203: 3203 as ExceptionsPlatformErrorCodes,\n    NUMBER_3204: 3204 as ExceptionsPlatformErrorCodes,\n    NUMBER_3206: 3206 as ExceptionsPlatformErrorCodes,\n    NUMBER_3207: 3207 as ExceptionsPlatformErrorCodes,\n    NUMBER_3208: 3208 as ExceptionsPlatformErrorCodes,\n    NUMBER_3209: 3209 as ExceptionsPlatformErrorCodes,\n    NUMBER_3210: 3210 as ExceptionsPlatformErrorCodes,\n    NUMBER_3211: 3211 as ExceptionsPlatformErrorCodes,\n    NUMBER_3212: 3212 as ExceptionsPlatformErrorCodes,\n    NUMBER_3213: 3213 as ExceptionsPlatformErrorCodes,\n    NUMBER_3214: 3214 as ExceptionsPlatformErrorCodes,\n    NUMBER_3215: 3215 as ExceptionsPlatformErrorCodes,\n    NUMBER_3216: 3216 as ExceptionsPlatformErrorCodes,\n    NUMBER_3217: 3217 as ExceptionsPlatformErrorCodes,\n    NUMBER_3218: 3218 as ExceptionsPlatformErrorCodes,\n    NUMBER_3219: 3219 as ExceptionsPlatformErrorCodes,\n    NUMBER_3220: 3220 as ExceptionsPlatformErrorCodes,\n    NUMBER_3221: 3221 as ExceptionsPlatformErrorCodes,\n    NUMBER_3222: 3222 as ExceptionsPlatformErrorCodes,\n    NUMBER_3300: 3300 as ExceptionsPlatformErrorCodes,\n    NUMBER_3400: 3400 as ExceptionsPlatformErrorCodes,\n    NUMBER_3401: 3401 as ExceptionsPlatformErrorCodes,\n    NUMBER_3402: 3402 as ExceptionsPlatformErrorCodes,\n    NUMBER_3403: 3403 as ExceptionsPlatformErrorCodes,\n    NUMBER_3404: 3404 as ExceptionsPlatformErrorCodes,\n    NUMBER_3405: 3405 as ExceptionsPlatformErrorCodes,\n    NUMBER_3406: 3406 as ExceptionsPlatformErrorCodes,\n    NUMBER_3407: 3407 as ExceptionsPlatformErrorCodes,\n    NUMBER_3408: 3408 as ExceptionsPlatformErrorCodes,\n    NUMBER_3409: 3409 as ExceptionsPlatformErrorCodes,\n    NUMBER_3410: 3410 as ExceptionsPlatformErrorCodes,\n    NUMBER_3411: 3411 as ExceptionsPlatformErrorCodes,\n    NUMBER_3412: 3412 as ExceptionsPlatformErrorCodes,\n    NUMBER_3413: 3413 as ExceptionsPlatformErrorCodes,\n    NUMBER_3414: 3414 as ExceptionsPlatformErrorCodes,\n    NUMBER_3500: 3500 as ExceptionsPlatformErrorCodes,\n    NUMBER_3600: 3600 as ExceptionsPlatformErrorCodes,\n    NUMBER_3702: 3702 as ExceptionsPlatformErrorCodes,\n    NUMBER_3703: 3703 as ExceptionsPlatformErrorCodes,\n    NUMBER_3705: 3705 as ExceptionsPlatformErrorCodes,\n    NUMBER_3706: 3706 as ExceptionsPlatformErrorCodes,\n    NUMBER_3707: 3707 as ExceptionsPlatformErrorCodes,\n    NUMBER_3708: 3708 as ExceptionsPlatformErrorCodes,\n    NUMBER_3709: 3709 as ExceptionsPlatformErrorCodes,\n    NUMBER_3710: 3710 as ExceptionsPlatformErrorCodes,\n    NUMBER_3800: 3800 as ExceptionsPlatformErrorCodes,\n    NUMBER_3801: 3801 as ExceptionsPlatformErrorCodes,\n    NUMBER_3802: 3802 as ExceptionsPlatformErrorCodes,\n    NUMBER_3803: 3803 as ExceptionsPlatformErrorCodes,\n    NUMBER_3804: 3804 as ExceptionsPlatformErrorCodes,\n    NUMBER_3805: 3805 as ExceptionsPlatformErrorCodes,\n    NUMBER_3806: 3806 as ExceptionsPlatformErrorCodes,\n    NUMBER_3807: 3807 as ExceptionsPlatformErrorCodes,\n    NUMBER_3900: 3900 as ExceptionsPlatformErrorCodes,\n    NUMBER_3901: 3901 as ExceptionsPlatformErrorCodes,\n    NUMBER_3902: 3902 as ExceptionsPlatformErrorCodes,\n    NUMBER_3903: 3903 as ExceptionsPlatformErrorCodes,\n    NUMBER_3904: 3904 as ExceptionsPlatformErrorCodes,\n    NUMBER_3905: 3905 as ExceptionsPlatformErrorCodes,\n    NUMBER_3906: 3906 as ExceptionsPlatformErrorCodes,\n    NUMBER_3907: 3907 as ExceptionsPlatformErrorCodes,\n    NUMBER_3908: 3908 as ExceptionsPlatformErrorCodes,\n    NUMBER_3910: 3910 as ExceptionsPlatformErrorCodes,\n    NUMBER_3911: 3911 as ExceptionsPlatformErrorCodes,\n    NUMBER_4000: 4000 as ExceptionsPlatformErrorCodes,\n    NUMBER_4001: 4001 as ExceptionsPlatformErrorCodes,\n    NUMBER_4002: 4002 as ExceptionsPlatformErrorCodes,\n    NUMBER_4003: 4003 as ExceptionsPlatformErrorCodes,\n    NUMBER_4004: 4004 as ExceptionsPlatformErrorCodes,\n    NUMBER_4005: 4005 as ExceptionsPlatformErrorCodes,\n    NUMBER_4006: 4006 as ExceptionsPlatformErrorCodes,\n    NUMBER_4007: 4007 as ExceptionsPlatformErrorCodes,\n    NUMBER_4008: 4008 as ExceptionsPlatformErrorCodes,\n    NUMBER_4009: 4009 as ExceptionsPlatformErrorCodes\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FireteamFireteamDateRange = 0 | 1 | 2 | 3 | 4;\n\nexport const FireteamFireteamDateRange = {\n    NUMBER_0: 0 as FireteamFireteamDateRange,\n    NUMBER_1: 1 as FireteamFireteamDateRange,\n    NUMBER_2: 2 as FireteamFireteamDateRange,\n    NUMBER_3: 3 as FireteamFireteamDateRange,\n    NUMBER_4: 4 as FireteamFireteamDateRange\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FireteamFireteamPlatform = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport const FireteamFireteamPlatform = {\n    NUMBER_0: 0 as FireteamFireteamPlatform,\n    NUMBER_1: 1 as FireteamFireteamPlatform,\n    NUMBER_2: 2 as FireteamFireteamPlatform,\n    NUMBER_3: 3 as FireteamFireteamPlatform,\n    NUMBER_4: 4 as FireteamFireteamPlatform,\n    NUMBER_5: 5 as FireteamFireteamPlatform,\n    NUMBER_6: 6 as FireteamFireteamPlatform\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FireteamFireteamPlatformInviteResult = 0 | 1 | 2 | 3 | 4;\n\nexport const FireteamFireteamPlatformInviteResult = {\n    NUMBER_0: 0 as FireteamFireteamPlatformInviteResult,\n    NUMBER_1: 1 as FireteamFireteamPlatformInviteResult,\n    NUMBER_2: 2 as FireteamFireteamPlatformInviteResult,\n    NUMBER_3: 3 as FireteamFireteamPlatformInviteResult,\n    NUMBER_4: 4 as FireteamFireteamPlatformInviteResult\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FireteamFireteamPublicSearchOption = 0 | 1 | 2;\n\nexport const FireteamFireteamPublicSearchOption = {\n    NUMBER_0: 0 as FireteamFireteamPublicSearchOption,\n    NUMBER_1: 1 as FireteamFireteamPublicSearchOption,\n    NUMBER_2: 2 as FireteamFireteamPublicSearchOption\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FireteamFireteamSlotSearch = 0 | 1 | 2;\n\nexport const FireteamFireteamSlotSearch = {\n    NUMBER_0: 0 as FireteamFireteamSlotSearch,\n    NUMBER_1: 1 as FireteamFireteamSlotSearch,\n    NUMBER_2: 2 as FireteamFireteamSlotSearch\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumCommunityContentSortMode = 0 | 1 | 2;\n\nexport const ForumCommunityContentSortMode = {\n    NUMBER_0: 0 as ForumCommunityContentSortMode,\n    NUMBER_1: 1 as ForumCommunityContentSortMode,\n    NUMBER_2: 2 as ForumCommunityContentSortMode\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumForumMediaType = 0 | 1 | 2 | 3;\n\nexport const ForumForumMediaType = {\n    NUMBER_0: 0 as ForumForumMediaType,\n    NUMBER_1: 1 as ForumForumMediaType,\n    NUMBER_2: 2 as ForumForumMediaType,\n    NUMBER_3: 3 as ForumForumMediaType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumForumPostPopularity = 0 | 1 | 2 | 3 | 4 | 5;\n\nexport const ForumForumPostPopularity = {\n    NUMBER_0: 0 as ForumForumPostPopularity,\n    NUMBER_1: 1 as ForumForumPostPopularity,\n    NUMBER_2: 2 as ForumForumPostPopularity,\n    NUMBER_3: 3 as ForumForumPostPopularity,\n    NUMBER_4: 4 as ForumForumPostPopularity,\n    NUMBER_5: 5 as ForumForumPostPopularity\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumForumPostSortEnum = 0 | 1;\n\nexport const ForumForumPostSortEnum = {\n    NUMBER_0: 0 as ForumForumPostSortEnum,\n    NUMBER_1: 1 as ForumForumPostSortEnum\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumForumRecruitmentIntensityLabel = 0 | 1 | 2;\n\nexport const ForumForumRecruitmentIntensityLabel = {\n    NUMBER_0: 0 as ForumForumRecruitmentIntensityLabel,\n    NUMBER_1: 1 as ForumForumRecruitmentIntensityLabel,\n    NUMBER_2: 2 as ForumForumRecruitmentIntensityLabel\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumForumRecruitmentToneLabel = 0 | 1 | 2;\n\nexport const ForumForumRecruitmentToneLabel = {\n    NUMBER_0: 0 as ForumForumRecruitmentToneLabel,\n    NUMBER_1: 1 as ForumForumRecruitmentToneLabel,\n    NUMBER_2: 2 as ForumForumRecruitmentToneLabel\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumForumTopicsCategoryFiltersEnum = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128;\n\nexport const ForumForumTopicsCategoryFiltersEnum = {\n    NUMBER_0: 0 as ForumForumTopicsCategoryFiltersEnum,\n    NUMBER_1: 1 as ForumForumTopicsCategoryFiltersEnum,\n    NUMBER_2: 2 as ForumForumTopicsCategoryFiltersEnum,\n    NUMBER_4: 4 as ForumForumTopicsCategoryFiltersEnum,\n    NUMBER_8: 8 as ForumForumTopicsCategoryFiltersEnum,\n    NUMBER_16: 16 as ForumForumTopicsCategoryFiltersEnum,\n    NUMBER_32: 32 as ForumForumTopicsCategoryFiltersEnum,\n    NUMBER_64: 64 as ForumForumTopicsCategoryFiltersEnum,\n    NUMBER_128: 128 as ForumForumTopicsCategoryFiltersEnum\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumForumTopicsQuickDateEnum = 0 | 1 | 2 | 3 | 4;\n\nexport const ForumForumTopicsQuickDateEnum = {\n    NUMBER_0: 0 as ForumForumTopicsQuickDateEnum,\n    NUMBER_1: 1 as ForumForumTopicsQuickDateEnum,\n    NUMBER_2: 2 as ForumForumTopicsQuickDateEnum,\n    NUMBER_3: 3 as ForumForumTopicsQuickDateEnum,\n    NUMBER_4: 4 as ForumForumTopicsQuickDateEnum\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumForumTopicsSortEnum = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;\n\nexport const ForumForumTopicsSortEnum = {\n    NUMBER_0: 0 as ForumForumTopicsSortEnum,\n    NUMBER_1: 1 as ForumForumTopicsSortEnum,\n    NUMBER_2: 2 as ForumForumTopicsSortEnum,\n    NUMBER_3: 3 as ForumForumTopicsSortEnum,\n    NUMBER_4: 4 as ForumForumTopicsSortEnum,\n    NUMBER_5: 5 as ForumForumTopicsSortEnum,\n    NUMBER_6: 6 as ForumForumTopicsSortEnum,\n    NUMBER_7: 7 as ForumForumTopicsSortEnum\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumsForumFlagsEnum = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128;\n\nexport const ForumsForumFlagsEnum = {\n    NUMBER_0: 0 as ForumsForumFlagsEnum,\n    NUMBER_1: 1 as ForumsForumFlagsEnum,\n    NUMBER_2: 2 as ForumsForumFlagsEnum,\n    NUMBER_4: 4 as ForumsForumFlagsEnum,\n    NUMBER_8: 8 as ForumsForumFlagsEnum,\n    NUMBER_16: 16 as ForumsForumFlagsEnum,\n    NUMBER_32: 32 as ForumsForumFlagsEnum,\n    NUMBER_64: 64 as ForumsForumFlagsEnum,\n    NUMBER_128: 128 as ForumsForumFlagsEnum\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ForumsForumPostCategoryEnums = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024;\n\nexport const ForumsForumPostCategoryEnums = {\n    NUMBER_0: 0 as ForumsForumPostCategoryEnums,\n    NUMBER_1: 1 as ForumsForumPostCategoryEnums,\n    NUMBER_2: 2 as ForumsForumPostCategoryEnums,\n    NUMBER_4: 4 as ForumsForumPostCategoryEnums,\n    NUMBER_8: 8 as ForumsForumPostCategoryEnums,\n    NUMBER_16: 16 as ForumsForumPostCategoryEnums,\n    NUMBER_32: 32 as ForumsForumPostCategoryEnums,\n    NUMBER_64: 64 as ForumsForumPostCategoryEnums,\n    NUMBER_128: 128 as ForumsForumPostCategoryEnums,\n    NUMBER_256: 256 as ForumsForumPostCategoryEnums,\n    NUMBER_512: 512 as ForumsForumPostCategoryEnums,\n    NUMBER_1024: 1024 as ForumsForumPostCategoryEnums\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GlobalAlertLevel = 0 | 1 | 2 | 3;\n\nexport const GlobalAlertLevel = {\n    NUMBER_0: 0 as GlobalAlertLevel,\n    NUMBER_1: 1 as GlobalAlertLevel,\n    NUMBER_2: 2 as GlobalAlertLevel,\n    NUMBER_3: 3 as GlobalAlertLevel\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GlobalAlertType = 0 | 1;\n\nexport const GlobalAlertType = {\n    NUMBER_0: 0 as GlobalAlertType,\n    NUMBER_1: 1 as GlobalAlertType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2Capabilities = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64;\n\nexport const GroupsV2Capabilities = {\n    NUMBER_0: 0 as GroupsV2Capabilities,\n    NUMBER_1: 1 as GroupsV2Capabilities,\n    NUMBER_2: 2 as GroupsV2Capabilities,\n    NUMBER_4: 4 as GroupsV2Capabilities,\n    NUMBER_8: 8 as GroupsV2Capabilities,\n    NUMBER_16: 16 as GroupsV2Capabilities,\n    NUMBER_32: 32 as GroupsV2Capabilities,\n    NUMBER_64: 64 as GroupsV2Capabilities\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2ChatSecuritySetting = 0 | 1;\n\nexport const GroupsV2ChatSecuritySetting = {\n    NUMBER_0: 0 as GroupsV2ChatSecuritySetting,\n    NUMBER_1: 1 as GroupsV2ChatSecuritySetting\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2GroupAllianceStatus = 0 | 1 | 2;\n\nexport const GroupsV2GroupAllianceStatus = {\n    NUMBER_0: 0 as GroupsV2GroupAllianceStatus,\n    NUMBER_1: 1 as GroupsV2GroupAllianceStatus,\n    NUMBER_2: 2 as GroupsV2GroupAllianceStatus\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2GroupApplicationResolveState = 0 | 1 | 2 | 3;\n\nexport const GroupsV2GroupApplicationResolveState = {\n    NUMBER_0: 0 as GroupsV2GroupApplicationResolveState,\n    NUMBER_1: 1 as GroupsV2GroupApplicationResolveState,\n    NUMBER_2: 2 as GroupsV2GroupApplicationResolveState,\n    NUMBER_3: 3 as GroupsV2GroupApplicationResolveState\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2GroupDateRange = 0 | 1 | 2 | 3 | 4;\n\nexport const GroupsV2GroupDateRange = {\n    NUMBER_0: 0 as GroupsV2GroupDateRange,\n    NUMBER_1: 1 as GroupsV2GroupDateRange,\n    NUMBER_2: 2 as GroupsV2GroupDateRange,\n    NUMBER_3: 3 as GroupsV2GroupDateRange,\n    NUMBER_4: 4 as GroupsV2GroupDateRange\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface GroupsV2GroupEditAction { \n    name?: string;\n    about?: string;\n    motto?: string;\n    theme?: string;\n    avatarImageIndex?: number;\n    tags?: string;\n    isPublic?: boolean;\n    membershipOption?: GroupsV2GroupEditAction.MembershipOptionEnum;\n    isPublicTopicAdminOnly?: boolean;\n    allowChat?: boolean;\n    chatSecurity?: GroupsV2GroupEditAction.ChatSecurityEnum;\n    callsign?: string;\n    locale?: string;\n    homepage?: GroupsV2GroupEditAction.HomepageEnum;\n    enableInvitationMessagingForAdmins?: boolean;\n    defaultPublicity?: GroupsV2GroupEditAction.DefaultPublicityEnum;\n}\nexport namespace GroupsV2GroupEditAction {\n    export type MembershipOptionEnum = 0 | 1 | 2;\n    export const MembershipOptionEnum = {\n        NUMBER_0: 0 as MembershipOptionEnum,\n        NUMBER_1: 1 as MembershipOptionEnum,\n        NUMBER_2: 2 as MembershipOptionEnum\n    };\n    export type ChatSecurityEnum = 0 | 1;\n    export const ChatSecurityEnum = {\n        NUMBER_0: 0 as ChatSecurityEnum,\n        NUMBER_1: 1 as ChatSecurityEnum\n    };\n    export type HomepageEnum = 0 | 1 | 2;\n    export const HomepageEnum = {\n        NUMBER_0: 0 as HomepageEnum,\n        NUMBER_1: 1 as HomepageEnum,\n        NUMBER_2: 2 as HomepageEnum\n    };\n    export type DefaultPublicityEnum = 0 | 1 | 2;\n    export const DefaultPublicityEnum = {\n        NUMBER_0: 0 as DefaultPublicityEnum,\n        NUMBER_1: 1 as DefaultPublicityEnum,\n        NUMBER_2: 2 as DefaultPublicityEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2GroupHomepage = 0 | 1 | 2;\n\nexport const GroupsV2GroupHomepage = {\n    NUMBER_0: 0 as GroupsV2GroupHomepage,\n    NUMBER_1: 1 as GroupsV2GroupHomepage,\n    NUMBER_2: 2 as GroupsV2GroupHomepage\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2GroupMemberCountFilter = 0 | 1 | 2 | 3;\n\nexport const GroupsV2GroupMemberCountFilter = {\n    NUMBER_0: 0 as GroupsV2GroupMemberCountFilter,\n    NUMBER_1: 1 as GroupsV2GroupMemberCountFilter,\n    NUMBER_2: 2 as GroupsV2GroupMemberCountFilter,\n    NUMBER_3: 3 as GroupsV2GroupMemberCountFilter\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface GroupsV2GroupOptionalConversationEditRequest { \n    chatEnabled?: boolean;\n    chatName?: string;\n    chatSecurity?: GroupsV2GroupOptionalConversationEditRequest.ChatSecurityEnum;\n}\nexport namespace GroupsV2GroupOptionalConversationEditRequest {\n    export type ChatSecurityEnum = 0 | 1;\n    export const ChatSecurityEnum = {\n        NUMBER_0: 0 as ChatSecurityEnum,\n        NUMBER_1: 1 as ChatSecurityEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface GroupsV2GroupOptionsEditAction { \n    /**\n     * Minimum Member Level allowed to invite new members to group  Always Allowed: Founder, Acting Founder  True means admins have this power, false means they don\\'t  Default is false for clans, true for groups.\n     */\n    InvitePermissionOverride?: boolean;\n    /**\n     * Minimum Member Level allowed to update group culture  Always Allowed: Founder, Acting Founder  True means admins have this power, false means they don\\'t  Default is false for clans, true for groups.\n     */\n    UpdateCulturePermissionOverride?: boolean;\n    /**\n     * Minimum Member Level allowed to host guided games  Always Allowed: Founder, Acting Founder, Admin  Allowed Overrides: None, Member, Beginner  Default is Member for clans, None for groups, although this means nothing for groups.\n     */\n    HostGuidedGamePermissionOverride?: GroupsV2GroupOptionsEditAction.HostGuidedGamePermissionOverrideEnum;\n    /**\n     * Minimum Member Level allowed to update banner  Always Allowed: Founder, Acting Founder  True means admins have this power, false means they don\\'t  Default is false for clans, true for groups.\n     */\n    UpdateBannerPermissionOverride?: boolean;\n    /**\n     * Level to join a member at when accepting an invite, application, or joining an open clan  Default is Beginner.\n     */\n    JoinLevel?: GroupsV2GroupOptionsEditAction.JoinLevelEnum;\n}\nexport namespace GroupsV2GroupOptionsEditAction {\n    export type HostGuidedGamePermissionOverrideEnum = 0 | 1 | 2;\n    export const HostGuidedGamePermissionOverrideEnum = {\n        NUMBER_0: 0 as HostGuidedGamePermissionOverrideEnum,\n        NUMBER_1: 1 as HostGuidedGamePermissionOverrideEnum,\n        NUMBER_2: 2 as HostGuidedGamePermissionOverrideEnum\n    };\n    export type JoinLevelEnum = 0 | 1 | 2 | 3 | 4 | 5;\n    export const JoinLevelEnum = {\n        NUMBER_0: 0 as JoinLevelEnum,\n        NUMBER_1: 1 as JoinLevelEnum,\n        NUMBER_2: 2 as JoinLevelEnum,\n        NUMBER_3: 3 as JoinLevelEnum,\n        NUMBER_4: 4 as JoinLevelEnum,\n        NUMBER_5: 5 as JoinLevelEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2GroupPostPublicity = 0 | 1 | 2;\n\nexport const GroupsV2GroupPostPublicity = {\n    NUMBER_0: 0 as GroupsV2GroupPostPublicity,\n    NUMBER_1: 1 as GroupsV2GroupPostPublicity,\n    NUMBER_2: 2 as GroupsV2GroupPostPublicity\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2GroupPotentialMemberStatus = 0 | 1 | 2;\n\nexport const GroupsV2GroupPotentialMemberStatus = {\n    NUMBER_0: 0 as GroupsV2GroupPotentialMemberStatus,\n    NUMBER_1: 1 as GroupsV2GroupPotentialMemberStatus,\n    NUMBER_2: 2 as GroupsV2GroupPotentialMemberStatus\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * NOTE: GroupQuery, as of Destiny 2, has essentially two totally different and incompatible \\\"modes\\\".  If you are querying for a group, you can pass any of the properties below.  If you are querying for a Clan, you MUST NOT pass any of the following properties (they must be null or undefined in your request, not just empty string/default values):  - groupMemberCountFilter - localeFilter - tagText  If you pass these, you will get a useless InvalidParameters error.\n */\nexport interface GroupsV2GroupQuery { \n    name?: string;\n    groupType?: number;\n    creationDate?: number;\n    sortBy?: number;\n    groupMemberCountFilter?: GroupsV2GroupQuery.GroupMemberCountFilterEnum;\n    localeFilter?: string;\n    tagText?: string;\n    itemsPerPage?: number;\n    currentPage?: number;\n    requestContinuationToken?: string;\n}\nexport namespace GroupsV2GroupQuery {\n    export type GroupMemberCountFilterEnum = 0 | 1 | 2 | 3;\n    export const GroupMemberCountFilterEnum = {\n        NUMBER_0: 0 as GroupMemberCountFilterEnum,\n        NUMBER_1: 1 as GroupMemberCountFilterEnum,\n        NUMBER_2: 2 as GroupMemberCountFilterEnum,\n        NUMBER_3: 3 as GroupMemberCountFilterEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2GroupSortBy = 0 | 1 | 2 | 3;\n\nexport const GroupsV2GroupSortBy = {\n    NUMBER_0: 0 as GroupsV2GroupSortBy,\n    NUMBER_1: 1 as GroupsV2GroupSortBy,\n    NUMBER_2: 2 as GroupsV2GroupSortBy,\n    NUMBER_3: 3 as GroupsV2GroupSortBy\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2GroupType = 0 | 1;\n\nexport const GroupsV2GroupType = {\n    NUMBER_0: 0 as GroupsV2GroupType,\n    NUMBER_1: 1 as GroupsV2GroupType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2GroupsForMemberFilter = 0 | 1 | 2;\n\nexport const GroupsV2GroupsForMemberFilter = {\n    NUMBER_0: 0 as GroupsV2GroupsForMemberFilter,\n    NUMBER_1: 1 as GroupsV2GroupsForMemberFilter,\n    NUMBER_2: 2 as GroupsV2GroupsForMemberFilter\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Used for setting the guided game permission level override (admins and founders can always host guided games).\n */\nexport type GroupsV2HostGuidedGamesPermissionLevel = 0 | 1 | 2;\n\nexport const GroupsV2HostGuidedGamesPermissionLevel = {\n    NUMBER_0: 0 as GroupsV2HostGuidedGamesPermissionLevel,\n    NUMBER_1: 1 as GroupsV2HostGuidedGamesPermissionLevel,\n    NUMBER_2: 2 as GroupsV2HostGuidedGamesPermissionLevel\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type GroupsV2MembershipOption = 0 | 1 | 2;\n\nexport const GroupsV2MembershipOption = {\n    NUMBER_0: 0 as GroupsV2MembershipOption,\n    NUMBER_1: 1 as GroupsV2MembershipOption,\n    NUMBER_2: 2 as GroupsV2MembershipOption\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The member levels used by all V2 Groups API. Individual group types use their own mappings in their native storage (general uses BnetDbGroupMemberType and D2 clans use ClanMemberLevel), but they are all translated to this in the runtime api. These runtime values should NEVER be stored anywhere, so the values can be changed as necessary.\n */\nexport type GroupsV2RuntimeGroupMemberType = 0 | 1 | 2 | 3 | 4 | 5;\n\nexport const GroupsV2RuntimeGroupMemberType = {\n    NUMBER_0: 0 as GroupsV2RuntimeGroupMemberType,\n    NUMBER_1: 1 as GroupsV2RuntimeGroupMemberType,\n    NUMBER_2: 2 as GroupsV2RuntimeGroupMemberType,\n    NUMBER_3: 3 as GroupsV2RuntimeGroupMemberType,\n    NUMBER_4: 4 as GroupsV2RuntimeGroupMemberType,\n    NUMBER_5: 5 as GroupsV2RuntimeGroupMemberType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type IgnoresIgnoreLength = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;\n\nexport const IgnoresIgnoreLength = {\n    NUMBER_0: 0 as IgnoresIgnoreLength,\n    NUMBER_1: 1 as IgnoresIgnoreLength,\n    NUMBER_2: 2 as IgnoresIgnoreLength,\n    NUMBER_3: 3 as IgnoresIgnoreLength,\n    NUMBER_4: 4 as IgnoresIgnoreLength,\n    NUMBER_5: 5 as IgnoresIgnoreLength,\n    NUMBER_6: 6 as IgnoresIgnoreLength,\n    NUMBER_7: 7 as IgnoresIgnoreLength,\n    NUMBER_8: 8 as IgnoresIgnoreLength,\n    NUMBER_9: 9 as IgnoresIgnoreLength,\n    NUMBER_10: 10 as IgnoresIgnoreLength,\n    NUMBER_11: 11 as IgnoresIgnoreLength\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type IgnoresIgnoreStatus = 0 | 1 | 2 | 4 | 8 | 16 | 32;\n\nexport const IgnoresIgnoreStatus = {\n    NUMBER_0: 0 as IgnoresIgnoreStatus,\n    NUMBER_1: 1 as IgnoresIgnoreStatus,\n    NUMBER_2: 2 as IgnoresIgnoreStatus,\n    NUMBER_4: 4 as IgnoresIgnoreStatus,\n    NUMBER_8: 8 as IgnoresIgnoreStatus,\n    NUMBER_16: 16 as IgnoresIgnoreStatus,\n    NUMBER_32: 32 as IgnoresIgnoreStatus\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type SocialFriendsFriendRelationshipState = 0 | 1 | 2 | 3;\n\nexport const SocialFriendsFriendRelationshipState = {\n    NUMBER_0: 0 as SocialFriendsFriendRelationshipState,\n    NUMBER_1: 1 as SocialFriendsFriendRelationshipState,\n    NUMBER_2: 2 as SocialFriendsFriendRelationshipState,\n    NUMBER_3: 3 as SocialFriendsFriendRelationshipState\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SocialFriendsPlatformFriend { \n    platformDisplayName?: string;\n    friendPlatform?: number;\n    destinyMembershipId?: number;\n    destinyMembershipType?: SocialFriendsPlatformFriend.DestinyMembershipTypeEnum;\n    bungieNetMembershipId?: number;\n    bungieGlobalDisplayName?: string;\n    bungieGlobalDisplayNameCode?: number;\n}\nexport namespace SocialFriendsPlatformFriend {\n    export type DestinyMembershipTypeEnum = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 10 | 254 | -1;\n    export const DestinyMembershipTypeEnum = {\n        NUMBER_0: 0 as DestinyMembershipTypeEnum,\n        NUMBER_1: 1 as DestinyMembershipTypeEnum,\n        NUMBER_2: 2 as DestinyMembershipTypeEnum,\n        NUMBER_3: 3 as DestinyMembershipTypeEnum,\n        NUMBER_4: 4 as DestinyMembershipTypeEnum,\n        NUMBER_5: 5 as DestinyMembershipTypeEnum,\n        NUMBER_6: 6 as DestinyMembershipTypeEnum,\n        NUMBER_10: 10 as DestinyMembershipTypeEnum,\n        NUMBER_254: 254 as DestinyMembershipTypeEnum,\n        NUMBER_MINUS_1: -1 as DestinyMembershipTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type SocialFriendsPlatformFriendType = 0 | 1 | 2 | 3 | 4;\n\nexport const SocialFriendsPlatformFriendType = {\n    NUMBER_0: 0 as SocialFriendsPlatformFriendType,\n    NUMBER_1: 1 as SocialFriendsPlatformFriendType,\n    NUMBER_2: 2 as SocialFriendsPlatformFriendType,\n    NUMBER_3: 3 as SocialFriendsPlatformFriendType,\n    NUMBER_4: 4 as SocialFriendsPlatformFriendType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type SocialFriendsPresenceOnlineStateFlags = 0 | 1 | 2;\n\nexport const SocialFriendsPresenceOnlineStateFlags = {\n    NUMBER_0: 0 as SocialFriendsPresenceOnlineStateFlags,\n    NUMBER_1: 1 as SocialFriendsPresenceOnlineStateFlags,\n    NUMBER_2: 2 as SocialFriendsPresenceOnlineStateFlags\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type SocialFriendsPresenceStatus = 0 | 1;\n\nexport const SocialFriendsPresenceStatus = {\n    NUMBER_0: 0 as SocialFriendsPresenceStatus,\n    NUMBER_1: 1 as SocialFriendsPresenceStatus\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type StreamingDropStateEnum = 0 | 1 | 2;\n\nexport const StreamingDropStateEnum = {\n    NUMBER_0: 0 as StreamingDropStateEnum,\n    NUMBER_1: 1 as StreamingDropStateEnum,\n    NUMBER_2: 2 as StreamingDropStateEnum\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TokensPartnerOfferHistoryResponse { \n    PartnerOfferKey?: string;\n    MembershipId?: number;\n    MembershipType?: TokensPartnerOfferHistoryResponse.MembershipTypeEnum;\n    LocalizedName?: string;\n    LocalizedDescription?: string;\n    IsConsumable?: boolean;\n    QuantityApplied?: number;\n    ApplyDate?: string;\n}\nexport namespace TokensPartnerOfferHistoryResponse {\n    export type MembershipTypeEnum = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 10 | 254 | -1;\n    export const MembershipTypeEnum = {\n        NUMBER_0: 0 as MembershipTypeEnum,\n        NUMBER_1: 1 as MembershipTypeEnum,\n        NUMBER_2: 2 as MembershipTypeEnum,\n        NUMBER_3: 3 as MembershipTypeEnum,\n        NUMBER_4: 4 as MembershipTypeEnum,\n        NUMBER_5: 5 as MembershipTypeEnum,\n        NUMBER_6: 6 as MembershipTypeEnum,\n        NUMBER_10: 10 as MembershipTypeEnum,\n        NUMBER_254: 254 as MembershipTypeEnum,\n        NUMBER_MINUS_1: -1 as MembershipTypeEnum\n    };\n}\n\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The known entity types that you can have returned from Trending.\n */\nexport type TrendingTrendingEntryType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;\n\nexport const TrendingTrendingEntryType = {\n    NUMBER_0: 0 as TrendingTrendingEntryType,\n    NUMBER_1: 1 as TrendingTrendingEntryType,\n    NUMBER_2: 2 as TrendingTrendingEntryType,\n    NUMBER_3: 3 as TrendingTrendingEntryType,\n    NUMBER_4: 4 as TrendingTrendingEntryType,\n    NUMBER_5: 5 as TrendingTrendingEntryType,\n    NUMBER_6: 6 as TrendingTrendingEntryType,\n    NUMBER_7: 7 as TrendingTrendingEntryType,\n    NUMBER_8: 8 as TrendingTrendingEntryType,\n    NUMBER_9: 9 as TrendingTrendingEntryType,\n    NUMBER_10: 10 as TrendingTrendingEntryType,\n    NUMBER_11: 11 as TrendingTrendingEntryType\n};\n\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type UserOptInFlags = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256;\n\nexport const UserOptInFlags = {\n    NUMBER_0: 0 as UserOptInFlags,\n    NUMBER_1: 1 as UserOptInFlags,\n    NUMBER_2: 2 as UserOptInFlags,\n    NUMBER_4: 4 as UserOptInFlags,\n    NUMBER_8: 8 as UserOptInFlags,\n    NUMBER_16: 16 as UserOptInFlags,\n    NUMBER_32: 32 as UserOptInFlags,\n    NUMBER_64: 64 as UserOptInFlags,\n    NUMBER_128: 128 as UserOptInFlags,\n    NUMBER_256: 256 as UserOptInFlags\n};\n\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n    encodeKey(k: string): string {\n        return encodeURIComponent(k);\n    }\n    encodeValue(v: string): string {\n        return encodeURIComponent(v);\n    }\n    decodeKey(k: string): string {\n        return decodeURIComponent(k);\n    }\n    decodeValue(v: string): string {\n        return decodeURIComponent(v);\n    }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n    'csv': ',',\n    'tsv': '   ',\n    'ssv': ' ',\n    'pipes': '|'\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { AppGetApplicationApiUsage200Response } from '../model/appGetApplicationApiUsage200Response';\n// @ts-ignore\nimport { AppGetBungieApplications200Response } from '../model/appGetBungieApplications200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AppService {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Get API usage by application for time frame specified. You can go as far back as 30 days ago, and can ask for up to a 48 hour window of time in a single request. You must be authenticated with at least the ReadUserData permission to access this endpoint.\n     * @param applicationId ID of the application to get usage statistics.\n     * @param end End time for query. Goes to now if not specified.\n     * @param start Start time for query. Goes to 24 hours ago if not specified.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public appGetApplicationApiUsage(applicationId: number, end?: string, start?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<AppGetApplicationApiUsage200Response>;\n    public appGetApplicationApiUsage(applicationId: number, end?: string, start?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<AppGetApplicationApiUsage200Response>>;\n    public appGetApplicationApiUsage(applicationId: number, end?: string, start?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<AppGetApplicationApiUsage200Response>>;\n    public appGetApplicationApiUsage(applicationId: number, end?: string, start?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (applicationId === null || applicationId === undefined) {\n            throw new Error('Required parameter applicationId was null or undefined when calling appGetApplicationApiUsage.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (end !== undefined && end !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>end, 'end');\n        }\n        if (start !== undefined && start !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>start, 'start');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<AppGetApplicationApiUsage200Response>(`${this.configuration.basePath}/App/ApiUsage/${encodeURIComponent(String(applicationId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get list of applications created by Bungie.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public appGetBungieApplications(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<AppGetBungieApplications200Response>;\n    public appGetBungieApplications(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<AppGetBungieApplications200Response>>;\n    public appGetBungieApplications(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<AppGetBungieApplications200Response>>;\n    public appGetBungieApplications(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<AppGetBungieApplications200Response>(`${this.configuration.basePath}/App/FirstParty/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { ForumGetTopicsPaged200Response } from '../model/forumGetTopicsPaged200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CommunityContentService {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Returns community content.\n     * @param mediaFilter The type of media to get\n     * @param page Zero based page\n     * @param sort The sort mode.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public communityContentGetCommunityContent(mediaFilter: number, page: number, sort: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetTopicsPaged200Response>;\n    public communityContentGetCommunityContent(mediaFilter: number, page: number, sort: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetTopicsPaged200Response>>;\n    public communityContentGetCommunityContent(mediaFilter: number, page: number, sort: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetTopicsPaged200Response>>;\n    public communityContentGetCommunityContent(mediaFilter: number, page: number, sort: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (mediaFilter === null || mediaFilter === undefined) {\n            throw new Error('Required parameter mediaFilter was null or undefined when calling communityContentGetCommunityContent.');\n        }\n        if (page === null || page === undefined) {\n            throw new Error('Required parameter page was null or undefined when calling communityContentGetCommunityContent.');\n        }\n        if (sort === null || sort === undefined) {\n            throw new Error('Required parameter sort was null or undefined when calling communityContentGetCommunityContent.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ForumGetTopicsPaged200Response>(`${this.configuration.basePath}/CommunityContent/Get/${encodeURIComponent(String(sort))}/${encodeURIComponent(String(mediaFilter))}/${encodeURIComponent(String(page))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { ContentGetContentById200Response } from '../model/contentGetContentById200Response';\n// @ts-ignore\nimport { ContentGetContentType200Response } from '../model/contentGetContentType200Response';\n// @ts-ignore\nimport { ContentRssNewsArticles200Response } from '../model/contentRssNewsArticles200Response';\n// @ts-ignore\nimport { ContentSearchContentWithText200Response } from '../model/contentSearchContentWithText200Response';\n// @ts-ignore\nimport { ContentSearchHelpArticles200Response } from '../model/contentSearchHelpArticles200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ContentService {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Returns a content item referenced by id\n     * @param id \n     * @param locale \n     * @param head false\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public contentGetContentById(id: number, locale: string, head?: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ContentGetContentById200Response>;\n    public contentGetContentById(id: number, locale: string, head?: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ContentGetContentById200Response>>;\n    public contentGetContentById(id: number, locale: string, head?: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ContentGetContentById200Response>>;\n    public contentGetContentById(id: number, locale: string, head?: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling contentGetContentById.');\n        }\n        if (locale === null || locale === undefined) {\n            throw new Error('Required parameter locale was null or undefined when calling contentGetContentById.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (head !== undefined && head !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>head, 'head');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ContentGetContentById200Response>(`${this.configuration.basePath}/Content/GetContentById/${encodeURIComponent(String(id))}/${encodeURIComponent(String(locale))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the newest item that matches a given tag and Content Type.\n     * @param locale \n     * @param tag \n     * @param type \n     * @param head Not used.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public contentGetContentByTagAndType(locale: string, tag: string, type: string, head?: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ContentGetContentById200Response>;\n    public contentGetContentByTagAndType(locale: string, tag: string, type: string, head?: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ContentGetContentById200Response>>;\n    public contentGetContentByTagAndType(locale: string, tag: string, type: string, head?: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ContentGetContentById200Response>>;\n    public contentGetContentByTagAndType(locale: string, tag: string, type: string, head?: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (locale === null || locale === undefined) {\n            throw new Error('Required parameter locale was null or undefined when calling contentGetContentByTagAndType.');\n        }\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling contentGetContentByTagAndType.');\n        }\n        if (type === null || type === undefined) {\n            throw new Error('Required parameter type was null or undefined when calling contentGetContentByTagAndType.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (head !== undefined && head !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>head, 'head');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ContentGetContentById200Response>(`${this.configuration.basePath}/Content/GetContentByTagAndType/${encodeURIComponent(String(tag))}/${encodeURIComponent(String(type))}/${encodeURIComponent(String(locale))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets an object describing a particular variant of content.\n     * @param type \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public contentGetContentType(type: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ContentGetContentType200Response>;\n    public contentGetContentType(type: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ContentGetContentType200Response>>;\n    public contentGetContentType(type: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ContentGetContentType200Response>>;\n    public contentGetContentType(type: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (type === null || type === undefined) {\n            throw new Error('Required parameter type was null or undefined when calling contentGetContentType.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ContentGetContentType200Response>(`${this.configuration.basePath}/Content/GetContentType/${encodeURIComponent(String(type))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a JSON string response that is the RSS feed for news articles.\n     * @param pageToken Zero-based pagination token for paging through result sets.\n     * @param categoryfilter Optionally filter response to only include news items in a certain category.\n     * @param includebody Optionally include full content body for each news item.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public contentRssNewsArticles(pageToken: string, categoryfilter?: string, includebody?: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ContentRssNewsArticles200Response>;\n    public contentRssNewsArticles(pageToken: string, categoryfilter?: string, includebody?: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ContentRssNewsArticles200Response>>;\n    public contentRssNewsArticles(pageToken: string, categoryfilter?: string, includebody?: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ContentRssNewsArticles200Response>>;\n    public contentRssNewsArticles(pageToken: string, categoryfilter?: string, includebody?: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (pageToken === null || pageToken === undefined) {\n            throw new Error('Required parameter pageToken was null or undefined when calling contentRssNewsArticles.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (categoryfilter !== undefined && categoryfilter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>categoryfilter, 'categoryfilter');\n        }\n        if (includebody !== undefined && includebody !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>includebody, 'includebody');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ContentRssNewsArticles200Response>(`${this.configuration.basePath}/Content/Rss/NewsArticles/${encodeURIComponent(String(pageToken))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Searches for Content Items that match the given Tag and Content Type.\n     * @param locale \n     * @param tag \n     * @param type \n     * @param currentpage Page number for the search results starting with page 1.\n     * @param head Not used.\n     * @param itemsperpage Not used.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public contentSearchContentByTagAndType(locale: string, tag: string, type: string, currentpage?: number, head?: boolean, itemsperpage?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ContentSearchContentWithText200Response>;\n    public contentSearchContentByTagAndType(locale: string, tag: string, type: string, currentpage?: number, head?: boolean, itemsperpage?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ContentSearchContentWithText200Response>>;\n    public contentSearchContentByTagAndType(locale: string, tag: string, type: string, currentpage?: number, head?: boolean, itemsperpage?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ContentSearchContentWithText200Response>>;\n    public contentSearchContentByTagAndType(locale: string, tag: string, type: string, currentpage?: number, head?: boolean, itemsperpage?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (locale === null || locale === undefined) {\n            throw new Error('Required parameter locale was null or undefined when calling contentSearchContentByTagAndType.');\n        }\n        if (tag === null || tag === undefined) {\n            throw new Error('Required parameter tag was null or undefined when calling contentSearchContentByTagAndType.');\n        }\n        if (type === null || type === undefined) {\n            throw new Error('Required parameter type was null or undefined when calling contentSearchContentByTagAndType.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (currentpage !== undefined && currentpage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>currentpage, 'currentpage');\n        }\n        if (head !== undefined && head !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>head, 'head');\n        }\n        if (itemsperpage !== undefined && itemsperpage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>itemsperpage, 'itemsperpage');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ContentSearchContentWithText200Response>(`${this.configuration.basePath}/Content/SearchContentByTagAndType/${encodeURIComponent(String(tag))}/${encodeURIComponent(String(type))}/${encodeURIComponent(String(locale))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets content based on querystring information passed in. Provides basic search and text search capabilities.\n     * @param locale \n     * @param ctype Content type tag: Help, News, etc. Supply multiple ctypes separated by space.\n     * @param currentpage Page number for the search results, starting with page 1.\n     * @param head Not used.\n     * @param searchtext Word or phrase for the search.\n     * @param source For analytics, hint at the part of the app that triggered the search. Optional.\n     * @param tag Tag used on the content to be searched.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public contentSearchContentWithText(locale: string, ctype?: string, currentpage?: number, head?: boolean, searchtext?: string, source?: string, tag?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ContentSearchContentWithText200Response>;\n    public contentSearchContentWithText(locale: string, ctype?: string, currentpage?: number, head?: boolean, searchtext?: string, source?: string, tag?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ContentSearchContentWithText200Response>>;\n    public contentSearchContentWithText(locale: string, ctype?: string, currentpage?: number, head?: boolean, searchtext?: string, source?: string, tag?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ContentSearchContentWithText200Response>>;\n    public contentSearchContentWithText(locale: string, ctype?: string, currentpage?: number, head?: boolean, searchtext?: string, source?: string, tag?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (locale === null || locale === undefined) {\n            throw new Error('Required parameter locale was null or undefined when calling contentSearchContentWithText.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (ctype !== undefined && ctype !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>ctype, 'ctype');\n        }\n        if (currentpage !== undefined && currentpage !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>currentpage, 'currentpage');\n        }\n        if (head !== undefined && head !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>head, 'head');\n        }\n        if (searchtext !== undefined && searchtext !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>searchtext, 'searchtext');\n        }\n        if (source !== undefined && source !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>source, 'source');\n        }\n        if (tag !== undefined && tag !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>tag, 'tag');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ContentSearchContentWithText200Response>(`${this.configuration.basePath}/Content/Search/${encodeURIComponent(String(locale))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Search for Help Articles.\n     * @param searchtext \n     * @param size \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public contentSearchHelpArticles(searchtext: string, size: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ContentSearchHelpArticles200Response>;\n    public contentSearchHelpArticles(searchtext: string, size: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ContentSearchHelpArticles200Response>>;\n    public contentSearchHelpArticles(searchtext: string, size: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ContentSearchHelpArticles200Response>>;\n    public contentSearchHelpArticles(searchtext: string, size: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (searchtext === null || searchtext === undefined) {\n            throw new Error('Required parameter searchtext was null or undefined when calling contentSearchHelpArticles.');\n        }\n        if (size === null || size === undefined) {\n            throw new Error('Required parameter size was null or undefined when calling contentSearchHelpArticles.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ContentSearchHelpArticles200Response>(`${this.configuration.basePath}/Content/SearchHelpArticles/${encodeURIComponent(String(searchtext))}/${encodeURIComponent(String(size))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { GetCommonSettings200Response } from '../model/getCommonSettings200Response';\n// @ts-ignore\nimport { GetGlobalAlerts200Response } from '../model/getGlobalAlerts200Response';\n// @ts-ignore\nimport { GetUserSystemOverrides200Response } from '../model/getUserSystemOverrides200Response';\n// @ts-ignore\nimport { UserGetSanitizedPlatformDisplayNames200Response } from '../model/userGetSanitizedPlatformDisplayNames200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DefaultService {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * List of available localization cultures\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getAvailableLocales(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<UserGetSanitizedPlatformDisplayNames200Response>;\n    public getAvailableLocales(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<UserGetSanitizedPlatformDisplayNames200Response>>;\n    public getAvailableLocales(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<UserGetSanitizedPlatformDisplayNames200Response>>;\n    public getAvailableLocales(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<UserGetSanitizedPlatformDisplayNames200Response>(`${this.configuration.basePath}/GetAvailableLocales/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get the common settings used by the Bungie.Net environment.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getCommonSettings(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GetCommonSettings200Response>;\n    public getCommonSettings(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GetCommonSettings200Response>>;\n    public getCommonSettings(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GetCommonSettings200Response>>;\n    public getCommonSettings(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<GetCommonSettings200Response>(`${this.configuration.basePath}/Settings/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets any active global alert for display in the forum banners, help pages, etc. Usually used for DOC alerts.\n     * @param includestreaming Determines whether Streaming Alerts are included in results\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getGlobalAlerts(includestreaming?: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GetGlobalAlerts200Response>;\n    public getGlobalAlerts(includestreaming?: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GetGlobalAlerts200Response>>;\n    public getGlobalAlerts(includestreaming?: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GetGlobalAlerts200Response>>;\n    public getGlobalAlerts(includestreaming?: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (includestreaming !== undefined && includestreaming !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>includestreaming, 'includestreaming');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<GetGlobalAlerts200Response>(`${this.configuration.basePath}/GlobalAlerts/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get the user-specific system overrides that should be respected alongside common systems.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public getUserSystemOverrides(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GetUserSystemOverrides200Response>;\n    public getUserSystemOverrides(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GetUserSystemOverrides200Response>>;\n    public getUserSystemOverrides(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GetUserSystemOverrides200Response>>;\n    public getUserSystemOverrides(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<GetUserSystemOverrides200Response>(`${this.configuration.basePath}/UserSystemOverrides/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { Destiny2AwaGetActionToken200Response } from '../model/destiny2AwaGetActionToken200Response';\n// @ts-ignore\nimport { Destiny2AwaInitializeRequest200Response } from '../model/destiny2AwaInitializeRequest200Response';\n// @ts-ignore\nimport { Destiny2EquipItems200Response } from '../model/destiny2EquipItems200Response';\n// @ts-ignore\nimport { Destiny2GetActivityHistory200Response } from '../model/destiny2GetActivityHistory200Response';\n// @ts-ignore\nimport { Destiny2GetCharacter200Response } from '../model/destiny2GetCharacter200Response';\n// @ts-ignore\nimport { Destiny2GetClanAggregateStats200Response } from '../model/destiny2GetClanAggregateStats200Response';\n// @ts-ignore\nimport { Destiny2GetClanBannerSource200Response } from '../model/destiny2GetClanBannerSource200Response';\n// @ts-ignore\nimport { Destiny2GetClanLeaderboards200Response } from '../model/destiny2GetClanLeaderboards200Response';\n// @ts-ignore\nimport { Destiny2GetClanWeeklyRewardState200Response } from '../model/destiny2GetClanWeeklyRewardState200Response';\n// @ts-ignore\nimport { Destiny2GetCollectibleNodeDetails200Response } from '../model/destiny2GetCollectibleNodeDetails200Response';\n// @ts-ignore\nimport { Destiny2GetDestinyAggregateActivityStats200Response } from '../model/destiny2GetDestinyAggregateActivityStats200Response';\n// @ts-ignore\nimport { Destiny2GetDestinyEntityDefinition200Response } from '../model/destiny2GetDestinyEntityDefinition200Response';\n// @ts-ignore\nimport { Destiny2GetDestinyManifest200Response } from '../model/destiny2GetDestinyManifest200Response';\n// @ts-ignore\nimport { Destiny2GetHistoricalStats200Response } from '../model/destiny2GetHistoricalStats200Response';\n// @ts-ignore\nimport { Destiny2GetHistoricalStatsDefinition200Response } from '../model/destiny2GetHistoricalStatsDefinition200Response';\n// @ts-ignore\nimport { Destiny2GetHistoricalStatsForAccount200Response } from '../model/destiny2GetHistoricalStatsForAccount200Response';\n// @ts-ignore\nimport { Destiny2GetItem200Response } from '../model/destiny2GetItem200Response';\n// @ts-ignore\nimport { Destiny2GetLinkedProfiles200Response } from '../model/destiny2GetLinkedProfiles200Response';\n// @ts-ignore\nimport { Destiny2GetPostGameCarnageReport200Response } from '../model/destiny2GetPostGameCarnageReport200Response';\n// @ts-ignore\nimport { Destiny2GetProfile200Response } from '../model/destiny2GetProfile200Response';\n// @ts-ignore\nimport { Destiny2GetPublicMilestoneContent200Response } from '../model/destiny2GetPublicMilestoneContent200Response';\n// @ts-ignore\nimport { Destiny2GetPublicMilestones200Response } from '../model/destiny2GetPublicMilestones200Response';\n// @ts-ignore\nimport { Destiny2GetPublicVendors200Response } from '../model/destiny2GetPublicVendors200Response';\n// @ts-ignore\nimport { Destiny2GetUniqueWeaponHistory200Response } from '../model/destiny2GetUniqueWeaponHistory200Response';\n// @ts-ignore\nimport { Destiny2GetVendor200Response } from '../model/destiny2GetVendor200Response';\n// @ts-ignore\nimport { Destiny2GetVendors200Response } from '../model/destiny2GetVendors200Response';\n// @ts-ignore\nimport { Destiny2InsertSocketPlug200Response } from '../model/destiny2InsertSocketPlug200Response';\n// @ts-ignore\nimport { Destiny2SearchDestinyEntities200Response } from '../model/destiny2SearchDestinyEntities200Response';\n// @ts-ignore\nimport { Destiny2SearchDestinyPlayerByBungieName200Response } from '../model/destiny2SearchDestinyPlayerByBungieName200Response';\n// @ts-ignore\nimport { GroupV2EditGroup200Response } from '../model/groupV2EditGroup200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class Destiny2Service {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Returns the action token if user approves the request.\n     * @param correlationId The identifier for the advanced write action request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2AwaGetActionToken(correlationId: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2AwaGetActionToken200Response>;\n    public destiny2AwaGetActionToken(correlationId: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2AwaGetActionToken200Response>>;\n    public destiny2AwaGetActionToken(correlationId: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2AwaGetActionToken200Response>>;\n    public destiny2AwaGetActionToken(correlationId: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (correlationId === null || correlationId === undefined) {\n            throw new Error('Required parameter correlationId was null or undefined when calling destiny2AwaGetActionToken.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2AwaGetActionToken200Response>(`${this.configuration.basePath}/Destiny2/Awa/GetActionToken/${encodeURIComponent(String(correlationId))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Initialize a request to perform an advanced write action.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2AwaInitializeRequest(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2AwaInitializeRequest200Response>;\n    public destiny2AwaInitializeRequest(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2AwaInitializeRequest200Response>>;\n    public destiny2AwaInitializeRequest(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2AwaInitializeRequest200Response>>;\n    public destiny2AwaInitializeRequest(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<Destiny2AwaInitializeRequest200Response>(`${this.configuration.basePath}/Destiny2/Awa/Initialize/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Provide the result of the user interaction. Called by the Bungie Destiny App to approve or reject a request.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2AwaProvideAuthorizationResult(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2AwaProvideAuthorizationResult(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2AwaProvideAuthorizationResult(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2AwaProvideAuthorizationResult(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Awa/AwaProvideAuthorizationResult/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Clear the identifiers and items of a loadout.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2ClearLoadout(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2ClearLoadout(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2ClearLoadout(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2ClearLoadout(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Actions/Loadouts/ClearLoadout/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Equip an item. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2EquipItem(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2EquipItem(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2EquipItem(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2EquipItem(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Actions/Items/EquipItem/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Equip a list of items by itemInstanceIds. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. Any items not found on your character will be ignored.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2EquipItems(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2EquipItems200Response>;\n    public destiny2EquipItems(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2EquipItems200Response>>;\n    public destiny2EquipItems(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2EquipItems200Response>>;\n    public destiny2EquipItems(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<Destiny2EquipItems200Response>(`${this.configuration.basePath}/Destiny2/Actions/Items/EquipItems/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Equip a loadout. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2EquipLoadout(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2EquipLoadout(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2EquipLoadout(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2EquipLoadout(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Actions/Loadouts/EquipLoadout/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets activity history stats for indicated character.\n     * @param characterId The id of the character to retrieve.\n     * @param destinyMembershipId The Destiny membershipId of the user to retrieve.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param count Number of rows to return\n     * @param mode A filter for the activity mode to be returned. None returns all activities. See the documentation for DestinyActivityModeType for valid values, and pass in string representation.\n     * @param page Page number to return, starting with 0.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetActivityHistory(characterId: number, destinyMembershipId: number, membershipType: number, count?: number, mode?: number, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetActivityHistory200Response>;\n    public destiny2GetActivityHistory(characterId: number, destinyMembershipId: number, membershipType: number, count?: number, mode?: number, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetActivityHistory200Response>>;\n    public destiny2GetActivityHistory(characterId: number, destinyMembershipId: number, membershipType: number, count?: number, mode?: number, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetActivityHistory200Response>>;\n    public destiny2GetActivityHistory(characterId: number, destinyMembershipId: number, membershipType: number, count?: number, mode?: number, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (characterId === null || characterId === undefined) {\n            throw new Error('Required parameter characterId was null or undefined when calling destiny2GetActivityHistory.');\n        }\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetActivityHistory.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetActivityHistory.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (count !== undefined && count !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>count, 'count');\n        }\n        if (mode !== undefined && mode !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>mode, 'mode');\n        }\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetActivityHistory200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Account/${encodeURIComponent(String(destinyMembershipId))}/Character/${encodeURIComponent(String(characterId))}/Stats/Activities/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns character information for the supplied character.\n     * @param characterId ID of the character.\n     * @param destinyMembershipId Destiny membership ID.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param components A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetCharacter(characterId: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetCharacter200Response>;\n    public destiny2GetCharacter(characterId: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetCharacter200Response>>;\n    public destiny2GetCharacter(characterId: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetCharacter200Response>>;\n    public destiny2GetCharacter(characterId: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (characterId === null || characterId === undefined) {\n            throw new Error('Required parameter characterId was null or undefined when calling destiny2GetCharacter.');\n        }\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetCharacter.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetCharacter.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (components) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                components.join(COLLECTION_FORMATS['csv']), 'components');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetCharacter200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Profile/${encodeURIComponent(String(destinyMembershipId))}/Character/${encodeURIComponent(String(characterId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets aggregated stats for a clan using the same categories as the clan leaderboards. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.\n     * @param groupId Group ID of the clan whose leaderboards you wish to fetch.\n     * @param modes List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetClanAggregateStats(groupId: number, modes?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetClanAggregateStats200Response>;\n    public destiny2GetClanAggregateStats(groupId: number, modes?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetClanAggregateStats200Response>>;\n    public destiny2GetClanAggregateStats(groupId: number, modes?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetClanAggregateStats200Response>>;\n    public destiny2GetClanAggregateStats(groupId: number, modes?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling destiny2GetClanAggregateStats.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (modes !== undefined && modes !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>modes, 'modes');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetClanAggregateStats200Response>(`${this.configuration.basePath}/Destiny2/Stats/AggregateClanStats/${encodeURIComponent(String(groupId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the dictionary of values for the Clan Banner\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetClanBannerSource(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetClanBannerSource200Response>;\n    public destiny2GetClanBannerSource(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetClanBannerSource200Response>>;\n    public destiny2GetClanBannerSource(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetClanBannerSource200Response>>;\n    public destiny2GetClanBannerSource(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetClanBannerSource200Response>(`${this.configuration.basePath}/Destiny2/Clan/ClanBannerDictionary/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets leaderboards with the signed in user\\&#39;s friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.\n     * @param groupId Group ID of the clan whose leaderboards you wish to fetch.\n     * @param maxtop Maximum number of top players to return. Use a large number to get entire leaderboard.\n     * @param modes List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.\n     * @param statid ID of stat to return rather than returning all Leaderboard stats.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetClanLeaderboards(groupId: number, maxtop?: number, modes?: string, statid?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetClanLeaderboards200Response>;\n    public destiny2GetClanLeaderboards(groupId: number, maxtop?: number, modes?: string, statid?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetClanLeaderboards(groupId: number, maxtop?: number, modes?: string, statid?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetClanLeaderboards(groupId: number, maxtop?: number, modes?: string, statid?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling destiny2GetClanLeaderboards.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (maxtop !== undefined && maxtop !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>maxtop, 'maxtop');\n        }\n        if (modes !== undefined && modes !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>modes, 'modes');\n        }\n        if (statid !== undefined && statid !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>statid, 'statid');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetClanLeaderboards200Response>(`${this.configuration.basePath}/Destiny2/Stats/Leaderboards/Clans/${encodeURIComponent(String(groupId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns information on the weekly clan rewards and if the clan has earned them or not. Note that this will always report rewards as not redeemed.\n     * @param groupId A valid group id of clan.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetClanWeeklyRewardState(groupId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetClanWeeklyRewardState200Response>;\n    public destiny2GetClanWeeklyRewardState(groupId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetClanWeeklyRewardState200Response>>;\n    public destiny2GetClanWeeklyRewardState(groupId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetClanWeeklyRewardState200Response>>;\n    public destiny2GetClanWeeklyRewardState(groupId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling destiny2GetClanWeeklyRewardState.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetClanWeeklyRewardState200Response>(`${this.configuration.basePath}/Destiny2/Clan/${encodeURIComponent(String(groupId))}/WeeklyRewardState/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Given a Presentation Node that has Collectibles as direct descendants, this will return item details about those descendants in the context of the requesting character.\n     * @param characterId The Destiny Character ID of the character for whom we\\&#39;re getting collectible detail info.\n     * @param collectiblePresentationNodeHash The hash identifier of the Presentation Node for whom we should return collectible details. Details will only be returned for collectibles that are direct descendants of this node.\n     * @param destinyMembershipId Destiny membership ID of another user. You may be denied.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param components A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetCollectibleNodeDetails(characterId: number, collectiblePresentationNodeHash: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetCollectibleNodeDetails200Response>;\n    public destiny2GetCollectibleNodeDetails(characterId: number, collectiblePresentationNodeHash: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetCollectibleNodeDetails200Response>>;\n    public destiny2GetCollectibleNodeDetails(characterId: number, collectiblePresentationNodeHash: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetCollectibleNodeDetails200Response>>;\n    public destiny2GetCollectibleNodeDetails(characterId: number, collectiblePresentationNodeHash: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (characterId === null || characterId === undefined) {\n            throw new Error('Required parameter characterId was null or undefined when calling destiny2GetCollectibleNodeDetails.');\n        }\n        if (collectiblePresentationNodeHash === null || collectiblePresentationNodeHash === undefined) {\n            throw new Error('Required parameter collectiblePresentationNodeHash was null or undefined when calling destiny2GetCollectibleNodeDetails.');\n        }\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetCollectibleNodeDetails.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetCollectibleNodeDetails.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (components) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                components.join(COLLECTION_FORMATS['csv']), 'components');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetCollectibleNodeDetails200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Profile/${encodeURIComponent(String(destinyMembershipId))}/Character/${encodeURIComponent(String(characterId))}/Collectibles/${encodeURIComponent(String(collectiblePresentationNodeHash))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets all activities the character has participated in together with aggregate statistics for those activities.\n     * @param characterId The specific character whose activities should be returned.\n     * @param destinyMembershipId The Destiny membershipId of the user to retrieve.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetDestinyAggregateActivityStats(characterId: number, destinyMembershipId: number, membershipType: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetDestinyAggregateActivityStats200Response>;\n    public destiny2GetDestinyAggregateActivityStats(characterId: number, destinyMembershipId: number, membershipType: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetDestinyAggregateActivityStats200Response>>;\n    public destiny2GetDestinyAggregateActivityStats(characterId: number, destinyMembershipId: number, membershipType: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetDestinyAggregateActivityStats200Response>>;\n    public destiny2GetDestinyAggregateActivityStats(characterId: number, destinyMembershipId: number, membershipType: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (characterId === null || characterId === undefined) {\n            throw new Error('Required parameter characterId was null or undefined when calling destiny2GetDestinyAggregateActivityStats.');\n        }\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetDestinyAggregateActivityStats.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetDestinyAggregateActivityStats.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetDestinyAggregateActivityStats200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Account/${encodeURIComponent(String(destinyMembershipId))}/Character/${encodeURIComponent(String(characterId))}/Stats/AggregateActivityStats/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the static definition of an entity of the given Type and hash identifier. Examine the API Documentation for the Type Names of entities that have their own definitions. Note that the return type will always *inherit from* DestinyDefinition, but the specific type returned will be the requested entity type if it can be found. Please don\\&#39;t use this as a chatty alternative to the Manifest database if you require large sets of data, but for simple and one-off accesses this should be handy.\n     * @param entityType The type of entity for whom you would like results. These correspond to the entity\\&#39;s definition contract name. For instance, if you are looking for items, this property should be \\&#39;DestinyInventoryItemDefinition\\&#39;. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is tentatively in final form, but there may be bugs that prevent desirable operation.\n     * @param hashIdentifier The hash identifier for the specific Entity you want returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetDestinyEntityDefinition(entityType: string, hashIdentifier: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetDestinyEntityDefinition200Response>;\n    public destiny2GetDestinyEntityDefinition(entityType: string, hashIdentifier: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetDestinyEntityDefinition200Response>>;\n    public destiny2GetDestinyEntityDefinition(entityType: string, hashIdentifier: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetDestinyEntityDefinition200Response>>;\n    public destiny2GetDestinyEntityDefinition(entityType: string, hashIdentifier: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (entityType === null || entityType === undefined) {\n            throw new Error('Required parameter entityType was null or undefined when calling destiny2GetDestinyEntityDefinition.');\n        }\n        if (hashIdentifier === null || hashIdentifier === undefined) {\n            throw new Error('Required parameter hashIdentifier was null or undefined when calling destiny2GetDestinyEntityDefinition.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetDestinyEntityDefinition200Response>(`${this.configuration.basePath}/Destiny2/Manifest/${encodeURIComponent(String(entityType))}/${encodeURIComponent(String(hashIdentifier))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the current version of the manifest as a json object.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetDestinyManifest(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetDestinyManifest200Response>;\n    public destiny2GetDestinyManifest(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetDestinyManifest200Response>>;\n    public destiny2GetDestinyManifest(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetDestinyManifest200Response>>;\n    public destiny2GetDestinyManifest(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetDestinyManifest200Response>(`${this.configuration.basePath}/Destiny2/Manifest/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets historical stats for indicated character.\n     * @param characterId The id of the character to retrieve. You can omit this character ID or set it to 0 to get aggregate stats across all characters.\n     * @param destinyMembershipId The Destiny membershipId of the user to retrieve.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param dayend Last day to return when daily stats are requested. Use the format YYYY-MM-DD. Currently, we cannot allow more than 31 days of daily data to be requested in a single request.\n     * @param daystart First day to return when daily stats are requested. Use the format YYYY-MM-DD. Currently, we cannot allow more than 31 days of daily data to be requested in a single request.\n     * @param groups Group of stats to include, otherwise only general stats are returned. Comma separated list is allowed. Values: General, Weapons, Medals\n     * @param modes Game modes to return. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.\n     * @param periodType Indicates a specific period type to return. Optional. May be: Daily, AllTime, or Activity\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetHistoricalStats(characterId: number, destinyMembershipId: number, membershipType: number, dayend?: string, daystart?: string, groups?: Array<number>, modes?: Array<number>, periodType?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetHistoricalStats200Response>;\n    public destiny2GetHistoricalStats(characterId: number, destinyMembershipId: number, membershipType: number, dayend?: string, daystart?: string, groups?: Array<number>, modes?: Array<number>, periodType?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetHistoricalStats200Response>>;\n    public destiny2GetHistoricalStats(characterId: number, destinyMembershipId: number, membershipType: number, dayend?: string, daystart?: string, groups?: Array<number>, modes?: Array<number>, periodType?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetHistoricalStats200Response>>;\n    public destiny2GetHistoricalStats(characterId: number, destinyMembershipId: number, membershipType: number, dayend?: string, daystart?: string, groups?: Array<number>, modes?: Array<number>, periodType?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (characterId === null || characterId === undefined) {\n            throw new Error('Required parameter characterId was null or undefined when calling destiny2GetHistoricalStats.');\n        }\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetHistoricalStats.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetHistoricalStats.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (dayend !== undefined && dayend !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>dayend, 'dayend');\n        }\n        if (daystart !== undefined && daystart !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>daystart, 'daystart');\n        }\n        if (groups) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                groups.join(COLLECTION_FORMATS['csv']), 'groups');\n        }\n        if (modes) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                modes.join(COLLECTION_FORMATS['csv']), 'modes');\n        }\n        if (periodType !== undefined && periodType !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>periodType, 'periodType');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetHistoricalStats200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Account/${encodeURIComponent(String(destinyMembershipId))}/Character/${encodeURIComponent(String(characterId))}/Stats/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets historical stats definitions.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetHistoricalStatsDefinition(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetHistoricalStatsDefinition200Response>;\n    public destiny2GetHistoricalStatsDefinition(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetHistoricalStatsDefinition200Response>>;\n    public destiny2GetHistoricalStatsDefinition(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetHistoricalStatsDefinition200Response>>;\n    public destiny2GetHistoricalStatsDefinition(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetHistoricalStatsDefinition200Response>(`${this.configuration.basePath}/Destiny2/Stats/Definition/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets aggregate historical stats organized around each character for a given account.\n     * @param destinyMembershipId The Destiny membershipId of the user to retrieve.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param groups Groups of stats to include, otherwise only general stats are returned. Comma separated list is allowed. Values: General, Weapons, Medals.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetHistoricalStatsForAccount(destinyMembershipId: number, membershipType: number, groups?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetHistoricalStatsForAccount200Response>;\n    public destiny2GetHistoricalStatsForAccount(destinyMembershipId: number, membershipType: number, groups?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetHistoricalStatsForAccount200Response>>;\n    public destiny2GetHistoricalStatsForAccount(destinyMembershipId: number, membershipType: number, groups?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetHistoricalStatsForAccount200Response>>;\n    public destiny2GetHistoricalStatsForAccount(destinyMembershipId: number, membershipType: number, groups?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetHistoricalStatsForAccount.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetHistoricalStatsForAccount.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (groups) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                groups.join(COLLECTION_FORMATS['csv']), 'groups');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetHistoricalStatsForAccount200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Account/${encodeURIComponent(String(destinyMembershipId))}/Stats/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Retrieve the details of an instanced Destiny Item. An instanced Destiny item is one with an ItemInstanceId. Non-instanced items, such as materials, have no useful instance-specific details and thus are not queryable here.\n     * @param destinyMembershipId The membership ID of the destiny profile.\n     * @param itemInstanceId The Instance ID of the destiny item.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param components A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetItem(destinyMembershipId: number, itemInstanceId: number, membershipType: number, components?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetItem200Response>;\n    public destiny2GetItem(destinyMembershipId: number, itemInstanceId: number, membershipType: number, components?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetItem200Response>>;\n    public destiny2GetItem(destinyMembershipId: number, itemInstanceId: number, membershipType: number, components?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetItem200Response>>;\n    public destiny2GetItem(destinyMembershipId: number, itemInstanceId: number, membershipType: number, components?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetItem.');\n        }\n        if (itemInstanceId === null || itemInstanceId === undefined) {\n            throw new Error('Required parameter itemInstanceId was null or undefined when calling destiny2GetItem.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetItem.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (components) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                components.join(COLLECTION_FORMATS['csv']), 'components');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetItem200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Profile/${encodeURIComponent(String(destinyMembershipId))}/Item/${encodeURIComponent(String(itemInstanceId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets leaderboards with the signed in user\\&#39;s friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint has not yet been implemented. It is being returned for a preview of future functionality, and for public comment/suggestion/preparation.\n     * @param destinyMembershipId The Destiny membershipId of the user to retrieve.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param maxtop Maximum number of top players to return. Use a large number to get entire leaderboard.\n     * @param modes List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.\n     * @param statid ID of stat to return rather than returning all Leaderboard stats.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetLeaderboards(destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetClanLeaderboards200Response>;\n    public destiny2GetLeaderboards(destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetLeaderboards(destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetLeaderboards(destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetLeaderboards.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetLeaderboards.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (maxtop !== undefined && maxtop !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>maxtop, 'maxtop');\n        }\n        if (modes !== undefined && modes !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>modes, 'modes');\n        }\n        if (statid !== undefined && statid !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>statid, 'statid');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetClanLeaderboards200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Account/${encodeURIComponent(String(destinyMembershipId))}/Stats/Leaderboards/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets leaderboards with the signed in user\\&#39;s friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.\n     * @param characterId The specific character to build the leaderboard around for the provided Destiny Membership.\n     * @param destinyMembershipId The Destiny membershipId of the user to retrieve.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param maxtop Maximum number of top players to return. Use a large number to get entire leaderboard.\n     * @param modes List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.\n     * @param statid ID of stat to return rather than returning all Leaderboard stats.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetLeaderboardsForCharacter(characterId: number, destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetClanLeaderboards200Response>;\n    public destiny2GetLeaderboardsForCharacter(characterId: number, destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetLeaderboardsForCharacter(characterId: number, destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetLeaderboardsForCharacter(characterId: number, destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (characterId === null || characterId === undefined) {\n            throw new Error('Required parameter characterId was null or undefined when calling destiny2GetLeaderboardsForCharacter.');\n        }\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetLeaderboardsForCharacter.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetLeaderboardsForCharacter.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (maxtop !== undefined && maxtop !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>maxtop, 'maxtop');\n        }\n        if (modes !== undefined && modes !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>modes, 'modes');\n        }\n        if (statid !== undefined && statid !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>statid, 'statid');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetClanLeaderboards200Response>(`${this.configuration.basePath}/Destiny2/Stats/Leaderboards/${encodeURIComponent(String(membershipType))}/${encodeURIComponent(String(destinyMembershipId))}/${encodeURIComponent(String(characterId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a summary information about all profiles linked to the requesting membership type/membership ID that have valid Destiny information. The passed-in Membership Type/Membership ID may be a Bungie.Net membership or a Destiny membership. It only returns the minimal amount of data to begin making more substantive requests, but will hopefully serve as a useful alternative to UserServices for people who just care about Destiny data. Note that it will only return linked accounts whose linkages you are allowed to view.\n     * @param membershipId The ID of the membership whose linked Destiny accounts you want returned. Make sure your membership ID matches its Membership Type: don\\&#39;t pass us a PSN membership ID and the XBox membership type, it\\&#39;s not going to work!\n     * @param membershipType The type for the membership whose linked Destiny accounts you want returned.\n     * @param getAllMemberships (optional) if set to \\&#39;true\\&#39;, all memberships regardless of whether they\\&#39;re obscured by overrides will be returned. Normal privacy restrictions on account linking will still apply no matter what.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetLinkedProfiles(membershipId: number, membershipType: number, getAllMemberships?: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetLinkedProfiles200Response>;\n    public destiny2GetLinkedProfiles(membershipId: number, membershipType: number, getAllMemberships?: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetLinkedProfiles200Response>>;\n    public destiny2GetLinkedProfiles(membershipId: number, membershipType: number, getAllMemberships?: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetLinkedProfiles200Response>>;\n    public destiny2GetLinkedProfiles(membershipId: number, membershipType: number, getAllMemberships?: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (membershipId === null || membershipId === undefined) {\n            throw new Error('Required parameter membershipId was null or undefined when calling destiny2GetLinkedProfiles.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetLinkedProfiles.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (getAllMemberships !== undefined && getAllMemberships !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>getAllMemberships, 'getAllMemberships');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetLinkedProfiles200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Profile/${encodeURIComponent(String(membershipId))}/LinkedProfiles/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets the available post game carnage report for the activity ID.\n     * @param activityId The ID of the activity whose PGCR is requested.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetPostGameCarnageReport(activityId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetPostGameCarnageReport200Response>;\n    public destiny2GetPostGameCarnageReport(activityId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetPostGameCarnageReport200Response>>;\n    public destiny2GetPostGameCarnageReport(activityId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetPostGameCarnageReport200Response>>;\n    public destiny2GetPostGameCarnageReport(activityId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (activityId === null || activityId === undefined) {\n            throw new Error('Required parameter activityId was null or undefined when calling destiny2GetPostGameCarnageReport.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetPostGameCarnageReport200Response>(`${this.configuration.basePath}/Destiny2/Stats/PostGameCarnageReport/${encodeURIComponent(String(activityId))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns Destiny Profile information for the supplied membership.\n     * @param destinyMembershipId Destiny membership ID.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param components A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetProfile(destinyMembershipId: number, membershipType: number, components?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetProfile200Response>;\n    public destiny2GetProfile(destinyMembershipId: number, membershipType: number, components?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetProfile200Response>>;\n    public destiny2GetProfile(destinyMembershipId: number, membershipType: number, components?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetProfile200Response>>;\n    public destiny2GetProfile(destinyMembershipId: number, membershipType: number, components?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetProfile.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetProfile.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (components) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                components.join(COLLECTION_FORMATS['csv']), 'components');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetProfile200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Profile/${encodeURIComponent(String(destinyMembershipId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets custom localized content for the milestone of the given hash, if it exists.\n     * @param milestoneHash The identifier for the milestone to be returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetPublicMilestoneContent(milestoneHash: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetPublicMilestoneContent200Response>;\n    public destiny2GetPublicMilestoneContent(milestoneHash: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetPublicMilestoneContent200Response>>;\n    public destiny2GetPublicMilestoneContent(milestoneHash: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetPublicMilestoneContent200Response>>;\n    public destiny2GetPublicMilestoneContent(milestoneHash: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (milestoneHash === null || milestoneHash === undefined) {\n            throw new Error('Required parameter milestoneHash was null or undefined when calling destiny2GetPublicMilestoneContent.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetPublicMilestoneContent200Response>(`${this.configuration.basePath}/Destiny2/Milestones/${encodeURIComponent(String(milestoneHash))}/Content/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets public information about currently available Milestones.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetPublicMilestones(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetPublicMilestones200Response>;\n    public destiny2GetPublicMilestones(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetPublicMilestones200Response>>;\n    public destiny2GetPublicMilestones(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetPublicMilestones200Response>>;\n    public destiny2GetPublicMilestones(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetPublicMilestones200Response>(`${this.configuration.basePath}/Destiny2/Milestones/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get items available from vendors where the vendors have items for sale that are common for everyone. If any portion of the Vendor\\&#39;s available inventory is character or account specific, we will be unable to return their data from this endpoint due to the way that available inventory is computed. As I am often guilty of saying: \\&#39;It\\&#39;s a long story...\\&#39;\n     * @param components A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetPublicVendors(components?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetPublicVendors200Response>;\n    public destiny2GetPublicVendors(components?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetPublicVendors200Response>>;\n    public destiny2GetPublicVendors(components?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetPublicVendors200Response>>;\n    public destiny2GetPublicVendors(components?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (components) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                components.join(COLLECTION_FORMATS['csv']), 'components');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetPublicVendors200Response>(`${this.configuration.basePath}/Destiny2/Vendors/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets details about unique weapon usage, including all exotic weapons.\n     * @param characterId The id of the character to retrieve.\n     * @param destinyMembershipId The Destiny membershipId of the user to retrieve.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetUniqueWeaponHistory(characterId: number, destinyMembershipId: number, membershipType: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetUniqueWeaponHistory200Response>;\n    public destiny2GetUniqueWeaponHistory(characterId: number, destinyMembershipId: number, membershipType: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetUniqueWeaponHistory200Response>>;\n    public destiny2GetUniqueWeaponHistory(characterId: number, destinyMembershipId: number, membershipType: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetUniqueWeaponHistory200Response>>;\n    public destiny2GetUniqueWeaponHistory(characterId: number, destinyMembershipId: number, membershipType: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (characterId === null || characterId === undefined) {\n            throw new Error('Required parameter characterId was null or undefined when calling destiny2GetUniqueWeaponHistory.');\n        }\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetUniqueWeaponHistory.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetUniqueWeaponHistory.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetUniqueWeaponHistory200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Account/${encodeURIComponent(String(destinyMembershipId))}/Character/${encodeURIComponent(String(characterId))}/Stats/UniqueWeapons/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get the details of a specific Vendor.\n     * @param characterId The Destiny Character ID of the character for whom we\\&#39;re getting vendor info.\n     * @param destinyMembershipId Destiny membership ID of another user. You may be denied.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param vendorHash The Hash identifier of the Vendor to be returned.\n     * @param components A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetVendor(characterId: number, destinyMembershipId: number, membershipType: number, vendorHash: number, components?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetVendor200Response>;\n    public destiny2GetVendor(characterId: number, destinyMembershipId: number, membershipType: number, vendorHash: number, components?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetVendor200Response>>;\n    public destiny2GetVendor(characterId: number, destinyMembershipId: number, membershipType: number, vendorHash: number, components?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetVendor200Response>>;\n    public destiny2GetVendor(characterId: number, destinyMembershipId: number, membershipType: number, vendorHash: number, components?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (characterId === null || characterId === undefined) {\n            throw new Error('Required parameter characterId was null or undefined when calling destiny2GetVendor.');\n        }\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetVendor.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetVendor.');\n        }\n        if (vendorHash === null || vendorHash === undefined) {\n            throw new Error('Required parameter vendorHash was null or undefined when calling destiny2GetVendor.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (components) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                components.join(COLLECTION_FORMATS['csv']), 'components');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetVendor200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Profile/${encodeURIComponent(String(destinyMembershipId))}/Character/${encodeURIComponent(String(characterId))}/Vendors/${encodeURIComponent(String(vendorHash))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get currently available vendors from the list of vendors that can possibly have rotating inventory. Note that this does not include things like preview vendors and vendors-as-kiosks, neither of whom have rotating/dynamic inventories. Use their definitions as-is for those.\n     * @param characterId The Destiny Character ID of the character for whom we\\&#39;re getting vendor info.\n     * @param destinyMembershipId Destiny membership ID of another user. You may be denied.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param components A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.\n     * @param filter The filter of what vendors and items to return, if any.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetVendors(characterId: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, filter?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetVendors200Response>;\n    public destiny2GetVendors(characterId: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, filter?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetVendors200Response>>;\n    public destiny2GetVendors(characterId: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, filter?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetVendors200Response>>;\n    public destiny2GetVendors(characterId: number, destinyMembershipId: number, membershipType: number, components?: Array<number>, filter?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (characterId === null || characterId === undefined) {\n            throw new Error('Required parameter characterId was null or undefined when calling destiny2GetVendors.');\n        }\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetVendors.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetVendors.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (components) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                components.join(COLLECTION_FORMATS['csv']), 'components');\n        }\n        if (filter !== undefined && filter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>filter, 'filter');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetVendors200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Profile/${encodeURIComponent(String(destinyMembershipId))}/Character/${encodeURIComponent(String(characterId))}/Vendors/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insert a plug into a socketed item. I know how it sounds, but I assure you it\\&#39;s much more G-rated than you might be guessing. We haven\\&#39;t decided yet whether this will be able to insert plugs that have side effects, but if we do it will require special scope permission for an application attempting to do so. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. Request must include proof of permission for \\&#39;InsertPlugs\\&#39; from the account owner.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2InsertSocketPlug(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2InsertSocketPlug200Response>;\n    public destiny2InsertSocketPlug(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2InsertSocketPlug200Response>>;\n    public destiny2InsertSocketPlug(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2InsertSocketPlug200Response>>;\n    public destiny2InsertSocketPlug(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<Destiny2InsertSocketPlug200Response>(`${this.configuration.basePath}/Destiny2/Actions/Items/InsertSocketPlug/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insert a \\&#39;free\\&#39; plug into an item\\&#39;s socket. This does not require \\&#39;Advanced Write Action\\&#39; authorization and is available to 3rd-party apps, but will only work on \\&#39;free and reversible\\&#39; socket actions (Perks, Armor Mods, Shaders, Ornaments, etc.). You must have a valid Destiny Account, and the character must either be in a social space, in orbit, or offline.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2InsertSocketPlugFree(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2InsertSocketPlug200Response>;\n    public destiny2InsertSocketPlugFree(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2InsertSocketPlug200Response>>;\n    public destiny2InsertSocketPlugFree(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2InsertSocketPlug200Response>>;\n    public destiny2InsertSocketPlugFree(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<Destiny2InsertSocketPlug200Response>(`${this.configuration.basePath}/Destiny2/Actions/Items/InsertSocketPlugFree/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Extract an item from the Postmaster, with whatever implications that may entail. You must have a valid Destiny account. You must also pass BOTH a reference AND an instance ID if it\\&#39;s an instanced item.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2PullFromPostmaster(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2PullFromPostmaster(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2PullFromPostmaster(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2PullFromPostmaster(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Actions/Items/PullFromPostmaster/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Report a player that you met in an activity that was engaging in ToS-violating activities. Both you and the offending player must have played in the activityId passed in. Please use this judiciously and only when you have strong suspicions of violation, pretty please.\n     * @param activityId The ID of the activity where you ran into the brigand that you\\&#39;re reporting.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2ReportOffensivePostGameCarnageReportPlayer(activityId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2ReportOffensivePostGameCarnageReportPlayer(activityId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2ReportOffensivePostGameCarnageReportPlayer(activityId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2ReportOffensivePostGameCarnageReportPlayer(activityId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (activityId === null || activityId === undefined) {\n            throw new Error('Required parameter activityId was null or undefined when calling destiny2ReportOffensivePostGameCarnageReportPlayer.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Stats/PostGameCarnageReport/${encodeURIComponent(String(activityId))}/Report/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets a page list of Destiny items.\n     * @param searchTerm The string to use when searching for Destiny entities.\n     * @param type The type of entity for whom you would like results. These correspond to the entity\\&#39;s definition contract name. For instance, if you are looking for items, this property should be \\&#39;DestinyInventoryItemDefinition\\&#39;.\n     * @param page Page number to return, starting with 0.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2SearchDestinyEntities(searchTerm: string, type: string, page?: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2SearchDestinyEntities200Response>;\n    public destiny2SearchDestinyEntities(searchTerm: string, type: string, page?: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2SearchDestinyEntities200Response>>;\n    public destiny2SearchDestinyEntities(searchTerm: string, type: string, page?: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2SearchDestinyEntities200Response>>;\n    public destiny2SearchDestinyEntities(searchTerm: string, type: string, page?: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (searchTerm === null || searchTerm === undefined) {\n            throw new Error('Required parameter searchTerm was null or undefined when calling destiny2SearchDestinyEntities.');\n        }\n        if (type === null || type === undefined) {\n            throw new Error('Required parameter type was null or undefined when calling destiny2SearchDestinyEntities.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (page !== undefined && page !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>page, 'page');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2SearchDestinyEntities200Response>(`${this.configuration.basePath}/Destiny2/Armory/Search/${encodeURIComponent(String(type))}/${encodeURIComponent(String(searchTerm))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of Destiny memberships given a global Bungie Display Name. This method will hide overridden memberships due to cross save.\n     * @param membershipType A valid non-BungieNet membership type, or All. Indicates which memberships to return. You probably want this set to All.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2SearchDestinyPlayerByBungieName(membershipType: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2SearchDestinyPlayerByBungieName200Response>;\n    public destiny2SearchDestinyPlayerByBungieName(membershipType: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2SearchDestinyPlayerByBungieName200Response>>;\n    public destiny2SearchDestinyPlayerByBungieName(membershipType: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2SearchDestinyPlayerByBungieName200Response>>;\n    public destiny2SearchDestinyPlayerByBungieName(membershipType: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2SearchDestinyPlayerByBungieName.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<Destiny2SearchDestinyPlayerByBungieName200Response>(`${this.configuration.basePath}/Destiny2/SearchDestinyPlayerByBungieName/${encodeURIComponent(String(membershipType))}/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Set the Lock State for an instanced item. You must have a valid Destiny Account.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2SetItemLockState(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2SetItemLockState(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2SetItemLockState(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2SetItemLockState(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Actions/Items/SetLockState/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Set the Tracking State for an instanced item, if that item is a Quest or Bounty. You must have a valid Destiny Account. Yeah, it\\&#39;s an item.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2SetQuestTrackedState(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2SetQuestTrackedState(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2SetQuestTrackedState(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2SetQuestTrackedState(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Actions/Items/SetTrackedState/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Snapshot a loadout with the currently equipped items.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2SnapshotLoadout(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2SnapshotLoadout(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2SnapshotLoadout(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2SnapshotLoadout(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Actions/Loadouts/SnapshotLoadout/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Transfer an item to/from your vault. You must have a valid Destiny account. You must also pass BOTH a reference AND an instance ID if it\\&#39;s an instanced item. itshappening.gif\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2TransferItem(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2TransferItem(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2TransferItem(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2TransferItem(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Actions/Items/TransferItem/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Update the color, icon, and name of a loadout.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2UpdateLoadoutIdentifiers(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public destiny2UpdateLoadoutIdentifiers(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public destiny2UpdateLoadoutIdentifiers(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public destiny2UpdateLoadoutIdentifiers(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Destiny2/Actions/Loadouts/UpdateLoadoutIdentifiers/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { FireteamGetAvailableClanFireteams200Response } from '../model/fireteamGetAvailableClanFireteams200Response';\n// @ts-ignore\nimport { FireteamGetClanFireteam200Response } from '../model/fireteamGetClanFireteam200Response';\n// @ts-ignore\nimport { FireteamGetMyClanFireteams200Response } from '../model/fireteamGetMyClanFireteams200Response';\n// @ts-ignore\nimport { GroupV2EditGroup200Response } from '../model/groupV2EditGroup200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FireteamService {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Gets a count of all active non-public fireteams for the specified clan. Maximum value returned is 25.\n     * @param groupId The group id of the clan.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public fireteamGetActivePrivateClanFireteamCount(groupId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2EditGroup200Response>;\n    public fireteamGetActivePrivateClanFireteamCount(groupId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n    public fireteamGetActivePrivateClanFireteamCount(groupId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n    public fireteamGetActivePrivateClanFireteamCount(groupId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling fireteamGetActivePrivateClanFireteamCount.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<GroupV2EditGroup200Response>(`${this.configuration.basePath}/Fireteam/Clan/${encodeURIComponent(String(groupId))}/ActiveCount/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets a listing of all of this clan\\&#39;s fireteams that are have available slots. Caller is not checked for join criteria so caching is maximized.\n     * @param activityType The activity type to filter by.\n     * @param dateRange The date range to grab available fireteams.\n     * @param groupId The group id of the clan.\n     * @param page Zero based page\n     * @param platform The platform filter.\n     * @param publicOnly Determines public/private filtering.\n     * @param slotFilter Filters based on available slots\n     * @param excludeImmediate If you wish the result to exclude immediate fireteams, set this to true. Immediate-only can be forced using the dateRange enum.\n     * @param langFilter An optional language filter.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public fireteamGetAvailableClanFireteams(activityType: number, dateRange: number, groupId: number, page: number, platform: number, publicOnly: number, slotFilter: number, excludeImmediate?: boolean, langFilter?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<FireteamGetAvailableClanFireteams200Response>;\n    public fireteamGetAvailableClanFireteams(activityType: number, dateRange: number, groupId: number, page: number, platform: number, publicOnly: number, slotFilter: number, excludeImmediate?: boolean, langFilter?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<FireteamGetAvailableClanFireteams200Response>>;\n    public fireteamGetAvailableClanFireteams(activityType: number, dateRange: number, groupId: number, page: number, platform: number, publicOnly: number, slotFilter: number, excludeImmediate?: boolean, langFilter?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<FireteamGetAvailableClanFireteams200Response>>;\n    public fireteamGetAvailableClanFireteams(activityType: number, dateRange: number, groupId: number, page: number, platform: number, publicOnly: number, slotFilter: number, excludeImmediate?: boolean, langFilter?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (activityType === null || activityType === undefined) {\n            throw new Error('Required parameter activityType was null or undefined when calling fireteamGetAvailableClanFireteams.');\n        }\n        if (dateRange === null || dateRange === undefined) {\n            throw new Error('Required parameter dateRange was null or undefined when calling fireteamGetAvailableClanFireteams.');\n        }\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling fireteamGetAvailableClanFireteams.');\n        }\n        if (page === null || page === undefined) {\n            throw new Error('Required parameter page was null or undefined when calling fireteamGetAvailableClanFireteams.');\n        }\n        if (platform === null || platform === undefined) {\n            throw new Error('Required parameter platform was null or undefined when calling fireteamGetAvailableClanFireteams.');\n        }\n        if (publicOnly === null || publicOnly === undefined) {\n            throw new Error('Required parameter publicOnly was null or undefined when calling fireteamGetAvailableClanFireteams.');\n        }\n        if (slotFilter === null || slotFilter === undefined) {\n            throw new Error('Required parameter slotFilter was null or undefined when calling fireteamGetAvailableClanFireteams.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (excludeImmediate !== undefined && excludeImmediate !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>excludeImmediate, 'excludeImmediate');\n        }\n        if (langFilter !== undefined && langFilter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>langFilter, 'langFilter');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<FireteamGetAvailableClanFireteams200Response>(`${this.configuration.basePath}/Fireteam/Clan/${encodeURIComponent(String(groupId))}/Available/${encodeURIComponent(String(platform))}/${encodeURIComponent(String(activityType))}/${encodeURIComponent(String(dateRange))}/${encodeURIComponent(String(slotFilter))}/${encodeURIComponent(String(publicOnly))}/${encodeURIComponent(String(page))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets a specific fireteam.\n     * @param fireteamId The unique id of the fireteam.\n     * @param groupId The group id of the clan.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public fireteamGetClanFireteam(fireteamId: number, groupId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<FireteamGetClanFireteam200Response>;\n    public fireteamGetClanFireteam(fireteamId: number, groupId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<FireteamGetClanFireteam200Response>>;\n    public fireteamGetClanFireteam(fireteamId: number, groupId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<FireteamGetClanFireteam200Response>>;\n    public fireteamGetClanFireteam(fireteamId: number, groupId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (fireteamId === null || fireteamId === undefined) {\n            throw new Error('Required parameter fireteamId was null or undefined when calling fireteamGetClanFireteam.');\n        }\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling fireteamGetClanFireteam.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<FireteamGetClanFireteam200Response>(`${this.configuration.basePath}/Fireteam/Clan/${encodeURIComponent(String(groupId))}/Summary/${encodeURIComponent(String(fireteamId))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets a listing of all fireteams that caller is an applicant, a member, or an alternate of.\n     * @param groupId The group id of the clan. (This parameter is ignored unless the optional query parameter groupFilter is true).\n     * @param includeClosed If true, return fireteams that have been closed.\n     * @param page Deprecated parameter, ignored.\n     * @param platform The platform filter.\n     * @param groupFilter If true, filter by clan. Otherwise, ignore the clan and show all of the user\\&#39;s fireteams.\n     * @param langFilter An optional language filter.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public fireteamGetMyClanFireteams(groupId: number, includeClosed: boolean, page: number, platform: number, groupFilter?: boolean, langFilter?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<FireteamGetMyClanFireteams200Response>;\n    public fireteamGetMyClanFireteams(groupId: number, includeClosed: boolean, page: number, platform: number, groupFilter?: boolean, langFilter?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<FireteamGetMyClanFireteams200Response>>;\n    public fireteamGetMyClanFireteams(groupId: number, includeClosed: boolean, page: number, platform: number, groupFilter?: boolean, langFilter?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<FireteamGetMyClanFireteams200Response>>;\n    public fireteamGetMyClanFireteams(groupId: number, includeClosed: boolean, page: number, platform: number, groupFilter?: boolean, langFilter?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling fireteamGetMyClanFireteams.');\n        }\n        if (includeClosed === null || includeClosed === undefined) {\n            throw new Error('Required parameter includeClosed was null or undefined when calling fireteamGetMyClanFireteams.');\n        }\n        if (page === null || page === undefined) {\n            throw new Error('Required parameter page was null or undefined when calling fireteamGetMyClanFireteams.');\n        }\n        if (platform === null || platform === undefined) {\n            throw new Error('Required parameter platform was null or undefined when calling fireteamGetMyClanFireteams.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (groupFilter !== undefined && groupFilter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>groupFilter, 'groupFilter');\n        }\n        if (langFilter !== undefined && langFilter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>langFilter, 'langFilter');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<FireteamGetMyClanFireteams200Response>(`${this.configuration.basePath}/Fireteam/Clan/${encodeURIComponent(String(groupId))}/My/${encodeURIComponent(String(platform))}/${encodeURIComponent(String(includeClosed))}/${encodeURIComponent(String(page))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets a listing of all public fireteams starting now with open slots. Caller is not checked for join criteria so caching is maximized.\n     * @param activityType The activity type to filter by.\n     * @param dateRange The date range to grab available fireteams.\n     * @param page Zero based page\n     * @param platform The platform filter.\n     * @param slotFilter Filters based on available slots\n     * @param excludeImmediate If you wish the result to exclude immediate fireteams, set this to true. Immediate-only can be forced using the dateRange enum.\n     * @param langFilter An optional language filter.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public fireteamSearchPublicAvailableClanFireteams(activityType: number, dateRange: number, page: number, platform: number, slotFilter: number, excludeImmediate?: boolean, langFilter?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<FireteamGetAvailableClanFireteams200Response>;\n    public fireteamSearchPublicAvailableClanFireteams(activityType: number, dateRange: number, page: number, platform: number, slotFilter: number, excludeImmediate?: boolean, langFilter?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<FireteamGetAvailableClanFireteams200Response>>;\n    public fireteamSearchPublicAvailableClanFireteams(activityType: number, dateRange: number, page: number, platform: number, slotFilter: number, excludeImmediate?: boolean, langFilter?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<FireteamGetAvailableClanFireteams200Response>>;\n    public fireteamSearchPublicAvailableClanFireteams(activityType: number, dateRange: number, page: number, platform: number, slotFilter: number, excludeImmediate?: boolean, langFilter?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (activityType === null || activityType === undefined) {\n            throw new Error('Required parameter activityType was null or undefined when calling fireteamSearchPublicAvailableClanFireteams.');\n        }\n        if (dateRange === null || dateRange === undefined) {\n            throw new Error('Required parameter dateRange was null or undefined when calling fireteamSearchPublicAvailableClanFireteams.');\n        }\n        if (page === null || page === undefined) {\n            throw new Error('Required parameter page was null or undefined when calling fireteamSearchPublicAvailableClanFireteams.');\n        }\n        if (platform === null || platform === undefined) {\n            throw new Error('Required parameter platform was null or undefined when calling fireteamSearchPublicAvailableClanFireteams.');\n        }\n        if (slotFilter === null || slotFilter === undefined) {\n            throw new Error('Required parameter slotFilter was null or undefined when calling fireteamSearchPublicAvailableClanFireteams.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (excludeImmediate !== undefined && excludeImmediate !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>excludeImmediate, 'excludeImmediate');\n        }\n        if (langFilter !== undefined && langFilter !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>langFilter, 'langFilter');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<FireteamGetAvailableClanFireteams200Response>(`${this.configuration.basePath}/Fireteam/Search/Available/${encodeURIComponent(String(platform))}/${encodeURIComponent(String(activityType))}/${encodeURIComponent(String(dateRange))}/${encodeURIComponent(String(slotFilter))}/${encodeURIComponent(String(page))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { ForumGetForumTagSuggestions200Response } from '../model/forumGetForumTagSuggestions200Response';\n// @ts-ignore\nimport { ForumGetRecruitmentThreadSummaries200Response } from '../model/forumGetRecruitmentThreadSummaries200Response';\n// @ts-ignore\nimport { ForumGetTopicForContent200Response } from '../model/forumGetTopicForContent200Response';\n// @ts-ignore\nimport { ForumGetTopicsPaged200Response } from '../model/forumGetTopicsPaged200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ForumService {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Gets a listing of all topics marked as part of the core group.\n     * @param categoryFilter The category filter.\n     * @param page Zero base page\n     * @param quickDate The date filter.\n     * @param sort The sort mode.\n     * @param locales Comma seperated list of locales posts must match to return in the result list. Default \\&#39;en\\&#39;\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public forumGetCoreTopicsPaged(categoryFilter: number, page: number, quickDate: number, sort: number, locales?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetTopicsPaged200Response>;\n    public forumGetCoreTopicsPaged(categoryFilter: number, page: number, quickDate: number, sort: number, locales?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetTopicsPaged200Response>>;\n    public forumGetCoreTopicsPaged(categoryFilter: number, page: number, quickDate: number, sort: number, locales?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetTopicsPaged200Response>>;\n    public forumGetCoreTopicsPaged(categoryFilter: number, page: number, quickDate: number, sort: number, locales?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (categoryFilter === null || categoryFilter === undefined) {\n            throw new Error('Required parameter categoryFilter was null or undefined when calling forumGetCoreTopicsPaged.');\n        }\n        if (page === null || page === undefined) {\n            throw new Error('Required parameter page was null or undefined when calling forumGetCoreTopicsPaged.');\n        }\n        if (quickDate === null || quickDate === undefined) {\n            throw new Error('Required parameter quickDate was null or undefined when calling forumGetCoreTopicsPaged.');\n        }\n        if (sort === null || sort === undefined) {\n            throw new Error('Required parameter sort was null or undefined when calling forumGetCoreTopicsPaged.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (locales !== undefined && locales !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>locales, 'locales');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ForumGetTopicsPaged200Response>(`${this.configuration.basePath}/Forum/GetCoreTopicsPaged/${encodeURIComponent(String(page))}/${encodeURIComponent(String(sort))}/${encodeURIComponent(String(quickDate))}/${encodeURIComponent(String(categoryFilter))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets tag suggestions based on partial text entry, matching them with other tags previously used in the forums.\n     * @param partialtag The partial tag input to generate suggestions from.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public forumGetForumTagSuggestions(partialtag?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetForumTagSuggestions200Response>;\n    public forumGetForumTagSuggestions(partialtag?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetForumTagSuggestions200Response>>;\n    public forumGetForumTagSuggestions(partialtag?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetForumTagSuggestions200Response>>;\n    public forumGetForumTagSuggestions(partialtag?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (partialtag !== undefined && partialtag !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>partialtag, 'partialtag');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ForumGetForumTagSuggestions200Response>(`${this.configuration.basePath}/Forum/GetForumTagSuggestions/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets the specified forum poll.\n     * @param topicId The post id of the topic that has the poll.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public forumGetPoll(topicId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetTopicsPaged200Response>;\n    public forumGetPoll(topicId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetTopicsPaged200Response>>;\n    public forumGetPoll(topicId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetTopicsPaged200Response>>;\n    public forumGetPoll(topicId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (topicId === null || topicId === undefined) {\n            throw new Error('Required parameter topicId was null or undefined when calling forumGetPoll.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ForumGetTopicsPaged200Response>(`${this.configuration.basePath}/Forum/Poll/${encodeURIComponent(String(topicId))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the post specified and its immediate parent.\n     * @param childPostId \n     * @param showbanned If this value is not null or empty, banned posts are requested to be returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public forumGetPostAndParent(childPostId: number, showbanned?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetTopicsPaged200Response>;\n    public forumGetPostAndParent(childPostId: number, showbanned?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetTopicsPaged200Response>>;\n    public forumGetPostAndParent(childPostId: number, showbanned?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetTopicsPaged200Response>>;\n    public forumGetPostAndParent(childPostId: number, showbanned?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (childPostId === null || childPostId === undefined) {\n            throw new Error('Required parameter childPostId was null or undefined when calling forumGetPostAndParent.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (showbanned !== undefined && showbanned !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>showbanned, 'showbanned');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ForumGetTopicsPaged200Response>(`${this.configuration.basePath}/Forum/GetPostAndParent/${encodeURIComponent(String(childPostId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the post specified and its immediate parent of posts that are awaiting approval.\n     * @param childPostId \n     * @param showbanned If this value is not null or empty, banned posts are requested to be returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public forumGetPostAndParentAwaitingApproval(childPostId: number, showbanned?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetTopicsPaged200Response>;\n    public forumGetPostAndParentAwaitingApproval(childPostId: number, showbanned?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetTopicsPaged200Response>>;\n    public forumGetPostAndParentAwaitingApproval(childPostId: number, showbanned?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetTopicsPaged200Response>>;\n    public forumGetPostAndParentAwaitingApproval(childPostId: number, showbanned?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (childPostId === null || childPostId === undefined) {\n            throw new Error('Required parameter childPostId was null or undefined when calling forumGetPostAndParentAwaitingApproval.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (showbanned !== undefined && showbanned !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>showbanned, 'showbanned');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ForumGetTopicsPaged200Response>(`${this.configuration.basePath}/Forum/GetPostAndParentAwaitingApproval/${encodeURIComponent(String(childPostId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a thread of posts at the given parent, optionally returning replies to those posts as well as the original parent.\n     * @param getParentPost \n     * @param page \n     * @param pageSize \n     * @param parentPostId \n     * @param replySize \n     * @param rootThreadMode \n     * @param sortMode \n     * @param showbanned If this value is not null or empty, banned posts are requested to be returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public forumGetPostsThreadedPaged(getParentPost: boolean, page: number, pageSize: number, parentPostId: number, replySize: number, rootThreadMode: boolean, sortMode: number, showbanned?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetTopicsPaged200Response>;\n    public forumGetPostsThreadedPaged(getParentPost: boolean, page: number, pageSize: number, parentPostId: number, replySize: number, rootThreadMode: boolean, sortMode: number, showbanned?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetTopicsPaged200Response>>;\n    public forumGetPostsThreadedPaged(getParentPost: boolean, page: number, pageSize: number, parentPostId: number, replySize: number, rootThreadMode: boolean, sortMode: number, showbanned?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetTopicsPaged200Response>>;\n    public forumGetPostsThreadedPaged(getParentPost: boolean, page: number, pageSize: number, parentPostId: number, replySize: number, rootThreadMode: boolean, sortMode: number, showbanned?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (getParentPost === null || getParentPost === undefined) {\n            throw new Error('Required parameter getParentPost was null or undefined when calling forumGetPostsThreadedPaged.');\n        }\n        if (page === null || page === undefined) {\n            throw new Error('Required parameter page was null or undefined when calling forumGetPostsThreadedPaged.');\n        }\n        if (pageSize === null || pageSize === undefined) {\n            throw new Error('Required parameter pageSize was null or undefined when calling forumGetPostsThreadedPaged.');\n        }\n        if (parentPostId === null || parentPostId === undefined) {\n            throw new Error('Required parameter parentPostId was null or undefined when calling forumGetPostsThreadedPaged.');\n        }\n        if (replySize === null || replySize === undefined) {\n            throw new Error('Required parameter replySize was null or undefined when calling forumGetPostsThreadedPaged.');\n        }\n        if (rootThreadMode === null || rootThreadMode === undefined) {\n            throw new Error('Required parameter rootThreadMode was null or undefined when calling forumGetPostsThreadedPaged.');\n        }\n        if (sortMode === null || sortMode === undefined) {\n            throw new Error('Required parameter sortMode was null or undefined when calling forumGetPostsThreadedPaged.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (showbanned !== undefined && showbanned !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>showbanned, 'showbanned');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ForumGetTopicsPaged200Response>(`${this.configuration.basePath}/Forum/GetPostsThreadedPaged/${encodeURIComponent(String(parentPostId))}/${encodeURIComponent(String(page))}/${encodeURIComponent(String(pageSize))}/${encodeURIComponent(String(replySize))}/${encodeURIComponent(String(getParentPost))}/${encodeURIComponent(String(rootThreadMode))}/${encodeURIComponent(String(sortMode))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a thread of posts starting at the topicId of the input childPostId, optionally returning replies to those posts as well as the original parent.\n     * @param childPostId \n     * @param page \n     * @param pageSize \n     * @param replySize \n     * @param rootThreadMode \n     * @param sortMode \n     * @param showbanned If this value is not null or empty, banned posts are requested to be returned\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public forumGetPostsThreadedPagedFromChild(childPostId: number, page: number, pageSize: number, replySize: number, rootThreadMode: boolean, sortMode: number, showbanned?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetTopicsPaged200Response>;\n    public forumGetPostsThreadedPagedFromChild(childPostId: number, page: number, pageSize: number, replySize: number, rootThreadMode: boolean, sortMode: number, showbanned?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetTopicsPaged200Response>>;\n    public forumGetPostsThreadedPagedFromChild(childPostId: number, page: number, pageSize: number, replySize: number, rootThreadMode: boolean, sortMode: number, showbanned?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetTopicsPaged200Response>>;\n    public forumGetPostsThreadedPagedFromChild(childPostId: number, page: number, pageSize: number, replySize: number, rootThreadMode: boolean, sortMode: number, showbanned?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (childPostId === null || childPostId === undefined) {\n            throw new Error('Required parameter childPostId was null or undefined when calling forumGetPostsThreadedPagedFromChild.');\n        }\n        if (page === null || page === undefined) {\n            throw new Error('Required parameter page was null or undefined when calling forumGetPostsThreadedPagedFromChild.');\n        }\n        if (pageSize === null || pageSize === undefined) {\n            throw new Error('Required parameter pageSize was null or undefined when calling forumGetPostsThreadedPagedFromChild.');\n        }\n        if (replySize === null || replySize === undefined) {\n            throw new Error('Required parameter replySize was null or undefined when calling forumGetPostsThreadedPagedFromChild.');\n        }\n        if (rootThreadMode === null || rootThreadMode === undefined) {\n            throw new Error('Required parameter rootThreadMode was null or undefined when calling forumGetPostsThreadedPagedFromChild.');\n        }\n        if (sortMode === null || sortMode === undefined) {\n            throw new Error('Required parameter sortMode was null or undefined when calling forumGetPostsThreadedPagedFromChild.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (showbanned !== undefined && showbanned !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>showbanned, 'showbanned');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ForumGetTopicsPaged200Response>(`${this.configuration.basePath}/Forum/GetPostsThreadedPagedFromChild/${encodeURIComponent(String(childPostId))}/${encodeURIComponent(String(page))}/${encodeURIComponent(String(pageSize))}/${encodeURIComponent(String(replySize))}/${encodeURIComponent(String(rootThreadMode))}/${encodeURIComponent(String(sortMode))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Allows the caller to get a list of to 25 recruitment thread summary information objects.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public forumGetRecruitmentThreadSummaries(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetRecruitmentThreadSummaries200Response>;\n    public forumGetRecruitmentThreadSummaries(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetRecruitmentThreadSummaries200Response>>;\n    public forumGetRecruitmentThreadSummaries(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetRecruitmentThreadSummaries200Response>>;\n    public forumGetRecruitmentThreadSummaries(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<ForumGetRecruitmentThreadSummaries200Response>(`${this.configuration.basePath}/Forum/Recruit/Summaries/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets the post Id for the given content item\\&#39;s comments, if it exists.\n     * @param contentId \n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public forumGetTopicForContent(contentId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetTopicForContent200Response>;\n    public forumGetTopicForContent(contentId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetTopicForContent200Response>>;\n    public forumGetTopicForContent(contentId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetTopicForContent200Response>>;\n    public forumGetTopicForContent(contentId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (contentId === null || contentId === undefined) {\n            throw new Error('Required parameter contentId was null or undefined when calling forumGetTopicForContent.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ForumGetTopicForContent200Response>(`${this.configuration.basePath}/Forum/GetTopicForContent/${encodeURIComponent(String(contentId))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get topics from any forum.\n     * @param categoryFilter A category filter\n     * @param group The group, if any.\n     * @param page Zero paged page number\n     * @param pageSize Unused\n     * @param quickDate A date filter.\n     * @param sort The sort mode.\n     * @param locales Comma seperated list of locales posts must match to return in the result list. Default \\&#39;en\\&#39;\n     * @param tagstring The tags to search, if any.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public forumGetTopicsPaged(categoryFilter: number, group: number, page: number, pageSize: number, quickDate: number, sort: number, locales?: string, tagstring?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<ForumGetTopicsPaged200Response>;\n    public forumGetTopicsPaged(categoryFilter: number, group: number, page: number, pageSize: number, quickDate: number, sort: number, locales?: string, tagstring?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<ForumGetTopicsPaged200Response>>;\n    public forumGetTopicsPaged(categoryFilter: number, group: number, page: number, pageSize: number, quickDate: number, sort: number, locales?: string, tagstring?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<ForumGetTopicsPaged200Response>>;\n    public forumGetTopicsPaged(categoryFilter: number, group: number, page: number, pageSize: number, quickDate: number, sort: number, locales?: string, tagstring?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (categoryFilter === null || categoryFilter === undefined) {\n            throw new Error('Required parameter categoryFilter was null or undefined when calling forumGetTopicsPaged.');\n        }\n        if (group === null || group === undefined) {\n            throw new Error('Required parameter group was null or undefined when calling forumGetTopicsPaged.');\n        }\n        if (page === null || page === undefined) {\n            throw new Error('Required parameter page was null or undefined when calling forumGetTopicsPaged.');\n        }\n        if (pageSize === null || pageSize === undefined) {\n            throw new Error('Required parameter pageSize was null or undefined when calling forumGetTopicsPaged.');\n        }\n        if (quickDate === null || quickDate === undefined) {\n            throw new Error('Required parameter quickDate was null or undefined when calling forumGetTopicsPaged.');\n        }\n        if (sort === null || sort === undefined) {\n            throw new Error('Required parameter sort was null or undefined when calling forumGetTopicsPaged.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (locales !== undefined && locales !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>locales, 'locales');\n        }\n        if (tagstring !== undefined && tagstring !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>tagstring, 'tagstring');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<ForumGetTopicsPaged200Response>(`${this.configuration.basePath}/Forum/GetTopicsPaged/${encodeURIComponent(String(page))}/${encodeURIComponent(String(pageSize))}/${encodeURIComponent(String(group))}/${encodeURIComponent(String(sort))}/${encodeURIComponent(String(quickDate))}/${encodeURIComponent(String(categoryFilter))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport {\n  HttpClient,\n  HttpHeaders,\n  HttpParams,\n  HttpResponse,\n  HttpEvent,\n  HttpParameterCodec,\n  HttpContext\n} from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { ForumGetTopicForContent200Response } from '../model/forumGetTopicForContent200Response';\n// @ts-ignore\nimport { GroupV2ApproveAllPending200Response } from '../model/groupV2ApproveAllPending200Response';\n// @ts-ignore\nimport { GroupV2EditGroup200Response } from '../model/groupV2EditGroup200Response';\n// @ts-ignore\nimport { GroupV2GetAvailableThemes200Response } from '../model/groupV2GetAvailableThemes200Response';\n// @ts-ignore\nimport { GroupV2GetBannedMembersOfGroup200Response } from '../model/groupV2GetBannedMembersOfGroup200Response';\n// @ts-ignore\nimport { GroupV2GetGroup200Response } from '../model/groupV2GetGroup200Response';\n// @ts-ignore\nimport { GroupV2GetGroupOptionalConversations200Response } from '../model/groupV2GetGroupOptionalConversations200Response';\n// @ts-ignore\nimport { GroupV2GetGroupsForMember200Response } from '../model/groupV2GetGroupsForMember200Response';\n// @ts-ignore\nimport { GroupV2GetMembersOfGroup200Response } from '../model/groupV2GetMembersOfGroup200Response';\n// @ts-ignore\nimport { GroupV2GetPendingMemberships200Response } from '../model/groupV2GetPendingMemberships200Response';\n// @ts-ignore\nimport { GroupV2GetPotentialGroupsForMember200Response } from '../model/groupV2GetPotentialGroupsForMember200Response';\n// @ts-ignore\nimport { GroupV2GetRecommendedGroups200Response } from '../model/groupV2GetRecommendedGroups200Response';\n// @ts-ignore\nimport { GroupV2GetUserClanInviteSetting200Response } from '../model/groupV2GetUserClanInviteSetting200Response';\n// @ts-ignore\nimport { GroupV2GroupSearch200Response } from '../model/groupV2GroupSearch200Response';\n// @ts-ignore\nimport { GroupV2IndividualGroupInvite200Response } from '../model/groupV2IndividualGroupInvite200Response';\n// @ts-ignore\nimport { GroupV2KickMember200Response } from '../model/groupV2KickMember200Response';\n// @ts-ignore\nimport { GroupV2RecoverGroupForFounder200Response } from '../model/groupV2RecoverGroupForFounder200Response';\n// @ts-ignore\nimport { UserGetSanitizedPlatformDisplayNames200Response } from '../model/userGetSanitizedPlatformDisplayNames200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport { GroupsV2GroupQuery } from '../model/groupsV2GroupQuery';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GroupV2Service {\n  protected basePath = 'https://www.bungie.net/Platform';\n  public defaultHeaders = new HttpHeaders();\n  public configuration = new Configuration();\n  public encoder: HttpParameterCodec;\n\n  constructor(\n    protected httpClient: HttpClient,\n    @Optional() @Inject(BASE_PATH) basePath: string,\n    @Optional() configuration: Configuration\n  ) {\n    if (configuration) {\n      this.configuration = configuration;\n    }\n    if (typeof this.configuration.basePath !== 'string') {\n      if (typeof basePath !== 'string') {\n        basePath = this.basePath;\n      }\n      this.configuration.basePath = basePath;\n    }\n    this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n  }\n\n  // @ts-ignore\n  private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n    if (typeof value === 'object' && value instanceof Date === false) {\n      httpParams = this.addToHttpParamsRecursive(httpParams, value);\n    } else {\n      httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n    }\n    return httpParams;\n  }\n\n  private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n    if (value == null) {\n      return httpParams;\n    }\n\n    if (typeof value === 'object') {\n      if (Array.isArray(value)) {\n        (value as any[]).forEach((elem) => (httpParams = this.addToHttpParamsRecursive(httpParams, elem, key)));\n      } else if (value instanceof Date) {\n        if (key != null) {\n          httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n        } else {\n          throw Error('key may not be null if value is Date');\n        }\n      } else {\n        Object.keys(value).forEach(\n          (k) => (httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k))\n        );\n      }\n    } else if (key != null) {\n      httpParams = httpParams.append(key, value);\n    } else {\n      throw Error('key may not be null if value is not object or array');\n    }\n    return httpParams;\n  }\n\n  /**\n   * An administrative method to allow the founder of a group or clan to give up their position to another admin permanently.\n   * @param founderIdNew The new founder for this group. Must already be a group admin.\n   * @param groupId The target group id.\n   * @param membershipType Membership type of the provided founderIdNew.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2AbdicateFoundership(\n    founderIdNew: number,\n    groupId: number,\n    membershipType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetUserClanInviteSetting200Response>;\n  public groupV2AbdicateFoundership(\n    founderIdNew: number,\n    groupId: number,\n    membershipType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetUserClanInviteSetting200Response>>;\n  public groupV2AbdicateFoundership(\n    founderIdNew: number,\n    groupId: number,\n    membershipType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetUserClanInviteSetting200Response>>;\n  public groupV2AbdicateFoundership(\n    founderIdNew: number,\n    groupId: number,\n    membershipType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (founderIdNew === null || founderIdNew === undefined) {\n      throw new Error('Required parameter founderIdNew was null or undefined when calling groupV2AbdicateFoundership.');\n    }\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2AbdicateFoundership.');\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error(\n        'Required parameter membershipType was null or undefined when calling groupV2AbdicateFoundership.'\n      );\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2GetUserClanInviteSetting200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(\n        String(groupId)\n      )}/Admin/AbdicateFoundership/${encodeURIComponent(String(membershipType))}/${encodeURIComponent(\n        String(founderIdNew)\n      )}/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Add a new optional conversation/chat channel. Requires admin permissions to the group.\n   * @param groupId Group ID of the group to edit.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2AddOptionalConversation(\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<ForumGetTopicForContent200Response>;\n  public groupV2AddOptionalConversation(\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<ForumGetTopicForContent200Response>>;\n  public groupV2AddOptionalConversation(\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<ForumGetTopicForContent200Response>>;\n  public groupV2AddOptionalConversation(\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2AddOptionalConversation.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<ForumGetTopicForContent200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/OptionalConversations/Add/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Approve all of the pending users for the given group.\n   * @param groupId ID of the group.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2ApproveAllPending(\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2ApproveAllPending200Response>;\n  public groupV2ApproveAllPending(\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2ApproveAllPending200Response>>;\n  public groupV2ApproveAllPending(\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2ApproveAllPending200Response>>;\n  public groupV2ApproveAllPending(\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2ApproveAllPending.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2ApproveAllPending200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/ApproveAll/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Approve the given membershipId to join the group/clan as long as they have applied.\n   * @param groupId ID of the group.\n   * @param membershipId The membership id being approved.\n   * @param membershipType Membership type of the supplied membership ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2ApprovePending(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetUserClanInviteSetting200Response>;\n  public groupV2ApprovePending(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetUserClanInviteSetting200Response>>;\n  public groupV2ApprovePending(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetUserClanInviteSetting200Response>>;\n  public groupV2ApprovePending(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2ApprovePending.');\n    }\n    if (membershipId === null || membershipId === undefined) {\n      throw new Error('Required parameter membershipId was null or undefined when calling groupV2ApprovePending.');\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error('Required parameter membershipType was null or undefined when calling groupV2ApprovePending.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2GetUserClanInviteSetting200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(\n        String(groupId)\n      )}/Members/Approve/${encodeURIComponent(String(membershipType))}/${encodeURIComponent(String(membershipId))}/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Approve all of the pending users for the given group.\n   * @param groupId ID of the group.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2ApprovePendingForList(\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2ApproveAllPending200Response>;\n  public groupV2ApprovePendingForList(\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2ApproveAllPending200Response>>;\n  public groupV2ApprovePendingForList(\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2ApproveAllPending200Response>>;\n  public groupV2ApprovePendingForList(\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2ApprovePendingForList.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2ApproveAllPending200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/ApproveList/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Bans the requested member from the requested group for the specified period of time.\n   * @param groupId Group ID that has the member to ban.\n   * @param membershipId Membership ID of the member to ban from the group.\n   * @param membershipType Membership type of the provided membership ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2BanMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2EditGroup200Response>;\n  public groupV2BanMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n  public groupV2BanMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n  public groupV2BanMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2BanMember.');\n    }\n    if (membershipId === null || membershipId === undefined) {\n      throw new Error('Required parameter membershipId was null or undefined when calling groupV2BanMember.');\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error('Required parameter membershipType was null or undefined when calling groupV2BanMember.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2EditGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/${encodeURIComponent(\n        String(membershipType)\n      )}/${encodeURIComponent(String(membershipId))}/Ban/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Deny all of the pending users for the given group.\n   * @param groupId ID of the group.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2DenyAllPending(\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2ApproveAllPending200Response>;\n  public groupV2DenyAllPending(\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2ApproveAllPending200Response>>;\n  public groupV2DenyAllPending(\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2ApproveAllPending200Response>>;\n  public groupV2DenyAllPending(\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2DenyAllPending.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2ApproveAllPending200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/DenyAll/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Deny all of the pending users for the given group that match the passed-in .\n   * @param groupId ID of the group.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2DenyPendingForList(\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2ApproveAllPending200Response>;\n  public groupV2DenyPendingForList(\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2ApproveAllPending200Response>>;\n  public groupV2DenyPendingForList(\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2ApproveAllPending200Response>>;\n  public groupV2DenyPendingForList(\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2DenyPendingForList.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2ApproveAllPending200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/DenyList/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Edit an existing group\\&#39;s clan banner. You must have suitable permissions in the group to perform this operation. All fields are required.\n   * @param groupId Group ID of the group to edit.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2EditClanBanner(\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2EditGroup200Response>;\n  public groupV2EditClanBanner(\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n  public groupV2EditClanBanner(\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n  public groupV2EditClanBanner(\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2EditClanBanner.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2EditGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/EditClanBanner/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Edit group options only available to a founder. You must have suitable permissions in the group to perform this operation.\n   * @param groupId Group ID of the group to edit.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2EditFounderOptions(\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2EditGroup200Response>;\n  public groupV2EditFounderOptions(\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n  public groupV2EditFounderOptions(\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n  public groupV2EditFounderOptions(\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2EditFounderOptions.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2EditGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/EditFounderOptions/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Edit an existing group. You must have suitable permissions in the group to perform this operation. This latest revision will only edit the fields you pass in - pass null for properties you want to leave unaltered.\n   * @param groupId Group ID of the group to edit.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2EditGroup(\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2EditGroup200Response>;\n  public groupV2EditGroup(\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n  public groupV2EditGroup(\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n  public groupV2EditGroup(\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2EditGroup.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2EditGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Edit/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Edit the membership type of a given member. You must have suitable permissions in the group to perform this operation.\n   * @param groupId ID of the group to which the member belongs.\n   * @param membershipId Membership ID to modify.\n   * @param membershipType Membership type of the provide membership ID.\n   * @param memberType New membertype for the specified member.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2EditGroupMembership(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    memberType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2EditGroup200Response>;\n  public groupV2EditGroupMembership(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    memberType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n  public groupV2EditGroupMembership(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    memberType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n  public groupV2EditGroupMembership(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    memberType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2EditGroupMembership.');\n    }\n    if (membershipId === null || membershipId === undefined) {\n      throw new Error('Required parameter membershipId was null or undefined when calling groupV2EditGroupMembership.');\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error(\n        'Required parameter membershipType was null or undefined when calling groupV2EditGroupMembership.'\n      );\n    }\n    if (memberType === null || memberType === undefined) {\n      throw new Error('Required parameter memberType was null or undefined when calling groupV2EditGroupMembership.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2EditGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/${encodeURIComponent(\n        String(membershipType)\n      )}/${encodeURIComponent(String(membershipId))}/SetMembershipType/${encodeURIComponent(String(memberType))}/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Edit the settings of an optional conversation/chat channel. Requires admin permissions to the group.\n   * @param conversationId Conversation Id of the channel being edited.\n   * @param groupId Group ID of the group to edit.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2EditOptionalConversation(\n    conversationId: number,\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<ForumGetTopicForContent200Response>;\n  public groupV2EditOptionalConversation(\n    conversationId: number,\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<ForumGetTopicForContent200Response>>;\n  public groupV2EditOptionalConversation(\n    conversationId: number,\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<ForumGetTopicForContent200Response>>;\n  public groupV2EditOptionalConversation(\n    conversationId: number,\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (conversationId === null || conversationId === undefined) {\n      throw new Error(\n        'Required parameter conversationId was null or undefined when calling groupV2EditOptionalConversation.'\n      );\n    }\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2EditOptionalConversation.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<ForumGetTopicForContent200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(\n        String(groupId)\n      )}/OptionalConversations/Edit/${encodeURIComponent(String(conversationId))}/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Get the list of members in a given group who are of admin level or higher.\n   * @param currentpage Page number (starting with 1). Each page has a fixed size of 50 items per page.\n   * @param groupId The ID of the group.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetAdminsAndFounderOfGroup(\n    currentpage: number,\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetMembersOfGroup200Response>;\n  public groupV2GetAdminsAndFounderOfGroup(\n    currentpage: number,\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetMembersOfGroup200Response>>;\n  public groupV2GetAdminsAndFounderOfGroup(\n    currentpage: number,\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetMembersOfGroup200Response>>;\n  public groupV2GetAdminsAndFounderOfGroup(\n    currentpage: number,\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (currentpage === null || currentpage === undefined) {\n      throw new Error(\n        'Required parameter currentpage was null or undefined when calling groupV2GetAdminsAndFounderOfGroup.'\n      );\n    }\n    if (groupId === null || groupId === undefined) {\n      throw new Error(\n        'Required parameter groupId was null or undefined when calling groupV2GetAdminsAndFounderOfGroup.'\n      );\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetMembersOfGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/AdminsAndFounder/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Returns a list of all available group avatars for the signed-in user.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetAvailableAvatars(\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<UserGetSanitizedPlatformDisplayNames200Response>;\n  public groupV2GetAvailableAvatars(\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<UserGetSanitizedPlatformDisplayNames200Response>>;\n  public groupV2GetAvailableAvatars(\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<UserGetSanitizedPlatformDisplayNames200Response>>;\n  public groupV2GetAvailableAvatars(\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<UserGetSanitizedPlatformDisplayNames200Response>(\n      `${this.configuration.basePath}/GroupV2/GetAvailableAvatars/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Returns a list of all available group themes.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetAvailableThemes(\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetAvailableThemes200Response>;\n  public groupV2GetAvailableThemes(\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetAvailableThemes200Response>>;\n  public groupV2GetAvailableThemes(\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetAvailableThemes200Response>>;\n  public groupV2GetAvailableThemes(\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetAvailableThemes200Response>(\n      `${this.configuration.basePath}/GroupV2/GetAvailableThemes/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Get the list of banned members in a given group. Only accessible to group Admins and above. Not applicable to all groups. Check group features.\n   * @param currentpage Page number (starting with 1). Each page has a fixed size of 50 entries.\n   * @param groupId Group ID whose banned members you are fetching\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetBannedMembersOfGroup(\n    currentpage: number,\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetBannedMembersOfGroup200Response>;\n  public groupV2GetBannedMembersOfGroup(\n    currentpage: number,\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetBannedMembersOfGroup200Response>>;\n  public groupV2GetBannedMembersOfGroup(\n    currentpage: number,\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetBannedMembersOfGroup200Response>>;\n  public groupV2GetBannedMembersOfGroup(\n    currentpage: number,\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (currentpage === null || currentpage === undefined) {\n      throw new Error(\n        'Required parameter currentpage was null or undefined when calling groupV2GetBannedMembersOfGroup.'\n      );\n    }\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2GetBannedMembersOfGroup.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetBannedMembersOfGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Banned/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Get information about a specific group of the given ID.\n   * @param groupId Requested group\\&#39;s id.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetGroup(\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetGroup200Response>;\n  public groupV2GetGroup(\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetGroup200Response>>;\n  public groupV2GetGroup(\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetGroup200Response>>;\n  public groupV2GetGroup(\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2GetGroup.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Get information about a specific group with the given name and type.\n   * @param groupName Exact name of the group to find.\n   * @param groupType Type of group to find.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetGroupByName(\n    groupName: string,\n    groupType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetGroup200Response>;\n  public groupV2GetGroupByName(\n    groupName: string,\n    groupType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetGroup200Response>>;\n  public groupV2GetGroupByName(\n    groupName: string,\n    groupType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetGroup200Response>>;\n  public groupV2GetGroupByName(\n    groupName: string,\n    groupType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupName === null || groupName === undefined) {\n      throw new Error('Required parameter groupName was null or undefined when calling groupV2GetGroupByName.');\n    }\n    if (groupType === null || groupType === undefined) {\n      throw new Error('Required parameter groupType was null or undefined when calling groupV2GetGroupByName.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/Name/${encodeURIComponent(String(groupName))}/${encodeURIComponent(\n        String(groupType)\n      )}/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Get information about a specific group with the given name and type. The POST version.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetGroupByNameV2(\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetGroup200Response>;\n  public groupV2GetGroupByNameV2(\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetGroup200Response>>;\n  public groupV2GetGroupByNameV2(\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetGroup200Response>>;\n  public groupV2GetGroupByNameV2(\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2GetGroup200Response>(`${this.configuration.basePath}/GroupV2/NameV2/`, null, {\n      context: localVarHttpContext,\n      responseType: <any>responseType_,\n      withCredentials: this.configuration.withCredentials,\n      headers: localVarHeaders,\n      observe: observe,\n      reportProgress: reportProgress\n    });\n  }\n\n  /**\n   * Gets a list of available optional conversation channels and their settings.\n   * @param groupId Requested group\\&#39;s id.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetGroupOptionalConversations(\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetGroupOptionalConversations200Response>;\n  public groupV2GetGroupOptionalConversations(\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetGroupOptionalConversations200Response>>;\n  public groupV2GetGroupOptionalConversations(\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetGroupOptionalConversations200Response>>;\n  public groupV2GetGroupOptionalConversations(\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error(\n        'Required parameter groupId was null or undefined when calling groupV2GetGroupOptionalConversations.'\n      );\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetGroupOptionalConversations200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/OptionalConversations/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Get information about the groups that a given member has joined.\n   * @param filter Filter apply to list of joined groups.\n   * @param groupType Type of group the supplied member founded.\n   * @param membershipId Membership ID to for which to find founded groups.\n   * @param membershipType Membership type of the supplied membership ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetGroupsForMember(\n    filter: number,\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetGroupsForMember200Response>;\n  public groupV2GetGroupsForMember(\n    filter: number,\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetGroupsForMember200Response>>;\n  public groupV2GetGroupsForMember(\n    filter: number,\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetGroupsForMember200Response>>;\n  public groupV2GetGroupsForMember(\n    filter: number,\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (filter === null || filter === undefined) {\n      throw new Error('Required parameter filter was null or undefined when calling groupV2GetGroupsForMember.');\n    }\n    if (groupType === null || groupType === undefined) {\n      throw new Error('Required parameter groupType was null or undefined when calling groupV2GetGroupsForMember.');\n    }\n    if (membershipId === null || membershipId === undefined) {\n      throw new Error('Required parameter membershipId was null or undefined when calling groupV2GetGroupsForMember.');\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error(\n        'Required parameter membershipType was null or undefined when calling groupV2GetGroupsForMember.'\n      );\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetGroupsForMember200Response>(\n      `${this.configuration.basePath}/GroupV2/User/${encodeURIComponent(String(membershipType))}/${encodeURIComponent(\n        String(membershipId)\n      )}/${encodeURIComponent(String(filter))}/${encodeURIComponent(String(groupType))}/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Get the list of users who have been invited into the group.\n   * @param currentpage Page number (starting with 1). Each page has a fixed size of 50 items per page.\n   * @param groupId ID of the group.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetInvitedIndividuals(\n    currentpage: number,\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetPendingMemberships200Response>;\n  public groupV2GetInvitedIndividuals(\n    currentpage: number,\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetPendingMemberships200Response>>;\n  public groupV2GetInvitedIndividuals(\n    currentpage: number,\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetPendingMemberships200Response>>;\n  public groupV2GetInvitedIndividuals(\n    currentpage: number,\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (currentpage === null || currentpage === undefined) {\n      throw new Error(\n        'Required parameter currentpage was null or undefined when calling groupV2GetInvitedIndividuals.'\n      );\n    }\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2GetInvitedIndividuals.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetPendingMemberships200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/InvitedIndividuals/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Get the list of members in a given group.\n   * @param currentpage Page number (starting with 1). Each page has a fixed size of 50 items per page.\n   * @param groupId The ID of the group.\n   * @param memberType Filter out other member types. Use None for all members.\n   * @param nameSearch The name fragment upon which a search should be executed for members with matching display or unique names.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetMembersOfGroup(\n    currentpage: number,\n    groupId: number,\n    memberType?: number,\n    nameSearch?: string,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetMembersOfGroup200Response>;\n  public groupV2GetMembersOfGroup(\n    currentpage: number,\n    groupId: number,\n    memberType?: number,\n    nameSearch?: string,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetMembersOfGroup200Response>>;\n  public groupV2GetMembersOfGroup(\n    currentpage: number,\n    groupId: number,\n    memberType?: number,\n    nameSearch?: string,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetMembersOfGroup200Response>>;\n  public groupV2GetMembersOfGroup(\n    currentpage: number,\n    groupId: number,\n    memberType?: number,\n    nameSearch?: string,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (currentpage === null || currentpage === undefined) {\n      throw new Error('Required parameter currentpage was null or undefined when calling groupV2GetMembersOfGroup.');\n    }\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2GetMembersOfGroup.');\n    }\n\n    let localVarQueryParameters = new HttpParams({ encoder: this.encoder });\n    if (memberType !== undefined && memberType !== null) {\n      localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, <any>memberType, 'memberType');\n    }\n    if (nameSearch !== undefined && nameSearch !== null) {\n      localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, <any>nameSearch, 'nameSearch');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetMembersOfGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/`,\n      {\n        context: localVarHttpContext,\n        params: localVarQueryParameters,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Get the list of users who are awaiting a decision on their application to join a given group. Modified to include application info.\n   * @param currentpage Page number (starting with 1). Each page has a fixed size of 50 items per page.\n   * @param groupId ID of the group.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetPendingMemberships(\n    currentpage: number,\n    groupId: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetPendingMemberships200Response>;\n  public groupV2GetPendingMemberships(\n    currentpage: number,\n    groupId: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetPendingMemberships200Response>>;\n  public groupV2GetPendingMemberships(\n    currentpage: number,\n    groupId: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetPendingMemberships200Response>>;\n  public groupV2GetPendingMemberships(\n    currentpage: number,\n    groupId: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (currentpage === null || currentpage === undefined) {\n      throw new Error(\n        'Required parameter currentpage was null or undefined when calling groupV2GetPendingMemberships.'\n      );\n    }\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2GetPendingMemberships.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetPendingMemberships200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/Pending/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Get information about the groups that a given member has applied to or been invited to.\n   * @param filter Filter apply to list of potential joined groups.\n   * @param groupType Type of group the supplied member applied.\n   * @param membershipId Membership ID to for which to find applied groups.\n   * @param membershipType Membership type of the supplied membership ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetPotentialGroupsForMember(\n    filter: number,\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetPotentialGroupsForMember200Response>;\n  public groupV2GetPotentialGroupsForMember(\n    filter: number,\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetPotentialGroupsForMember200Response>>;\n  public groupV2GetPotentialGroupsForMember(\n    filter: number,\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetPotentialGroupsForMember200Response>>;\n  public groupV2GetPotentialGroupsForMember(\n    filter: number,\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (filter === null || filter === undefined) {\n      throw new Error(\n        'Required parameter filter was null or undefined when calling groupV2GetPotentialGroupsForMember.'\n      );\n    }\n    if (groupType === null || groupType === undefined) {\n      throw new Error(\n        'Required parameter groupType was null or undefined when calling groupV2GetPotentialGroupsForMember.'\n      );\n    }\n    if (membershipId === null || membershipId === undefined) {\n      throw new Error(\n        'Required parameter membershipId was null or undefined when calling groupV2GetPotentialGroupsForMember.'\n      );\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error(\n        'Required parameter membershipType was null or undefined when calling groupV2GetPotentialGroupsForMember.'\n      );\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetPotentialGroupsForMember200Response>(\n      `${this.configuration.basePath}/GroupV2/User/Potential/${encodeURIComponent(\n        String(membershipType)\n      )}/${encodeURIComponent(String(membershipId))}/${encodeURIComponent(String(filter))}/${encodeURIComponent(\n        String(groupType)\n      )}/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Gets groups recommended for you based on the groups to whom those you follow belong.\n   * @param createDateRange Requested range in which to pull recommended groups\n   * @param groupType Type of groups requested\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetRecommendedGroups(\n    createDateRange: number,\n    groupType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetRecommendedGroups200Response>;\n  public groupV2GetRecommendedGroups(\n    createDateRange: number,\n    groupType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetRecommendedGroups200Response>>;\n  public groupV2GetRecommendedGroups(\n    createDateRange: number,\n    groupType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetRecommendedGroups200Response>>;\n  public groupV2GetRecommendedGroups(\n    createDateRange: number,\n    groupType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (createDateRange === null || createDateRange === undefined) {\n      throw new Error(\n        'Required parameter createDateRange was null or undefined when calling groupV2GetRecommendedGroups.'\n      );\n    }\n    if (groupType === null || groupType === undefined) {\n      throw new Error('Required parameter groupType was null or undefined when calling groupV2GetRecommendedGroups.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2GetRecommendedGroups200Response>(\n      `${this.configuration.basePath}/GroupV2/Recommended/${encodeURIComponent(String(groupType))}/${encodeURIComponent(\n        String(createDateRange)\n      )}/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Gets the state of the user\\&#39;s clan invite preferences for a particular membership type - true if they wish to be invited to clans, false otherwise.\n   * @param mType The Destiny membership type of the account we wish to access settings.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GetUserClanInviteSetting(\n    mType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GetUserClanInviteSetting200Response>;\n  public groupV2GetUserClanInviteSetting(\n    mType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GetUserClanInviteSetting200Response>>;\n  public groupV2GetUserClanInviteSetting(\n    mType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GetUserClanInviteSetting200Response>>;\n  public groupV2GetUserClanInviteSetting(\n    mType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (mType === null || mType === undefined) {\n      throw new Error('Required parameter mType was null or undefined when calling groupV2GetUserClanInviteSetting.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2GetUserClanInviteSetting200Response>(\n      `${this.configuration.basePath}/GroupV2/GetUserClanInviteSetting/${encodeURIComponent(String(mType))}/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Search for Groups.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2GroupSearch(\n    body: GroupsV2GroupQuery,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2GroupSearch200Response>;\n  public groupV2GroupSearch(\n    body: GroupsV2GroupQuery,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2GroupSearch200Response>>;\n  public groupV2GroupSearch(\n    body: GroupsV2GroupQuery,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2GroupSearch200Response>>;\n  public groupV2GroupSearch(\n    body: GroupsV2GroupQuery,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2GroupSearch200Response>(`${this.configuration.basePath}/GroupV2/Search/`, body, {\n      context: localVarHttpContext,\n      responseType: <any>responseType_,\n      withCredentials: this.configuration.withCredentials,\n      headers: localVarHeaders,\n      observe: observe,\n      reportProgress: reportProgress\n    });\n  }\n\n  /**\n   * Invite a user to join this group.\n   * @param groupId ID of the group you would like to join.\n   * @param membershipId Membership id of the account being invited.\n   * @param membershipType MembershipType of the account being invited.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2IndividualGroupInvite(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2IndividualGroupInvite200Response>;\n  public groupV2IndividualGroupInvite(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2IndividualGroupInvite200Response>>;\n  public groupV2IndividualGroupInvite(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2IndividualGroupInvite200Response>>;\n  public groupV2IndividualGroupInvite(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2IndividualGroupInvite.');\n    }\n    if (membershipId === null || membershipId === undefined) {\n      throw new Error(\n        'Required parameter membershipId was null or undefined when calling groupV2IndividualGroupInvite.'\n      );\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error(\n        'Required parameter membershipType was null or undefined when calling groupV2IndividualGroupInvite.'\n      );\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2IndividualGroupInvite200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(\n        String(groupId)\n      )}/Members/IndividualInvite/${encodeURIComponent(String(membershipType))}/${encodeURIComponent(\n        String(membershipId)\n      )}/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Cancels a pending invitation to join a group.\n   * @param groupId ID of the group you would like to join.\n   * @param membershipId Membership id of the account being cancelled.\n   * @param membershipType MembershipType of the account being cancelled.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2IndividualGroupInviteCancel(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2IndividualGroupInvite200Response>;\n  public groupV2IndividualGroupInviteCancel(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2IndividualGroupInvite200Response>>;\n  public groupV2IndividualGroupInviteCancel(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2IndividualGroupInvite200Response>>;\n  public groupV2IndividualGroupInviteCancel(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error(\n        'Required parameter groupId was null or undefined when calling groupV2IndividualGroupInviteCancel.'\n      );\n    }\n    if (membershipId === null || membershipId === undefined) {\n      throw new Error(\n        'Required parameter membershipId was null or undefined when calling groupV2IndividualGroupInviteCancel.'\n      );\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error(\n        'Required parameter membershipType was null or undefined when calling groupV2IndividualGroupInviteCancel.'\n      );\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2IndividualGroupInvite200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(\n        String(groupId)\n      )}/Members/IndividualInviteCancel/${encodeURIComponent(String(membershipType))}/${encodeURIComponent(\n        String(membershipId)\n      )}/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Kick a member from the given group, forcing them to reapply if they wish to re-join the group. You must have suitable permissions in the group to perform this operation.\n   * @param groupId Group ID to kick the user from.\n   * @param membershipId Membership ID to kick.\n   * @param membershipType Membership type of the provided membership ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2KickMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2KickMember200Response>;\n  public groupV2KickMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2KickMember200Response>>;\n  public groupV2KickMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2KickMember200Response>>;\n  public groupV2KickMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2KickMember.');\n    }\n    if (membershipId === null || membershipId === undefined) {\n      throw new Error('Required parameter membershipId was null or undefined when calling groupV2KickMember.');\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error('Required parameter membershipType was null or undefined when calling groupV2KickMember.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2KickMember200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/${encodeURIComponent(\n        String(membershipType)\n      )}/${encodeURIComponent(String(membershipId))}/Kick/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Allows a founder to manually recover a group they can see in game but not on bungie.net\n   * @param groupType Type of group the supplied member founded.\n   * @param membershipId Membership ID to for which to find founded groups.\n   * @param membershipType Membership type of the supplied membership ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2RecoverGroupForFounder(\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2RecoverGroupForFounder200Response>;\n  public groupV2RecoverGroupForFounder(\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2RecoverGroupForFounder200Response>>;\n  public groupV2RecoverGroupForFounder(\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2RecoverGroupForFounder200Response>>;\n  public groupV2RecoverGroupForFounder(\n    groupType: number,\n    membershipId: number,\n    membershipType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupType === null || groupType === undefined) {\n      throw new Error('Required parameter groupType was null or undefined when calling groupV2RecoverGroupForFounder.');\n    }\n    if (membershipId === null || membershipId === undefined) {\n      throw new Error(\n        'Required parameter membershipId was null or undefined when calling groupV2RecoverGroupForFounder.'\n      );\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error(\n        'Required parameter membershipType was null or undefined when calling groupV2RecoverGroupForFounder.'\n      );\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.get<GroupV2RecoverGroupForFounder200Response>(\n      `${this.configuration.basePath}/GroupV2/Recover/${encodeURIComponent(\n        String(membershipType)\n      )}/${encodeURIComponent(String(membershipId))}/${encodeURIComponent(String(groupType))}/`,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n\n  /**\n   * Unbans the requested member, allowing them to re-apply for membership.\n   * @param groupId\n   * @param membershipId Membership ID of the member to unban from the group\n   * @param membershipType Membership type of the provided membership ID.\n   * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n   * @param reportProgress flag to report request and response progress.\n   */\n  public groupV2UnbanMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'body',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<GroupV2EditGroup200Response>;\n  public groupV2UnbanMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'response',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpResponse<GroupV2EditGroup200Response>>;\n  public groupV2UnbanMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe?: 'events',\n    reportProgress?: boolean,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<HttpEvent<GroupV2EditGroup200Response>>;\n  public groupV2UnbanMember(\n    groupId: number,\n    membershipId: number,\n    membershipType: number,\n    observe: any = 'body',\n    reportProgress: boolean = false,\n    options?: { httpHeaderAccept?: '*/*'; context?: HttpContext }\n  ): Observable<any> {\n    if (groupId === null || groupId === undefined) {\n      throw new Error('Required parameter groupId was null or undefined when calling groupV2UnbanMember.');\n    }\n    if (membershipId === null || membershipId === undefined) {\n      throw new Error('Required parameter membershipId was null or undefined when calling groupV2UnbanMember.');\n    }\n    if (membershipType === null || membershipType === undefined) {\n      throw new Error('Required parameter membershipType was null or undefined when calling groupV2UnbanMember.');\n    }\n\n    let localVarHeaders = this.defaultHeaders;\n\n    let localVarCredential: string | undefined;\n    // authentication (oauth2) required\n    localVarCredential = this.configuration.lookupCredential('oauth2');\n    if (localVarCredential) {\n      localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n    }\n\n    let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n    if (localVarHttpHeaderAcceptSelected === undefined) {\n      // to determine the Accept header\n      const httpHeaderAccepts: string[] = ['*/*'];\n      localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n    }\n    if (localVarHttpHeaderAcceptSelected !== undefined) {\n      localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n    }\n\n    let localVarHttpContext: HttpContext | undefined = options && options.context;\n    if (localVarHttpContext === undefined) {\n      localVarHttpContext = new HttpContext();\n    }\n\n    let responseType_: 'text' | 'json' | 'blob' = 'json';\n    if (localVarHttpHeaderAcceptSelected) {\n      if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n        responseType_ = 'text';\n      } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n        responseType_ = 'json';\n      } else {\n        responseType_ = 'json';\n      }\n    }\n\n    return this.httpClient.post<GroupV2EditGroup200Response>(\n      `${this.configuration.basePath}/GroupV2/${encodeURIComponent(String(groupId))}/Members/${encodeURIComponent(\n        String(membershipType)\n      )}/${encodeURIComponent(String(membershipId))}/Unban/`,\n      null,\n      {\n        context: localVarHttpContext,\n        responseType: <any>responseType_,\n        withCredentials: this.configuration.withCredentials,\n        headers: localVarHeaders,\n        observe: observe,\n        reportProgress: reportProgress\n      }\n    );\n  }\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { Destiny2GetClanAggregateStats200Response } from '../model/destiny2GetClanAggregateStats200Response';\n// @ts-ignore\nimport { Destiny2GetClanLeaderboards200Response } from '../model/destiny2GetClanLeaderboards200Response';\n// @ts-ignore\nimport { Destiny2GetPublicVendors200Response } from '../model/destiny2GetPublicVendors200Response';\n// @ts-ignore\nimport { Destiny2InsertSocketPlug200Response } from '../model/destiny2InsertSocketPlug200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PreviewService {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Gets aggregated stats for a clan using the same categories as the clan leaderboards. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.\n     * @param groupId Group ID of the clan whose leaderboards you wish to fetch.\n     * @param modes List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetClanAggregateStats(groupId: number, modes?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetClanAggregateStats200Response>;\n    public destiny2GetClanAggregateStats(groupId: number, modes?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetClanAggregateStats200Response>>;\n    public destiny2GetClanAggregateStats(groupId: number, modes?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetClanAggregateStats200Response>>;\n    public destiny2GetClanAggregateStats(groupId: number, modes?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling destiny2GetClanAggregateStats.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (modes !== undefined && modes !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>modes, 'modes');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetClanAggregateStats200Response>(`${this.configuration.basePath}/Destiny2/Stats/AggregateClanStats/${encodeURIComponent(String(groupId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets leaderboards with the signed in user\\&#39;s friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.\n     * @param groupId Group ID of the clan whose leaderboards you wish to fetch.\n     * @param maxtop Maximum number of top players to return. Use a large number to get entire leaderboard.\n     * @param modes List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.\n     * @param statid ID of stat to return rather than returning all Leaderboard stats.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetClanLeaderboards(groupId: number, maxtop?: number, modes?: string, statid?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetClanLeaderboards200Response>;\n    public destiny2GetClanLeaderboards(groupId: number, maxtop?: number, modes?: string, statid?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetClanLeaderboards(groupId: number, maxtop?: number, modes?: string, statid?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetClanLeaderboards(groupId: number, maxtop?: number, modes?: string, statid?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (groupId === null || groupId === undefined) {\n            throw new Error('Required parameter groupId was null or undefined when calling destiny2GetClanLeaderboards.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (maxtop !== undefined && maxtop !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>maxtop, 'maxtop');\n        }\n        if (modes !== undefined && modes !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>modes, 'modes');\n        }\n        if (statid !== undefined && statid !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>statid, 'statid');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetClanLeaderboards200Response>(`${this.configuration.basePath}/Destiny2/Stats/Leaderboards/Clans/${encodeURIComponent(String(groupId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets leaderboards with the signed in user\\&#39;s friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint has not yet been implemented. It is being returned for a preview of future functionality, and for public comment/suggestion/preparation.\n     * @param destinyMembershipId The Destiny membershipId of the user to retrieve.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param maxtop Maximum number of top players to return. Use a large number to get entire leaderboard.\n     * @param modes List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.\n     * @param statid ID of stat to return rather than returning all Leaderboard stats.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetLeaderboards(destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetClanLeaderboards200Response>;\n    public destiny2GetLeaderboards(destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetLeaderboards(destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetLeaderboards(destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetLeaderboards.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetLeaderboards.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (maxtop !== undefined && maxtop !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>maxtop, 'maxtop');\n        }\n        if (modes !== undefined && modes !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>modes, 'modes');\n        }\n        if (statid !== undefined && statid !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>statid, 'statid');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetClanLeaderboards200Response>(`${this.configuration.basePath}/Destiny2/${encodeURIComponent(String(membershipType))}/Account/${encodeURIComponent(String(destinyMembershipId))}/Stats/Leaderboards/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets leaderboards with the signed in user\\&#39;s friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation.\n     * @param characterId The specific character to build the leaderboard around for the provided Destiny Membership.\n     * @param destinyMembershipId The Destiny membershipId of the user to retrieve.\n     * @param membershipType A valid non-BungieNet membership type.\n     * @param maxtop Maximum number of top players to return. Use a large number to get entire leaderboard.\n     * @param modes List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.\n     * @param statid ID of stat to return rather than returning all Leaderboard stats.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetLeaderboardsForCharacter(characterId: number, destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetClanLeaderboards200Response>;\n    public destiny2GetLeaderboardsForCharacter(characterId: number, destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetLeaderboardsForCharacter(characterId: number, destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetClanLeaderboards200Response>>;\n    public destiny2GetLeaderboardsForCharacter(characterId: number, destinyMembershipId: number, membershipType: number, maxtop?: number, modes?: string, statid?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (characterId === null || characterId === undefined) {\n            throw new Error('Required parameter characterId was null or undefined when calling destiny2GetLeaderboardsForCharacter.');\n        }\n        if (destinyMembershipId === null || destinyMembershipId === undefined) {\n            throw new Error('Required parameter destinyMembershipId was null or undefined when calling destiny2GetLeaderboardsForCharacter.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling destiny2GetLeaderboardsForCharacter.');\n        }\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (maxtop !== undefined && maxtop !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>maxtop, 'maxtop');\n        }\n        if (modes !== undefined && modes !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>modes, 'modes');\n        }\n        if (statid !== undefined && statid !== null) {\n          localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n            <any>statid, 'statid');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetClanLeaderboards200Response>(`${this.configuration.basePath}/Destiny2/Stats/Leaderboards/${encodeURIComponent(String(membershipType))}/${encodeURIComponent(String(destinyMembershipId))}/${encodeURIComponent(String(characterId))}/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Get items available from vendors where the vendors have items for sale that are common for everyone. If any portion of the Vendor\\&#39;s available inventory is character or account specific, we will be unable to return their data from this endpoint due to the way that available inventory is computed. As I am often guilty of saying: \\&#39;It\\&#39;s a long story...\\&#39;\n     * @param components A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2GetPublicVendors(components?: Array<number>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2GetPublicVendors200Response>;\n    public destiny2GetPublicVendors(components?: Array<number>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2GetPublicVendors200Response>>;\n    public destiny2GetPublicVendors(components?: Array<number>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2GetPublicVendors200Response>>;\n    public destiny2GetPublicVendors(components?: Array<number>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n        if (components) {\n            localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n                components.join(COLLECTION_FORMATS['csv']), 'components');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<Destiny2GetPublicVendors200Response>(`${this.configuration.basePath}/Destiny2/Vendors/`,\n            {\n                context: localVarHttpContext,\n                params: localVarQueryParameters,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insert a plug into a socketed item. I know how it sounds, but I assure you it\\&#39;s much more G-rated than you might be guessing. We haven\\&#39;t decided yet whether this will be able to insert plugs that have side effects, but if we do it will require special scope permission for an application attempting to do so. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. Request must include proof of permission for \\&#39;InsertPlugs\\&#39; from the account owner.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2InsertSocketPlug(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2InsertSocketPlug200Response>;\n    public destiny2InsertSocketPlug(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2InsertSocketPlug200Response>>;\n    public destiny2InsertSocketPlug(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2InsertSocketPlug200Response>>;\n    public destiny2InsertSocketPlug(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<Destiny2InsertSocketPlug200Response>(`${this.configuration.basePath}/Destiny2/Actions/Items/InsertSocketPlug/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Insert a \\&#39;free\\&#39; plug into an item\\&#39;s socket. This does not require \\&#39;Advanced Write Action\\&#39; authorization and is available to 3rd-party apps, but will only work on \\&#39;free and reversible\\&#39; socket actions (Perks, Armor Mods, Shaders, Ornaments, etc.). You must have a valid Destiny Account, and the character must either be in a social space, in orbit, or offline.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public destiny2InsertSocketPlugFree(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<Destiny2InsertSocketPlug200Response>;\n    public destiny2InsertSocketPlugFree(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<Destiny2InsertSocketPlug200Response>>;\n    public destiny2InsertSocketPlugFree(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<Destiny2InsertSocketPlug200Response>>;\n    public destiny2InsertSocketPlugFree(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<Destiny2InsertSocketPlug200Response>(`${this.configuration.basePath}/Destiny2/Actions/Items/InsertSocketPlugFree/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { GroupV2GetUserClanInviteSetting200Response } from '../model/groupV2GetUserClanInviteSetting200Response';\n// @ts-ignore\nimport { TokensGetBungieRewardsForUser200Response } from '../model/tokensGetBungieRewardsForUser200Response';\n// @ts-ignore\nimport { TokensGetPartnerOfferSkuHistory200Response } from '../model/tokensGetPartnerOfferSkuHistory200Response';\n// @ts-ignore\nimport { TokensGetPartnerRewardHistory200Response } from '../model/tokensGetPartnerRewardHistory200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TokensService {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Apply a partner offer to the targeted user. This endpoint does not claim a new offer, but any already claimed offers will be applied to the game if not already.\n     * @param partnerApplicationId The partner application identifier.\n     * @param targetBnetMembershipId The bungie.net user to apply missing offers to. If not self, elevated permissions are required.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public tokensApplyMissingPartnerOffersWithoutClaim(partnerApplicationId: number, targetBnetMembershipId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2GetUserClanInviteSetting200Response>;\n    public tokensApplyMissingPartnerOffersWithoutClaim(partnerApplicationId: number, targetBnetMembershipId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2GetUserClanInviteSetting200Response>>;\n    public tokensApplyMissingPartnerOffersWithoutClaim(partnerApplicationId: number, targetBnetMembershipId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2GetUserClanInviteSetting200Response>>;\n    public tokensApplyMissingPartnerOffersWithoutClaim(partnerApplicationId: number, targetBnetMembershipId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (partnerApplicationId === null || partnerApplicationId === undefined) {\n            throw new Error('Required parameter partnerApplicationId was null or undefined when calling tokensApplyMissingPartnerOffersWithoutClaim.');\n        }\n        if (targetBnetMembershipId === null || targetBnetMembershipId === undefined) {\n            throw new Error('Required parameter targetBnetMembershipId was null or undefined when calling tokensApplyMissingPartnerOffersWithoutClaim.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2GetUserClanInviteSetting200Response>(`${this.configuration.basePath}/Tokens/Partner/ApplyMissingOffers/${encodeURIComponent(String(partnerApplicationId))}/${encodeURIComponent(String(targetBnetMembershipId))}/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Claim a partner offer as the authenticated user.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public tokensClaimPartnerOffer(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2GetUserClanInviteSetting200Response>;\n    public tokensClaimPartnerOffer(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2GetUserClanInviteSetting200Response>>;\n    public tokensClaimPartnerOffer(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2GetUserClanInviteSetting200Response>>;\n    public tokensClaimPartnerOffer(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2GetUserClanInviteSetting200Response>(`${this.configuration.basePath}/Tokens/Partner/ClaimOffer/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Twitch Drops self-repair function - scans twitch for drops not marked as fulfilled and resyncs them.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public tokensForceDropsRepair(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<GroupV2GetUserClanInviteSetting200Response>;\n    public tokensForceDropsRepair(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<GroupV2GetUserClanInviteSetting200Response>>;\n    public tokensForceDropsRepair(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<GroupV2GetUserClanInviteSetting200Response>>;\n    public tokensForceDropsRepair(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<GroupV2GetUserClanInviteSetting200Response>(`${this.configuration.basePath}/Tokens/Partner/ForceDropsRepair/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the bungie rewards for the targeted user when a platform membership Id and Type are used.\n     * @param membershipId users platform membershipId for requested user rewards. If not self, elevated permissions are required.\n     * @param membershipType The target Destiny 2 membership type.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public tokensGetBungieRewardsForPlatformUser(membershipId: number, membershipType: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<TokensGetBungieRewardsForUser200Response>;\n    public tokensGetBungieRewardsForPlatformUser(membershipId: number, membershipType: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<TokensGetBungieRewardsForUser200Response>>;\n    public tokensGetBungieRewardsForPlatformUser(membershipId: number, membershipType: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<TokensGetBungieRewardsForUser200Response>>;\n    public tokensGetBungieRewardsForPlatformUser(membershipId: number, membershipType: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (membershipId === null || membershipId === undefined) {\n            throw new Error('Required parameter membershipId was null or undefined when calling tokensGetBungieRewardsForPlatformUser.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling tokensGetBungieRewardsForPlatformUser.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<TokensGetBungieRewardsForUser200Response>(`${this.configuration.basePath}/Tokens/Rewards/GetRewardsForPlatformUser/${encodeURIComponent(String(membershipId))}/${encodeURIComponent(String(membershipType))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the bungie rewards for the targeted user.\n     * @param membershipId bungie.net user membershipId for requested user rewards. If not self, elevated permissions are required.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public tokensGetBungieRewardsForUser(membershipId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<TokensGetBungieRewardsForUser200Response>;\n    public tokensGetBungieRewardsForUser(membershipId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<TokensGetBungieRewardsForUser200Response>>;\n    public tokensGetBungieRewardsForUser(membershipId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<TokensGetBungieRewardsForUser200Response>>;\n    public tokensGetBungieRewardsForUser(membershipId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (membershipId === null || membershipId === undefined) {\n            throw new Error('Required parameter membershipId was null or undefined when calling tokensGetBungieRewardsForUser.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<TokensGetBungieRewardsForUser200Response>(`${this.configuration.basePath}/Tokens/Rewards/GetRewardsForUser/${encodeURIComponent(String(membershipId))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of the current bungie rewards\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public tokensGetBungieRewardsList(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<TokensGetBungieRewardsForUser200Response>;\n    public tokensGetBungieRewardsList(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<TokensGetBungieRewardsForUser200Response>>;\n    public tokensGetBungieRewardsList(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<TokensGetBungieRewardsForUser200Response>>;\n    public tokensGetBungieRewardsList(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<TokensGetBungieRewardsForUser200Response>(`${this.configuration.basePath}/Tokens/Rewards/BungieRewards/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the partner sku and offer history of the targeted user. Elevated permissions are required to see users that are not yourself.\n     * @param partnerApplicationId The partner application identifier.\n     * @param targetBnetMembershipId The bungie.net user to apply missing offers to. If not self, elevated permissions are required.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public tokensGetPartnerOfferSkuHistory(partnerApplicationId: number, targetBnetMembershipId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<TokensGetPartnerOfferSkuHistory200Response>;\n    public tokensGetPartnerOfferSkuHistory(partnerApplicationId: number, targetBnetMembershipId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<TokensGetPartnerOfferSkuHistory200Response>>;\n    public tokensGetPartnerOfferSkuHistory(partnerApplicationId: number, targetBnetMembershipId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<TokensGetPartnerOfferSkuHistory200Response>>;\n    public tokensGetPartnerOfferSkuHistory(partnerApplicationId: number, targetBnetMembershipId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (partnerApplicationId === null || partnerApplicationId === undefined) {\n            throw new Error('Required parameter partnerApplicationId was null or undefined when calling tokensGetPartnerOfferSkuHistory.');\n        }\n        if (targetBnetMembershipId === null || targetBnetMembershipId === undefined) {\n            throw new Error('Required parameter targetBnetMembershipId was null or undefined when calling tokensGetPartnerOfferSkuHistory.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<TokensGetPartnerOfferSkuHistory200Response>(`${this.configuration.basePath}/Tokens/Partner/History/${encodeURIComponent(String(partnerApplicationId))}/${encodeURIComponent(String(targetBnetMembershipId))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the partner rewards history of the targeted user, both partner offers and Twitch drops.\n     * @param partnerApplicationId The partner application identifier.\n     * @param targetBnetMembershipId The bungie.net user to return reward history for.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public tokensGetPartnerRewardHistory(partnerApplicationId: number, targetBnetMembershipId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<TokensGetPartnerRewardHistory200Response>;\n    public tokensGetPartnerRewardHistory(partnerApplicationId: number, targetBnetMembershipId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<TokensGetPartnerRewardHistory200Response>>;\n    public tokensGetPartnerRewardHistory(partnerApplicationId: number, targetBnetMembershipId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<TokensGetPartnerRewardHistory200Response>>;\n    public tokensGetPartnerRewardHistory(partnerApplicationId: number, targetBnetMembershipId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (partnerApplicationId === null || partnerApplicationId === undefined) {\n            throw new Error('Required parameter partnerApplicationId was null or undefined when calling tokensGetPartnerRewardHistory.');\n        }\n        if (targetBnetMembershipId === null || targetBnetMembershipId === undefined) {\n            throw new Error('Required parameter targetBnetMembershipId was null or undefined when calling tokensGetPartnerRewardHistory.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<TokensGetPartnerRewardHistory200Response>(`${this.configuration.basePath}/Tokens/Partner/History/${encodeURIComponent(String(targetBnetMembershipId))}/Application/${encodeURIComponent(String(partnerApplicationId))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { TrendingGetTrendingCategories200Response } from '../model/trendingGetTrendingCategories200Response';\n// @ts-ignore\nimport { TrendingGetTrendingCategory200Response } from '../model/trendingGetTrendingCategory200Response';\n// @ts-ignore\nimport { TrendingGetTrendingEntryDetail200Response } from '../model/trendingGetTrendingEntryDetail200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TrendingService {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Returns trending items for Bungie.net, collapsed into the first page of items per category. For pagination within a category, call GetTrendingCategory.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public trendingGetTrendingCategories(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<TrendingGetTrendingCategories200Response>;\n    public trendingGetTrendingCategories(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<TrendingGetTrendingCategories200Response>>;\n    public trendingGetTrendingCategories(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<TrendingGetTrendingCategories200Response>>;\n    public trendingGetTrendingCategories(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<TrendingGetTrendingCategories200Response>(`${this.configuration.basePath}/Trending/Categories/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns paginated lists of trending items for a category.\n     * @param categoryId The ID of the category for whom you want additional results.\n     * @param pageNumber The page # of results to return.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public trendingGetTrendingCategory(categoryId: string, pageNumber: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<TrendingGetTrendingCategory200Response>;\n    public trendingGetTrendingCategory(categoryId: string, pageNumber: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<TrendingGetTrendingCategory200Response>>;\n    public trendingGetTrendingCategory(categoryId: string, pageNumber: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<TrendingGetTrendingCategory200Response>>;\n    public trendingGetTrendingCategory(categoryId: string, pageNumber: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (categoryId === null || categoryId === undefined) {\n            throw new Error('Required parameter categoryId was null or undefined when calling trendingGetTrendingCategory.');\n        }\n        if (pageNumber === null || pageNumber === undefined) {\n            throw new Error('Required parameter pageNumber was null or undefined when calling trendingGetTrendingCategory.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<TrendingGetTrendingCategory200Response>(`${this.configuration.basePath}/Trending/Categories/${encodeURIComponent(String(categoryId))}/${encodeURIComponent(String(pageNumber))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns the detailed results for a specific trending entry. Note that trending entries are uniquely identified by a combination of *both* the TrendingEntryType *and* the identifier: the identifier alone is not guaranteed to be globally unique.\n     * @param identifier The identifier for the entity to be returned.\n     * @param trendingEntryType The type of entity to be returned.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public trendingGetTrendingEntryDetail(identifier: string, trendingEntryType: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<TrendingGetTrendingEntryDetail200Response>;\n    public trendingGetTrendingEntryDetail(identifier: string, trendingEntryType: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<TrendingGetTrendingEntryDetail200Response>>;\n    public trendingGetTrendingEntryDetail(identifier: string, trendingEntryType: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<TrendingGetTrendingEntryDetail200Response>>;\n    public trendingGetTrendingEntryDetail(identifier: string, trendingEntryType: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (identifier === null || identifier === undefined) {\n            throw new Error('Required parameter identifier was null or undefined when calling trendingGetTrendingEntryDetail.');\n        }\n        if (trendingEntryType === null || trendingEntryType === undefined) {\n            throw new Error('Required parameter trendingEntryType was null or undefined when calling trendingGetTrendingEntryDetail.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<TrendingGetTrendingEntryDetail200Response>(`${this.configuration.basePath}/Trending/Details/${encodeURIComponent(String(trendingEntryType))}/${encodeURIComponent(String(identifier))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/**\n * Bungie.Net API\n * These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.\n *\n * The version of the OpenAPI document: 2.18.0\n * Contact: support@bungie.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional }                      from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n         HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n        }       from '@angular/common/http';\nimport { CustomHttpParameterCodec }                          from '../encoder';\nimport { Observable }                                        from 'rxjs';\n\n// @ts-ignore\nimport { UserGetAvailableThemes200Response } from '../model/userGetAvailableThemes200Response';\n// @ts-ignore\nimport { UserGetBungieNetUserById200Response } from '../model/userGetBungieNetUserById200Response';\n// @ts-ignore\nimport { UserGetCredentialTypesForTargetAccount200Response } from '../model/userGetCredentialTypesForTargetAccount200Response';\n// @ts-ignore\nimport { UserGetMembershipDataById200Response } from '../model/userGetMembershipDataById200Response';\n// @ts-ignore\nimport { UserGetMembershipFromHardLinkedCredential200Response } from '../model/userGetMembershipFromHardLinkedCredential200Response';\n// @ts-ignore\nimport { UserGetSanitizedPlatformDisplayNames200Response } from '../model/userGetSanitizedPlatformDisplayNames200Response';\n// @ts-ignore\nimport { UserSearchByGlobalNamePrefix200Response } from '../model/userSearchByGlobalNamePrefix200Response';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS }                     from '../variables';\nimport { Configuration }                                     from '../configuration';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UserService {\n\n    protected basePath = 'https://www.bungie.net/Platform';\n    public defaultHeaders = new HttpHeaders();\n    public configuration = new Configuration();\n    public encoder: HttpParameterCodec;\n\n    constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n        if (configuration) {\n            this.configuration = configuration;\n        }\n        if (typeof this.configuration.basePath !== 'string') {\n            if (typeof basePath !== 'string') {\n                basePath = this.basePath;\n            }\n            this.configuration.basePath = basePath;\n        }\n        this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n    }\n\n\n    // @ts-ignore\n    private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n        if (typeof value === \"object\" && value instanceof Date === false) {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value);\n        } else {\n            httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n        }\n        return httpParams;\n    }\n\n    private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n        if (value == null) {\n            return httpParams;\n        }\n\n        if (typeof value === \"object\") {\n            if (Array.isArray(value)) {\n                (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n            } else if (value instanceof Date) {\n                if (key != null) {\n                    httpParams = httpParams.append(key, (value as Date).toISOString().substr(0, 10));\n                } else {\n                   throw Error(\"key may not be null if value is Date\");\n                }\n            } else {\n                Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n                    httpParams, value[k], key != null ? `${key}.${k}` : k));\n            }\n        } else if (key != null) {\n            httpParams = httpParams.append(key, value);\n        } else {\n            throw Error(\"key may not be null if value is not object or array\");\n        }\n        return httpParams;\n    }\n\n    /**\n     * Returns a list of all available user themes.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public userGetAvailableThemes(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<UserGetAvailableThemes200Response>;\n    public userGetAvailableThemes(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<UserGetAvailableThemes200Response>>;\n    public userGetAvailableThemes(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<UserGetAvailableThemes200Response>>;\n    public userGetAvailableThemes(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<UserGetAvailableThemes200Response>(`${this.configuration.basePath}/User/GetAvailableThemes/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Loads a bungienet user by membership id.\n     * @param id The requested Bungie.net membership id.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public userGetBungieNetUserById(id: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<UserGetBungieNetUserById200Response>;\n    public userGetBungieNetUserById(id: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<UserGetBungieNetUserById200Response>>;\n    public userGetBungieNetUserById(id: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<UserGetBungieNetUserById200Response>>;\n    public userGetBungieNetUserById(id: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (id === null || id === undefined) {\n            throw new Error('Required parameter id was null or undefined when calling userGetBungieNetUserById.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<UserGetBungieNetUserById200Response>(`${this.configuration.basePath}/User/GetBungieNetUserById/${encodeURIComponent(String(id))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of credential types attached to the requested account\n     * @param membershipId The user\\&#39;s membership id\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public userGetCredentialTypesForTargetAccount(membershipId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<UserGetCredentialTypesForTargetAccount200Response>;\n    public userGetCredentialTypesForTargetAccount(membershipId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<UserGetCredentialTypesForTargetAccount200Response>>;\n    public userGetCredentialTypesForTargetAccount(membershipId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<UserGetCredentialTypesForTargetAccount200Response>>;\n    public userGetCredentialTypesForTargetAccount(membershipId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (membershipId === null || membershipId === undefined) {\n            throw new Error('Required parameter membershipId was null or undefined when calling userGetCredentialTypesForTargetAccount.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<UserGetCredentialTypesForTargetAccount200Response>(`${this.configuration.basePath}/User/GetCredentialTypesForTargetAccount/${encodeURIComponent(String(membershipId))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of accounts associated with the supplied membership ID and membership type. This will include all linked accounts (even when hidden) if supplied credentials permit it.\n     * @param membershipId The membership ID of the target user.\n     * @param membershipType Type of the supplied membership ID.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public userGetMembershipDataById(membershipId: number, membershipType: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<UserGetMembershipDataById200Response>;\n    public userGetMembershipDataById(membershipId: number, membershipType: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<UserGetMembershipDataById200Response>>;\n    public userGetMembershipDataById(membershipId: number, membershipType: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<UserGetMembershipDataById200Response>>;\n    public userGetMembershipDataById(membershipId: number, membershipType: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (membershipId === null || membershipId === undefined) {\n            throw new Error('Required parameter membershipId was null or undefined when calling userGetMembershipDataById.');\n        }\n        if (membershipType === null || membershipType === undefined) {\n            throw new Error('Required parameter membershipType was null or undefined when calling userGetMembershipDataById.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<UserGetMembershipDataById200Response>(`${this.configuration.basePath}/User/GetMembershipsById/${encodeURIComponent(String(membershipId))}/${encodeURIComponent(String(membershipType))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Returns a list of accounts associated with signed in user. This is useful for OAuth implementations that do not give you access to the token response.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public userGetMembershipDataForCurrentUser(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<UserGetMembershipDataById200Response>;\n    public userGetMembershipDataForCurrentUser(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<UserGetMembershipDataById200Response>>;\n    public userGetMembershipDataForCurrentUser(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<UserGetMembershipDataById200Response>>;\n    public userGetMembershipDataForCurrentUser(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarCredential: string | undefined;\n        // authentication (oauth2) required\n        localVarCredential = this.configuration.lookupCredential('oauth2');\n        if (localVarCredential) {\n            localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n        }\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<UserGetMembershipDataById200Response>(`${this.configuration.basePath}/User/GetMembershipsForCurrentUser/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets any hard linked membership given a credential. Only works for credentials that are public (just SteamID64 right now). Cross Save aware.\n     * @param credential The credential to look up. Must be a valid SteamID64.\n     * @param crType The credential type. \\&#39;SteamId\\&#39; is the only valid value at present.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public userGetMembershipFromHardLinkedCredential(credential: string, crType: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<UserGetMembershipFromHardLinkedCredential200Response>;\n    public userGetMembershipFromHardLinkedCredential(credential: string, crType: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<UserGetMembershipFromHardLinkedCredential200Response>>;\n    public userGetMembershipFromHardLinkedCredential(credential: string, crType: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<UserGetMembershipFromHardLinkedCredential200Response>>;\n    public userGetMembershipFromHardLinkedCredential(credential: string, crType: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (credential === null || credential === undefined) {\n            throw new Error('Required parameter credential was null or undefined when calling userGetMembershipFromHardLinkedCredential.');\n        }\n        if (crType === null || crType === undefined) {\n            throw new Error('Required parameter crType was null or undefined when calling userGetMembershipFromHardLinkedCredential.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<UserGetMembershipFromHardLinkedCredential200Response>(`${this.configuration.basePath}/User/GetMembershipFromHardLinkedCredential/${encodeURIComponent(String(crType))}/${encodeURIComponent(String(credential))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Gets a list of all display names linked to this membership id but sanitized (profanity filtered). Obeys all visibility rules of calling user and is heavily cached.\n     * @param membershipId The requested membership id to load.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public userGetSanitizedPlatformDisplayNames(membershipId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<UserGetSanitizedPlatformDisplayNames200Response>;\n    public userGetSanitizedPlatformDisplayNames(membershipId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<UserGetSanitizedPlatformDisplayNames200Response>>;\n    public userGetSanitizedPlatformDisplayNames(membershipId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<UserGetSanitizedPlatformDisplayNames200Response>>;\n    public userGetSanitizedPlatformDisplayNames(membershipId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (membershipId === null || membershipId === undefined) {\n            throw new Error('Required parameter membershipId was null or undefined when calling userGetSanitizedPlatformDisplayNames.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<UserGetSanitizedPlatformDisplayNames200Response>(`${this.configuration.basePath}/User/GetSanitizedPlatformDisplayNames/${encodeURIComponent(String(membershipId))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * Given the prefix of a global display name, returns all users who share that name.\n     * @param page The zero-based page of results you desire.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public userSearchByGlobalNamePost(page: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<UserSearchByGlobalNamePrefix200Response>;\n    public userSearchByGlobalNamePost(page: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<UserSearchByGlobalNamePrefix200Response>>;\n    public userSearchByGlobalNamePost(page: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<UserSearchByGlobalNamePrefix200Response>>;\n    public userSearchByGlobalNamePost(page: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (page === null || page === undefined) {\n            throw new Error('Required parameter page was null or undefined when calling userSearchByGlobalNamePost.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.post<UserSearchByGlobalNamePrefix200Response>(`${this.configuration.basePath}/User/Search/GlobalName/${encodeURIComponent(String(page))}/`,\n            null,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n    /**\n     * [OBSOLETE] Do not use this to search users, use SearchByGlobalNamePost instead.\n     * @param displayNamePrefix The display name prefix you\\&#39;re looking for.\n     * @param page The zero-based page of results you desire.\n     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n     * @param reportProgress flag to report request and response progress.\n     */\n    public userSearchByGlobalNamePrefix(displayNamePrefix: string, page: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<UserSearchByGlobalNamePrefix200Response>;\n    public userSearchByGlobalNamePrefix(displayNamePrefix: string, page: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpResponse<UserSearchByGlobalNamePrefix200Response>>;\n    public userSearchByGlobalNamePrefix(displayNamePrefix: string, page: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<HttpEvent<UserSearchByGlobalNamePrefix200Response>>;\n    public userSearchByGlobalNamePrefix(displayNamePrefix: string, page: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext}): Observable<any> {\n        if (displayNamePrefix === null || displayNamePrefix === undefined) {\n            throw new Error('Required parameter displayNamePrefix was null or undefined when calling userSearchByGlobalNamePrefix.');\n        }\n        if (page === null || page === undefined) {\n            throw new Error('Required parameter page was null or undefined when calling userSearchByGlobalNamePrefix.');\n        }\n\n        let localVarHeaders = this.defaultHeaders;\n\n        let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n        if (localVarHttpHeaderAcceptSelected === undefined) {\n            // to determine the Accept header\n            const httpHeaderAccepts: string[] = [\n                '*/*'\n            ];\n            localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n        }\n        if (localVarHttpHeaderAcceptSelected !== undefined) {\n            localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n        }\n\n        let localVarHttpContext: HttpContext | undefined = options && options.context;\n        if (localVarHttpContext === undefined) {\n            localVarHttpContext = new HttpContext();\n        }\n\n\n        let responseType_: 'text' | 'json' | 'blob' = 'json';\n        if (localVarHttpHeaderAcceptSelected) {\n            if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n                responseType_ = 'text';\n            } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n                responseType_ = 'json';\n            } else {\n                responseType_ = 'json';;\n            }\n        }\n\n        return this.httpClient.get<UserSearchByGlobalNamePrefix200Response>(`${this.configuration.basePath}/User/Search/Prefix/${encodeURIComponent(String(displayNamePrefix))}/${encodeURIComponent(String(page))}/`,\n            {\n                context: localVarHttpContext,\n                responseType: <any>responseType_,\n                withCredentials: this.configuration.withCredentials,\n                headers: localVarHeaders,\n                observe: observe,\n                reportProgress: reportProgress\n            }\n        );\n    }\n\n}\n","/*\r\n * Public API Surface of bungie-api-angular\r\n */\r\nexport * from './lib/api.module';\r\nexport * from './lib/model/models';\r\nexport * from './lib/configuration';\r\n\r\nexport * from './lib/api/app.service';\r\nexport * from './lib/api/communityContent.service';\r\nexport * from './lib/api/content.service';\r\nexport * from './lib/api/default.service';\r\nexport * from './lib/api/destiny2.service';\r\nexport * from './lib/api/fireteam.service';\r\nexport * from './lib/api/forum.service';\r\nexport * from './lib/api/groupV2.service';\r\nexport * from './lib/api/preview.service';\r\nexport * from './lib/api/tokens.service';\r\nexport * from './lib/api/trending.service';\r\nexport * from './lib/api/user.service';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.Configuration"],"mappings":"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;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;KAC9C,CAAC;AACN,CAAC,EAxFgB,2CAA2C,KAA3C,2CAA2C,GAwF3D,EAAA,CAAA,CAAA;;ACrOD;;;;;;;;;;AAUG;AA4Bc,IAAA,wDAwFhB;AAxFD,CAAA,UAAiB,uDAAuD,EAAA;IAEvD,uDAAA,CAAA,0BAA0B,GAAG;AACtC,QAAA,QAAQ,EAAE,CAA+B;AACzC,QAAA,QAAQ,EAAE,CAA+B;AACzC,QAAA,QAAQ,EAAE,CAA+B;AACzC,QAAA,QAAQ,EAAE,CAA+B;AACzC,QAAA,QAAQ,EAAE,CAA+B;AACzC,QAAA,QAAQ,EAAE,CAA+B;AACzC,QAAA,QAAQ,EAAE,CAA+B;AACzC,QAAA,QAAQ,EAAE,CAA+B;AACzC,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AAC3C,QAAA,SAAS,EAAE,EAAgC;AA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G;AACvC,QAAA,QAAQ,EAAE,CAAgC;AAC1C,QAAA,QAAQ,EAAE,CAAgC;AAC1C,QAAA,QAAQ,EAAE,CAAgC;AAC1C,QAAA,QAAQ,EAAE,CAAgC;AAC1C,QAAA,QAAQ,EAAE,CAAgC;AAC1C,QAAA,QAAQ,EAAE,CAAgC;AAC1C,QAAA,QAAQ,EAAE,CAAgC;AAC1C,QAAA,QAAQ,EAAE,CAAgC;AAC1C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA,SAAS,EAAE,EAAiC;AAC5C,QAAA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AAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA8D;AACzE,IAAA,SAAS,EAAE,EAA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AA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;KACxC,CAAC;AACN,CAAC,EAxFgB,yCAAyC,KAAzC,yCAAyC,GAwFzD,EAAA,CAAA,CAAA;;AC/FgB,IAAA,iDAwFhB;AAxFD,CAAA,UAAiB,gDAAgD,EAAA;IAEhD,gDAAA,CAAA,oBAAoB,GAAG;AAChC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;KACxC,CAAC;AACN,CAAC,EAxFgB,gDAAgD,KAAhD,gDAAgD,GAwFhE,EAAA,CAAA,CAAA;;AChFgB,IAAA,+CAwFhB;AAxFD,CAAA,UAAiB,8CAA8C,EAAA;IAE9C,8CAAA,CAAA,oBAAoB,GAAG;AAChC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;KACxC,CAAC;AACN,CAAC,EAxFgB,8CAA8C,KAA9C,8CAA8C,GAwF9D,EAAA,CAAA,CAAA;;ACzFgB,IAAA,gDAwFhB;AAxFD,CAAA,UAAiB,+CAA+C,EAAA;IAE/C,+CAAA,CAAA,oBAAoB,GAAG;AAChC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;KACxC,CAAC;AACN,CAAC,EAxFgB,+CAA+C,KAA/C,+CAA+C,GAwF/D,EAAA,CAAA,CAAA;;AC/HD;;;;;;;;;;AAUG;AAoBc,IAAA,uDAwFhB;AAxFD,CAAA,UAAiB,sDAAsD,EAAA;IAEtD,sDAAA,CAAA,oBAAoB,GAAG;AAChC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;KACxC,CAAC;AACN,CAAC,EAxFgB,sDAAsD,KAAtD,sDAAsD,GAwFtE,EAAA,CAAA,CAAA;;AC9EgB,IAAA,qDAwFhB;AAxFD,CAAA,UAAiB,oDAAoD,EAAA;IAEpD,oDAAA,CAAA,oBAAoB,GAAG;AAChC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,QAAQ,EAAE,CAAyB;AACnC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;AACrC,QAAA,SAAS,EAAE,EAA0B;KACxC,CAAC;AACN,CAAC,EAxFgB,oDAAoD,KAApD,oDAAoD,GAwFpE,EAAA,CAAA,CAAA;;AChID;;;;;;;;;;AAUG;AAQU,MAAA,2BAA2B,GAAG;AACvC,IAAA,QAAQ,EAAE,CAAgC;AAC1C,IAAA,QAAQ,EAAE,CAAgC;AAC1C,IAAA,QAAQ,EAAE,CAAgC;;;ACrB9C;;;;;;;;;;AAUG;AAQU,MAAA,mBAAmB,GAAG;AAC/B,IAAA,QAAQ,EAAE,CAAwB;AAClC,IAAA,QAAQ,EAAE,CAAwB;;;ACpBtC;;;;;;;;;;AAUG;AAQU,MAAA,4CAA4C,GAAG;AACxD,IAAA,QAAQ,EAAE,CAAiD;AAC3D,IAAA,QAAQ,EAAE,CAAiD;;;ACkD9C,IAAA,2CAehB;AAfD,CAAA,UAAiB,0CAA0C,EAAA;IAE1C,0CAAA,CAAA,wBAAwB,GAAG;AACpC,QAAA,QAAQ,EAAE,CAA6B;AACvC,QAAA,QAAQ,EAAE,CAA6B;AACvC,QAAA,QAAQ,EAAE,CAA6B;AACvC,QAAA,QAAQ,EAAE,CAA6B;AACvC,QAAA,QAAQ,EAAE,CAA6B;AACvC,QAAA,SAAS,EAAE,EAA8B;AACzC,QAAA,SAAS,EAAE,EAA8B;AACzC,QAAA,SAAS,EAAE,EAA8B;AACzC,QAAA,UAAU,EAAE,GAA+B;AAC3C,QAAA,UAAU,EAAE,GAA+B;AAC3C,QAAA,UAAU,EAAE,GAA+B;KAC9C,CAAC;AACN,CAAC,EAfgB,0CAA0C,KAA1C,0CAA0C,GAe1D,EAAA,CAAA,CAAA;;ACrFD;;;;;;;;;;AAUG;AAQU,MAAA,wBAAwB,GAAG;AACpC,IAAA,QAAQ,EAAE,CAA6B;AACvC,IAAA,QAAQ,EAAE,CAA6B;AACvC,IAAA,QAAQ,EAAE,CAA6B;AACvC,IAAA,QAAQ,EAAE,CAA6B;AACvC,IAAA,QAAQ,EAAE,CAA6B;;;ACvB3C;;;;;;;;;;AAUG;AAQU,MAAA,2BAA2B,GAAG;AACvC,IAAA,QAAQ,EAAE,CAAgC;AAC1C,IAAA,QAAQ,EAAE,CAAgC;AAC1C,IAAA,QAAQ,EAAE,CAAgC;;;ACrB9C;;;;;;;;;;AAUG;AAQU,MAAA,sBAAsB,GAAG;AAClC,IAAA,QAAQ,EAAE,CAA2B;AACrC,IAAA,QAAQ,EAAE,CAA2B;AACrC,IAAA,QAAQ,EAAE,CAA2B;AACrC,IAAA,QAAQ,EAAE,CAA2B;AACrC,IAAA,SAAS,EAAE,EAA4B;AACvC,IAAA,SAAS,EAAE,EAA4B;AACvC,IAAA,SAAS,EAAE,EAA4B;AACvC,IAAA,SAAS,EAAE,EAA4B;AACvC,IAAA,SAAS,EAAE,EAA4B;;;AC3B3C;;;;;;;;;;AAUG;AAKU,MAAA,eAAe,GAAG;AAC3B,IAAA,QAAQ,EAAE,CAAoB;AAC9B,IAAA,QAAQ,EAAE,CAAoB;AAC9B,IAAA,QAAQ,EAAE,CAAoB;AAC9B,IAAA,QAAQ,EAAE,CAAoB;AAC9B,IAAA,QAAQ,EAAE,CAAoB;AAC9B,IAAA,QAAQ,EAAE,CAAoB;AAC9B,IAAA,QAAQ,EAAE,CAAoB;;;ACtBlC;;;;;;;;;;AAUG;AAQU,MAAA,uBAAuB,GAAG;AACnC,IAAA,QAAQ,EAAE,CAA4B;AACtC,IAAA,QAAQ,EAAE,CAA4B;AACtC,IAAA,QAAQ,EAAE,CAA4B;AACtC,IAAA,QAAQ,EAAE,CAA4B;;;ACtB1C;;;;;;;;;;AAUG;AAQU,MAAA,qCAAqC,GAAG;AACjD,IAAA,QAAQ,EAAE,CAA0C;AACpD,IAAA,QAAQ,EAAE,CAA0C;;;ACpBxD;;;;;;;;;;AAUG;AAQU,MAAA,4BAA4B,GAAG;AACxC,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,SAAS,EAAE,EAAkC;;;AC7BjD;;;;;;;;;;AAUG;AAKU,MAAA,uBAAuB,GAAG;AACnC,IAAA,QAAQ,EAAE,CAA4B;AACtC,IAAA,QAAQ,EAAE,CAA4B;AACtC,IAAA,QAAQ,EAAE,CAA4B;AACtC,IAAA,QAAQ,EAAE,CAA4B;AACtC,IAAA,QAAQ,EAAE,CAA4B;AACtC,IAAA,SAAS,EAAE,EAA6B;AACxC,IAAA,SAAS,EAAE,EAA6B;AACxC,IAAA,SAAS,EAAE,EAA6B;AACxC,IAAA,UAAU,EAAE,GAA8B;AAC1C,IAAA,UAAU,EAAE,GAA8B;AAC1C,IAAA,UAAU,EAAE,GAA8B;AAC1C,IAAA,WAAW,EAAE,IAA+B;AAC5C,IAAA,WAAW,EAAE,IAA+B;AAC5C,IAAA,WAAW,EAAE,IAA+B;AAC5C,IAAA,WAAW,EAAE,IAA+B;;;AC9BhD;;;;;;;;;;AAUG;AAKU,MAAA,4BAA4B,GAAG;AACxC,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,QAAQ,EAAE,CAAiC;AAC3C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,SAAS,EAAE,EAAkC;AAC7C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,UAAU,EAAE,GAAmC;AAC/C,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,WAAW,EAAE,IAAoC;AACjD,IAAA,W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"}