@mtgame/core 2.0.15 → 2.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/tournament-round-api.d.ts +2 -0
- package/esm2020/api/tournament-round-api.mjs +8 -2
- package/esm2020/models/tournament-round-team.mjs +2 -24
- package/esm2020/models/util.mjs +2 -2
- package/fesm2015/mtgame-core.mjs +9 -20
- package/fesm2015/mtgame-core.mjs.map +1 -1
- package/fesm2020/mtgame-core.mjs +7 -23
- package/fesm2020/mtgame-core.mjs.map +1 -1
- package/models/tournament-round-team.d.ts +1 -7
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtgame-core.mjs","sources":["../../../projects/core/src/models/util.ts","../../../projects/core/src/models/file.ts","../../../projects/core/src/models/sport.ts","../../../projects/core/src/models/user-profile.ts","../../../projects/core/src/models/city.ts","../../../projects/core/src/models/basketball-profile.ts","../../../projects/core/src/models/volleyball-profile.ts","../../../projects/core/src/models/hockey-profile.ts","../../../projects/core/src/models/football-profile.ts","../../../projects/core/src/models/handball-profile.ts","../../../projects/core/src/models/rugby-profile.ts","../../../projects/core/src/models/waterpolo-profile.ts","../../../projects/core/src/models/user.ts","../../../projects/core/src/models/team.ts","../../../projects/core/src/models/organization.ts","../../../projects/core/src/models/league.ts","../../../projects/core/src/models/tournament-season.ts","../../../projects/core/src/models/tournament-group.ts","../../../projects/core/src/models/tournament-division.ts","../../../projects/core/src/models/league-field-base-value.ts","../../../projects/core/src/models/league-field-base.ts","../../../projects/core/src/models/league-team-field.ts","../../../projects/core/src/models/tournament-team-field-value.ts","../../../projects/core/src/models/tournament-team.ts","../../../projects/core/src/models/tournament.ts","../../../projects/core/src/models/game-config-base.ts","../../../projects/core/src/models/basketball-game-config.ts","../../../projects/core/src/models/volleyball-game-config.ts","../../../projects/core/src/models/league-court.ts","../../../projects/core/src/models/media-item.ts","../../../projects/core/src/models/hockey-game-config.ts","../../../projects/core/src/models/football-game-config.ts","../../../projects/core/src/models/handball-game-config.ts","../../../projects/core/src/utils/array.ts","../../../projects/core/src/models/playoff.ts","../../../projects/core/src/models/rugby-game-config.ts","../../../projects/core/src/models/waterpolo-game-config.ts","../../../projects/core/src/models/game.ts","../../../projects/core/src/models/team-user.ts","../../../projects/core/src/models/tournament-disqualification.ts","../../../projects/core/src/models/league-player-field.ts","../../../projects/core/src/models/league-player-field-value.ts","../../../projects/core/src/models/league-player.ts","../../../projects/core/src/models/tournament-team-user.ts","../../../projects/core/src/models/base-statistic.ts","../../../projects/core/src/models/basketball-statistic.ts","../../../projects/core/src/models/basketball-game-team-statistic.ts","../../../projects/core/src/models/game-statistic-base.ts","../../../projects/core/src/models/basketball-game-statistic.ts","../../../projects/core/src/models/game-log-base.ts","../../../projects/core/src/models/basketball-game-log.ts","../../../projects/core/src/models/game-user.ts","../../../projects/core/src/models/game-user-limitation.ts","../../../projects/core/src/models/game-user-disqualification.ts","../../../projects/core/src/utils/data.ts","../../../projects/core/src/storage/store.ts","../../../projects/core/src/services/base.service.ts","../../../projects/core/src/services/config.service.ts","../../../projects/core/src/api/game-base-api.ts","../../../projects/core/src/api/basketball-game-api.ts","../../../projects/core/src/models/feedback.ts","../../../projects/core/src/api/feedback-api.ts","../../../projects/core/src/api/file-api.ts","../../../projects/core/src/localization/hockey-penalty-types.ts","../../../projects/core/src/models/hockey-penalty-types.ts","../../../projects/core/src/models/hockey-game-log.ts","../../../projects/core/src/models/hockey-game-statistic.ts","../../../projects/core/src/models/hockey-statistic.ts","../../../projects/core/src/models/hockey-game-team-statistic.ts","../../../projects/core/src/api/hockey-game-api.ts","../../../projects/core/src/models/football-game-log.ts","../../../projects/core/src/models/football-game-statistic.ts","../../../projects/core/src/models/football-statistic.ts","../../../projects/core/src/models/football-game-team-statistic.ts","../../../projects/core/src/api/football-game-api.ts","../../../projects/core/src/models/handball-game-log.ts","../../../projects/core/src/models/handball-game-statistic.ts","../../../projects/core/src/models/handball-statistic.ts","../../../projects/core/src/models/handball-game-team-statistic.ts","../../../projects/core/src/api/handball-game-api.ts","../../../projects/core/src/models/tournament-news.ts","../../../projects/core/src/models/game-timeline-stages.ts","../../../projects/core/src/models/tournament-stage.ts","../../../projects/core/src/models/volleyball-statistic.ts","../../../projects/core/src/models/tournament-stage-team.ts","../../../projects/core/src/models/league-news.ts","../../../projects/core/src/models/tournament-event.ts","../../../projects/core/src/models/league-user.ts","../../../projects/core/src/models/rugby-statistic.ts","../../../projects/core/src/models/achievement.ts","../../../projects/core/src/models/team-achievement.ts","../../../projects/core/src/models/waterpolo-statistic.ts","../../../projects/core/src/models/tournament-round.ts","../../../projects/core/src/api/tournament-api.ts","../../../projects/core/src/models/league-partner.ts","../../../projects/core/src/models/league-banner.ts","../../../projects/core/src/models/league-document.ts","../../../projects/core/src/models/teams-and-users.ts","../../../projects/core/src/models/season-tournament.ts","../../../projects/core/src/api/league-api.ts","../../../projects/core/src/api/league-news-api.ts","../../../projects/core/src/api/league-player-api.ts","../../../projects/core/src/api/media-api.ts","../../../projects/core/src/models/poll.ts","../../../projects/core/src/models/team-invite.ts","../../../projects/core/src/models/game-invite.ts","../../../projects/core/src/models/team-event-type.ts","../../../projects/core/src/localization/team-event-type.ts","../../../projects/core/src/models/team-event.ts","../../../projects/core/src/models/team-event-invite.ts","../../../projects/core/src/models/tournament-team-user-invite.ts","../../../projects/core/src/models/tournament-invite.ts","../../../projects/core/src/models/notification.ts","../../../projects/core/src/models/notification-settings.ts","../../../projects/core/src/api/notification-base-api.ts","../../../projects/core/src/api/notification-api.ts","../../../projects/core/src/api/org-notification-api.ts","../../../projects/core/src/api/reference-api.ts","../../../projects/core/src/models/rugby-game-team-statistic.ts","../../../projects/core/src/models/rugby-game-statistic.ts","../../../projects/core/src/models/rugby-foul-type.ts","../../../projects/core/src/models/rugby-game-log.ts","../../../projects/core/src/api/rugby-game-api.ts","../../../projects/core/src/models/team-invite-external.ts","../../../projects/core/src/models/team-permission.ts","../../../projects/core/src/models/team-access.ts","../../../projects/core/src/api/team-api.ts","../../../projects/core/src/api/team-event-api.ts","../../../projects/core/src/models/tournament-join-team.ts","../../../projects/core/src/api/tournament-join-api.ts","../../../projects/core/src/models/tournament-round-team.ts","../../../projects/core/src/api/tournament-round-api.ts","../../../projects/core/src/api/tournament-season-api.ts","../../../projects/core/src/api/tournament-stage-api.ts","../../../projects/core/src/models/user-access.ts","../../../projects/core/src/models/user-permission.ts","../../../projects/core/src/api/user-api.ts","../../../projects/core/src/models/volleyball-game-team-statistic.ts","../../../projects/core/src/models/volleyball-game-statistic.ts","../../../projects/core/src/models/volleyball-game-log.ts","../../../projects/core/src/api/volleyball-game-api.ts","../../../projects/core/src/models/waterpolo-game-log.ts","../../../projects/core/src/models/waterpolo-game-statistic.ts","../../../projects/core/src/models/waterpolo-game-team-statistic.ts","../../../projects/core/src/api/waterpolo-game-api.ts","../../../projects/core/src/api/public-team-api.ts","../../../projects/core/src/api/public-user-api.ts","../../../projects/core/src/localization/basketball-game-log-types.ts","../../../projects/core/src/localization/basketball-game-sub-log-types.ts","../../../projects/core/src/localization/hockey-game-log-types.ts","../../../projects/core/src/localization/football-game-log-types.ts","../../../projects/core/src/localization/handball-game-log-types.ts","../../../projects/core/src/localization/waterpolo-game-log-types.ts","../../../projects/core/src/localization/overtime-types.ts","../../../projects/core/src/localization/rugby-foul-sanction.ts","../../../projects/core/src/localization/rugby-foul-game-stage.ts","../../../projects/core/src/localization/rugby-game-log-types.ts","../../../projects/core/src/localization/team-user-role.ts","../../../projects/core/src/localization/user-profile.ts","../../../projects/core/src/localization/volleyball-game-log-types.ts","../../../projects/core/src/localization/organization-statuses.ts","../../../projects/core/src/models/device-info.ts","../../../projects/core/src/models/organization-bill.ts","../../../projects/core/src/models/game-bill.ts","../../../projects/core/src/models/league-playlist.ts","../../../projects/core/src/models/organization-tariff.ts","../../../projects/core/src/models/organization-statistic.ts","../../../projects/core/src/models/tournament-join1x1-data.ts","../../../projects/core/src/services/centrifugo.service.ts","../../../projects/core/src/services/base.controller.ts","../../../projects/core/src/services/device-info.service.ts","../../../projects/core/src/storage/old-storage-engine.ts","../../../projects/core/src/storage/old-local-storage-engine.ts","../../../projects/core/src/storage/new.ts","../../../projects/core/src/storage/storage-engine.ts","../../../projects/core/src/storage/local-storage-engine.ts","../../../projects/core/src/utils/component-destroyed.ts","../../../projects/core/src/utils/cookie.ts","../../../projects/core/src/utils/date.ts","../../../projects/core/src/utils/device.ts","../../../projects/core/src/utils/enum.ts","../../../projects/core/src/utils/errors.ts","../../../projects/core/src/utils/favicon.ts","../../../projects/core/src/utils/form.ts","../../../projects/core/src/utils/validators.ts","../../../projects/core/src/http-cookie.interceptor.ts","../../../projects/core/src/websocket/game.websocket.ts","../../../projects/core/src/mtgame-core.ts"],"sourcesContent":["export abstract class BaseModel {\n constructor(data?: any, fields?: string[]) {\n }\n\n json(fields?: any[]): { [key: string]: any } {\n throw new Error('Add decorator @Model')\n }\n\n update<T>(data: {[Property in keyof T]?: T[Property]}): T {\n return Object.assign(Object.create(this), this, data) as T;\n }\n}\n\nexport function toJson(data: any, fields?: any[]): object {\n const jsonData = {};\n const keys = fields && fields.length > 0 ? fields : Object.keys(data);\n for (const key of keys) {\n let value = null;\n let relationKeys = null;\n let relationKey = null;\n let backKey = null;\n if (key instanceof Object) {\n [relationKey, relationKeys] = Object.entries(key)[0];\n backKey = toUnderscore(relationKey);\n value = data[relationKey];\n } else {\n backKey = toUnderscore(key);\n value = data[key];\n }\n if (Array.isArray(value)) {\n jsonData[backKey] = value.map(v => toJson(v, relationKeys));\n } else if (value instanceof BaseModel) {\n jsonData[backKey] = value.json(relationKeys);\n } else if (value instanceof Date) {\n jsonData[backKey] = value.toISOString();\n } else if (!(value instanceof Object)) {\n jsonData[backKey] = value;\n }\n }\n return jsonData;\n}\n\nexport interface ModelRelation<T> {\n create(data: any): T;\n json(data: T): any;\n}\n\nexport function listField<R, T extends ModelRelation<R>>(relation: ModelRelation<R>): ModelRelation<R[]> {\n return {\n create: (data: any[]) => (data || []).map(item => relation.create(item)),\n json: (data: any[]) => (data || []).map(item => relation.json(item)),\n };\n}\n\nexport function nestedModel<T extends BaseModel>(model: new(data, fields) => T, fields?: string[]): ModelRelation<T> {\n return {\n create: (data: object): T => data ? new model(data, fields) as T : null,\n json: (data: T): object => data ? data.json() : null,\n };\n}\n\nexport function enumField(enumClass: any) {\n return {\n create: (value) => {\n if (value === null || value === undefined) {\n return value;\n }\n if (isNaN(+value)) {\n return enumClass[value];\n } else {\n return value;\n }\n },\n json: (value) => {\n if (value === null || value === undefined) {\n return value;\n }\n if (isNaN(+value)) {\n return value;\n } else {\n return enumClass[value];\n }\n }\n };\n}\n\nexport const dateTimeField: ModelRelation<Date> = {\n create: (data: string): Date => data ? new Date(data) : null,\n json: (data: Date): string => data ? data.toISOString() : null,\n};\n\nexport const dateField: ModelRelation<Date> = {\n create: (data: string): Date => data ? new Date(data) : null,\n json: (data: Date): string => data\n ? new Date(Date.UTC(\n data.getFullYear(),\n data.getMonth(),\n data.getDate(),\n )).toISOString().slice(0, 10)\n : null,\n};\n\nexport function toCamelCase(key: string): string {\n return key.replace(/([a-z])_([a-z])/g, g => g[0] + g[1].toUpperCase());\n}\n\nexport function toUnderscore(key: string): string {\n return key.replace(/.([A-Z])/g, g => `${g[0]}_${g[1]}`).toLowerCase();\n}\n\nexport function Model<T>(config: {\n relation?: {[key: string]: ModelRelation<any>},\n} = {}) {\n const relations = config.relation || {};\n\n return (target: typeof BaseModel) => {\n return new Proxy(target, {\n construct(cls: any, argArray: any[]) {\n const instance = new cls();\n const data = argArray[0] || {};\n const fields = argArray[1] || [];\n for (const key of Object.keys(data)) {\n if (fields.length > 0 && !fields.includes(key)) {\n continue;\n }\n const modelKey = toCamelCase(key);\n const relation = relations[modelKey];\n if (relation) {\n instance[modelKey] = relation.create(data[key]);\n } else {\n const descriptor = Object.getOwnPropertyDescriptor(instance.constructor.prototype, modelKey);\n if (!descriptor || descriptor.set) {\n instance[modelKey] = data[key];\n }\n }\n }\n\n Object.defineProperty(instance, 'json', {\n value() {\n const json = {};\n for (const key of Object.getOwnPropertyNames(this)) {\n const relation = relations[key];\n if (this[key] instanceof Object && !relation) {\n continue;\n }\n const backKey = toUnderscore(key);\n if (relation) {\n json[backKey] = relation.json(this[key]);\n } else {\n json[backKey] = this[key];\n }\n }\n return json;\n },\n writable: false,\n });\n\n return instance;\n }\n });\n };\n}\n","import { Model, enumField, dateTimeField, BaseModel } from './util';\n\nexport enum FileEngine {\n django = 1,\n s3\n}\n\n@Model({\n relation: {\n engine: enumField(FileEngine),\n createdAt: dateTimeField,\n }\n})\nexport class File extends BaseModel {\n id: number;\n name: string;\n _originalName: string;\n _path: string;\n resizedPath: string;\n mimeType: string;\n size: number;\n engine: FileEngine;\n createdAt: Date;\n\n set originalName(name: string) {\n this._originalName = name;\n }\n\n get originalName(): string {\n return this._originalName || this.name;\n }\n\n set path(filePath: string) {\n this._path = filePath;\n }\n\n get path(): string {\n return this.resizedPath || this._path;\n }\n}\n","import { Model, BaseModel } from './util';\n\nexport enum SportTypes {\n basketball = 1,\n volleyball = 2,\n classic_basketball = 3,\n streetball = 4,\n classic_volleyball = 5,\n beach_volleyball = 6,\n hockey = 7,\n ice_hockey = 8,\n ball_hockey = 9,\n football = 10,\n classic_football = 11,\n mini_football = 12,\n handball = 13,\n handball_classic = 14,\n rugby = 15,\n rugby7 = 16,\n rugby15 = 17,\n basketball_1x1 = 18,\n waterpolo = 19,\n classic_waterpolo = 20,\n mini_waterpolo = 21,\n media_basket = 22\n}\n\n@Model()\nexport class Sport extends BaseModel {\n id: number;\n name: string;\n parentId: number;\n subSports: Sport[];\n\n isBasketball() {\n return this.id === SportTypes.basketball || this.parentId === SportTypes.basketball;\n }\n\n isClassicBasketball() {\n return this.id === SportTypes.classic_basketball;\n }\n\n isStreetball() {\n return this.id === SportTypes.streetball;\n }\n\n isBasketball1x1() {\n return this.id === SportTypes.basketball_1x1;\n }\n\n isMediaBasket() {\n return this.id === SportTypes.media_basket;\n }\n\n isVolleyball() {\n return this.id === SportTypes.volleyball || this.parentId === SportTypes.volleyball;\n }\n\n isClassicVolleyball() {\n return this.id === SportTypes.classic_volleyball;\n }\n\n isBeachVolleyball() {\n return this.id === SportTypes.beach_volleyball;\n }\n\n isHockey(): boolean {\n return this.id === SportTypes.hockey || this.parentId === SportTypes.hockey;\n }\n\n isIceHockey(): boolean {\n return this.id === SportTypes.ice_hockey;\n }\n\n isBallHockey(): boolean {\n return this.id === SportTypes.ball_hockey;\n }\n\n isFootball() {\n return this.id === SportTypes.football || this.parentId === SportTypes.football;\n }\n\n isClassicFootball() {\n return this.id === SportTypes.classic_football;\n }\n\n isMiniFootball() {\n return this.id === SportTypes.mini_football;\n }\n\n isHandball() {\n return this.id === SportTypes.handball || this.parentId === SportTypes.handball;\n }\n\n isHandballClassic() {\n return this.id === SportTypes.handball_classic;\n }\n\n isRugby() {\n return this.id === SportTypes.rugby || this.parentId === SportTypes.rugby;\n }\n\n isRugby15() {\n return this.id === SportTypes.rugby15;\n }\n\n isRugby7() {\n return this.id === SportTypes.rugby7;\n }\n\n isWaterpolo() {\n return this.id === SportTypes.waterpolo || this.parentId === SportTypes.waterpolo;\n }\n\n isClassicWaterpolo() {\n return this.id === SportTypes.classic_waterpolo;\n }\n\n isMiniWaterpolo() {\n return this.id === SportTypes.mini_waterpolo;\n }\n}\n","import { BaseModel, Model } from './util';\n\n@Model()\nexport class UserProfile extends BaseModel {\n id: number;\n userId: number;\n height: number;\n weight: number;\n}\n","import { BaseModel, Model } from './util';\n\n@Model()\nexport class City extends BaseModel {\n id: number;\n name: string;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameBasketballPosition {\n point_guard = 1,\n shooting_guard,\n small_forward,\n power_forward,\n center\n}\n\nexport enum WorkHand {\n left = 1,\n right\n}\n\n@Model({\n relation: {\n position: enumField(GameBasketballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class BasketballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameBasketballPosition;\n workHand: WorkHand;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameVolleyballPosition {\n setter = 1,\n libero,\n middle_player,\n receiver_attacker,\n dioganal\n}\n\nexport enum VolleyballWorkHand {\n left = 1,\n right\n}\n\n@Model({\n relation: {\n position: enumField(GameVolleyballPosition),\n workHand: enumField(VolleyballWorkHand)\n }\n})\nexport class VolleyballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameVolleyballPosition;\n workHand: VolleyballWorkHand;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameHockeyPosition {\n defensemen = 1,\n forward,\n goaltender\n}\n\nexport enum HockeyWorkHand {\n left = 1,\n right\n}\n\n@Model({\n relation: {\n position: enumField(GameHockeyPosition),\n workHand: enumField(HockeyWorkHand)\n }\n})\nexport class HockeyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHockeyPosition;\n workHand: HockeyWorkHand;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameFootballPosition {\n defensemen = 1,\n midfielder,\n forward,\n goalkeeper\n}\n\nexport enum FootballWorkFoot {\n left = 1,\n right,\n both\n}\n\n@Model({\n relation: {\n position: enumField(GameFootballPosition),\n workFoot: enumField(FootballWorkFoot)\n }\n})\nexport class FootballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameFootballPosition;\n workFoot: FootballWorkFoot;\n}\n","import { BaseModel, enumField, Model } from './util';\nimport { WorkHand } from './basketball-profile';\n\nexport enum GameHandballPosition {\n goalkeeper = 1,\n winger,\n pivot,\n centre_back,\n fullback\n}\n\n@Model({\n relation: {\n position: enumField(GameHandballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class HandballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHandballPosition;\n workHand: WorkHand;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameRugbyPosition {\n front_line = 1,\n second_line,\n back_line,\n halfback,\n three_quarter,\n fullback,\n}\n\n@Model({\n relation: {\n position: enumField(GameRugbyPosition),\n }\n})\nexport class RugbyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameRugbyPosition;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameWaterpoloPosition {\n goalkeeper = 1,\n defensemen,\n center_forward,\n mobile_forward\n}\n\nexport enum WaterpoloWorkHand {\n left = 1,\n right\n}\n\n@Model({\n relation: {\n position: enumField(GameWaterpoloPosition),\n workHand: enumField(WaterpoloWorkHand)\n }\n})\nexport class WaterpoloProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameWaterpoloPosition;\n workHand: WaterpoloWorkHand;\n}\n","import { BaseModel, dateField, enumField, Model, nestedModel } from './util';\nimport { UserProfile } from './user-profile';\nimport { File } from './file';\nimport { City } from './city';\nimport { BasketballProfile } from './basketball-profile';\nimport { VolleyballProfile } from './volleyball-profile';\nimport { HockeyProfile } from './hockey-profile';\nimport { FootballProfile } from './football-profile';\nimport { HandballProfile } from './handball-profile';\nimport { RugbyProfile } from './rugby-profile';\nimport { WaterpoloProfile } from './waterpolo-profile';\n\nexport enum UserGender {\n male = 'male',\n female = 'female',\n}\n\n@Model({\n relation: {\n birthDate: dateField,\n photo: nestedModel(File),\n profile: nestedModel(UserProfile),\n basketballProfile: nestedModel(BasketballProfile),\n volleyballProfile: nestedModel(VolleyballProfile),\n hockeyProfile: nestedModel(HockeyProfile),\n footballProfile: nestedModel(FootballProfile),\n handballProfile: nestedModel(HandballProfile),\n rugbyProfile: nestedModel(RugbyProfile),\n waterpoloProfile: nestedModel(WaterpoloProfile),\n city: nestedModel(City),\n gender: enumField(UserGender),\n }\n})\nexport class User extends BaseModel {\n id: number;\n lastName: string;\n firstName: string;\n middleName: string;\n email: string;\n phone: string;\n birthDate: Date;\n profile: UserProfile;\n basketballProfile: BasketballProfile;\n volleyballProfile: VolleyballProfile;\n hockeyProfile: HockeyProfile;\n footballProfile: FootballProfile;\n handballProfile: HandballProfile;\n rugbyProfile: RugbyProfile;\n waterpoloProfile: WaterpoloProfile;\n photo: File;\n wizards: string[];\n city: City;\n gender: UserGender;\n isActive: boolean;\n uniqueCode: string;\n createdByLeagueId: number;\n\n get fullName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (365 * 86400 * 1000));\n }\n}\n","import { Model, BaseModel, dateField, nestedModel } from './util';\nimport { File } from './file';\nimport { Sport } from './sport';\nimport { User } from './user';\nimport { City } from './city';\n\n@Model({\n relation: {\n sport: nestedModel(Sport),\n logo: nestedModel(File),\n owner: nestedModel(User),\n city: nestedModel(City),\n closestGameDatetime: dateField,\n }\n})\nexport class Team extends BaseModel {\n id: number;\n name: string;\n sport: Sport;\n logo: File;\n owner: User;\n city: City;\n usersCount: number;\n wonGamesCount: number;\n gamesCount: number;\n scoreSum: number;\n closestGameDatetime: Date;\n createdByLeagueId: number;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n if (this.sport.isHandball()) {\n classList.push('empty-logo-handball');\n }\n if (this.sport.isRugby()) {\n classList.push('empty-logo-rugby');\n }\n if (this.sport.isWaterpolo()) {\n classList.push('empty-logo-waterpolo');\n }\n return classList.join(' ');\n }\n}\n","import { BaseModel, Model, enumField, nestedModel } from './util';\nimport { User } from './user';\n\n\nexport enum OrganizationStatuses {\n active = 1,\n blocked,\n not_confirmed\n}\n\n@Model({\n relation: {\n owner: nestedModel(User),\n status: enumField(OrganizationStatuses)\n }\n})\nexport class Organization extends BaseModel {\n id: number;\n ownerId: number;\n owner: User;\n status: OrganizationStatuses;\n name: string;\n phone: string;\n email: string;\n unpaidBillsSum: number;\n unpaidGameBillsSum: number;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { Organization } from './organization';\nimport { File } from './file';\nimport { Sport } from './sport';\n\n@Model({\n relation: {\n organization: nestedModel(Organization),\n logo: nestedModel(File),\n cover: nestedModel(File),\n coverMobile: nestedModel(File),\n sport: nestedModel(Sport),\n }\n})\nexport class League extends BaseModel {\n id: number;\n logo: File;\n contactEmail: string;\n contactPhone: string;\n readonly name: string;\n alias: string;\n domain: string;\n sport: Sport;\n description: string;\n socialLinks: string[];\n links: string[];\n organization: Organization;\n tournamentsCount: number;\n documentsCount: number;\n closestGameDatetime: string;\n cover: File;\n coverMobile: File;\n about: string;\n\n get vkLink(): string {\n return this.socialLinks.find(link => link.indexOf('vk.com/') > -1);\n }\n\n get fbLink(): string {\n return this.socialLinks.find(link => link.indexOf('facebook.com/') > -1);\n }\n\n get instaLink(): string {\n return this.socialLinks.find(link => link.indexOf('instagram.com/') > -1);\n }\n\n get youtubeLink(): string {\n return this.socialLinks.find(link => link.indexOf('youtube.com/') > -1);\n }\n\n get telegramLink(): string {\n return this.socialLinks.find(link =>\n link.substr(0, 13) === 'https://t.me/' ||\n link.substr(0, 17) === 'https://www.t.me/'\n );\n }\n\n get tiktokLink(): string {\n return this.socialLinks.find(link => link.indexOf('tiktok.com/') > -1);\n }\n\n checkRuDomain(): boolean {\n const domainSplit = this.domain.split('.');\n return domainSplit[(domainSplit.length - 1)] === 'ru';\n }\n}\n","import { BaseModel, Model, enumField, dateField, nestedModel } from './util';\nimport { File } from './file';\n\nexport enum TournamentSeasonStatuses {\n open,\n in_progress,\n closed,\n}\n\n@Model({\n relation: {\n logo: nestedModel(File),\n cover: nestedModel(File),\n previewImage: nestedModel(File),\n status: enumField(TournamentSeasonStatuses),\n startDate: dateField,\n closedDate: dateField,\n }\n})\nexport class TournamentSeason extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n previewImage: File;\n status: TournamentSeasonStatuses;\n startDate: Date;\n closedDate: Date;\n}\n","import { Model, BaseModel } from './util';\nimport { TournamentTeam } from './tournament-team';\n\n@Model()\nexport class TournamentGroup extends BaseModel {\n id: number;\n name: string;\n sort: number;\n tournamentStageId: number;\n tournamentRoundId: number;\n divisionId: number;\n teams: TournamentTeam[];\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n cover: nestedModel(File),\n }\n})\nexport class TournamentDivision extends BaseModel {\n id: number;\n name: string;\n cover: File;\n}\n","import { BaseModel } from './util';\nimport { File } from './file';\n\nexport class LeagueFieldBaseValue extends BaseModel {\n id: number;\n value: string;\n file: File;\n}\n","import { BaseModel } from './util';\n\nexport enum LeagueFieldTypes {\n text = 1,\n select,\n file,\n}\n\nexport class LeagueFieldBase extends BaseModel {\n private _variantsMapping = {};\n private _variants = [];\n\n id: number;\n leagueId: number;\n name: string;\n type: LeagueFieldTypes;\n isMultiple: boolean;\n\n set variants(value: { uuid: string, name: string }[]) {\n this._variants = value;\n this._variantsMapping = value.reduce((acc, item) => ({\n ...acc,\n [item.uuid]: item.name\n }), {});\n }\n\n get variants(): {uuid: string, name: string}[] {\n return this._variants;\n }\n\n getName(uuid: string): string {\n return this._variantsMapping[uuid];\n }\n}\n","import { LeagueFieldBase, LeagueFieldTypes } from './league-field-base';\nimport { enumField, Model } from './util';\n\n@Model({\n relation: {\n type: enumField(LeagueFieldTypes)\n }\n})\nexport class LeagueTeamField extends LeagueFieldBase {\n}\n","import { LeagueFieldBaseValue } from './league-field-base-value';\nimport { Model, nestedModel } from './util';\nimport { File } from './file';\nimport { LeagueTeamField } from './league-team-field';\n\n@Model({\n relation: {\n file: nestedModel(File),\n leagueTeamField: nestedModel(LeagueTeamField),\n }\n})\nexport class TournamentTeamFieldValue extends LeagueFieldBaseValue {\n leagueTeamFieldId: number;\n leagueTeamField: LeagueTeamField;\n}\n","import { Model, BaseModel, nestedModel, listField } from './util';\nimport { Team } from './team';\nimport { TournamentGroup } from './tournament-group';\nimport { File } from './file';\nimport { TournamentDivision } from './tournament-division';\nimport { TournamentTeamFieldValue } from './tournament-team-field-value';\n\n@Model()\nexport class TeamAdditionalData extends BaseModel {\n nickname: string;\n color: string;\n}\n\n@Model({\n relation: {\n logo: nestedModel(File),\n teamPhoto: nestedModel(File),\n teamUniform: nestedModel(File),\n team: nestedModel(Team),\n group: nestedModel(TournamentGroup),\n division: nestedModel(TournamentDivision),\n additionalData: nestedModel(TeamAdditionalData),\n fieldValues: listField(nestedModel(TournamentTeamFieldValue)),\n }\n})\nexport class TournamentTeam extends BaseModel {\n id: number;\n name: string;\n logo: File;\n teamPhoto: File;\n teamUniform: File;\n teamId: number;\n tournamentId: number;\n team: Team;\n group: TournamentGroup;\n division: TournamentDivision;\n additionalData: TeamAdditionalData;\n finalStanding: number;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n lastGamesCount: number;\n lastGamesWon: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n points: number;\n mtPoints: number;\n usersCount: number;\n notificationsCount: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n fieldValues: TournamentTeamFieldValue[];\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n}\n","import { BaseModel, enumField, Model, dateTimeField, nestedModel } from './util';\nimport { City } from './city';\nimport { File } from './file';\nimport { League } from './league';\nimport { Sport } from './sport';\nimport { Team } from './team';\nimport { TournamentSeason } from './tournament-season';\nimport { TournamentTeam } from './tournament-team';\n\nexport enum TournamentTypes {\n group = 'group',\n elimination = 'elimination',\n fiba = 'fiba'\n}\n\nexport enum TournamentStatuses {\n open,\n in_progress,\n closed,\n}\n\nexport enum TournamentGender {\n male= 1,\n female,\n all\n}\n\nexport enum BasketballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum VolleyballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum RugbyStatisticTypes {\n light = 1,\n standard,\n}\n\nexport enum GameTimeTypes {\n clean = 1,\n dirty,\n}\n\nexport enum OvertimeTypes {\n to_score_total = 1,\n to_score_diff,\n time,\n without_overtime,\n to_first_goal,\n to_first_goal_and_bullitts,\n bullitts,\n penalties,\n time_and_penalties\n}\n\n\nexport enum TimerTypes {\n backward = 1,\n forward,\n}\n\n@Model({\n relation: {\n type: enumField(TournamentTypes),\n gender: enumField(TournamentGender),\n basketballStatisticType: enumField(BasketballStatisticTypes),\n volleyballStatisticType: enumField(VolleyballStatisticTypes),\n rugbyStatisticType: enumField(RugbyStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n overtimeType: enumField(OvertimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class TournamentSettings extends BaseModel {\n id: number;\n gender: TournamentGender;\n birthYearFrom: number;\n birthYearTo: number;\n maxTeamPlayers: number;\n maxGamePlayers: number;\n type: TournamentTypes;\n toursCount: number;\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n gameType: string;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n gameUpToScore: number;\n volleyballScoreInSet: number;\n volleyballScoreInLastSet: number;\n manageTeamApplication: boolean;\n recruitmentIsOpen: boolean;\n transferIsOpen: boolean;\n basketballStatisticType: BasketballStatisticTypes;\n volleyballStatisticType: VolleyballStatisticTypes;\n rugbyStatisticType: RugbyStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n withResultTable: boolean;\n freeSubstituteEnabled: boolean;\n bonusPointsEnabled: boolean;\n substituteManageEnabled: boolean;\n minorPenaltyTime: number;\n majorPenaltyTime: number;\n misconductPenaltyTime: number;\n gameMisconductPenaltyTime: number;\n timerType: TimerTypes;\n hideOnLeagueMainPage: boolean;\n\n get genderTitle(): string {\n const yearDiff = new Date().getFullYear() - this.birthYearFrom;\n if (this.gender === TournamentGender.male) {\n if (yearDiff < 15) {\n return 'Мальчики';\n }\n if (yearDiff < 21) {\n return 'Юноши';\n }\n return 'Мужчины';\n }\n if (this.gender === TournamentGender.female) {\n if (yearDiff < 15) {\n return 'Девочки';\n }\n if (yearDiff < 21) {\n return 'Девушки';\n }\n return 'Женщины';\n }\n return 'Смешанный';\n }\n}\n\n@Model({\n relation: {\n logo: nestedModel(File),\n cover: nestedModel(File),\n coverMobile: nestedModel(File),\n previewImage: nestedModel(File),\n city: nestedModel(City),\n sport: nestedModel(Sport),\n regulationFile: nestedModel(File),\n settings: nestedModel(TournamentSettings),\n date: dateTimeField,\n league: nestedModel(League),\n status: enumField(TournamentStatuses),\n teamWinner: nestedModel(TournamentTeam, ['id', 'teamId', 'tournamentId', 'name', 'logo', 'team', 'points']),\n teamSecond: nestedModel(TournamentTeam, ['id', 'teamId', 'tournamentId', 'name', 'logo', 'team', 'points']),\n teamThird: nestedModel(TournamentTeam, ['id', 'teamId', 'tournamentId', 'name', 'logo', 'team', 'points']),\n season: nestedModel(TournamentSeason),\n }\n})\nexport class Tournament extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n coverMobile: File;\n previewImage: File;\n city: City;\n sport: Sport;\n location: string;\n description: string;\n date: Date;\n price: number;\n regulationFiles: File[];\n settings: TournamentSettings;\n league: League;\n teamsCount: number;\n closestGameDatetime: string;\n status: TournamentStatuses;\n teamWinner: TournamentTeam;\n teamSecond: TournamentTeam;\n teamThird: TournamentTeam;\n season: TournamentSeason;\n seasonId: number;\n gamePrice: number;\n seasonTournamentId: number;\n leagueId: number;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n if (this.sport.isHandball()) {\n classList.push('empty-logo-handball');\n }\n if (this.sport.isRugby()) {\n classList.push('empty-logo-rugby');\n }\n if (this.sport.isWaterpolo()) {\n classList.push('empty-logo-waterpolo');\n }\n return classList.join(' ');\n }\n}\n","import { BaseModel } from './util';\n\nexport abstract class GameConfigBase extends BaseModel {}\n","import { Model, enumField } from './util';\nimport { BasketballStatisticTypes, GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n statisticType: enumField(BasketballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class BasketballGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n gameUpToScore: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n statisticType: BasketballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n timerType: TimerTypes;\n}\n","import { Model, enumField } from './util';\nimport { VolleyballStatisticTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\nexport enum VolleyballGameTypes {\n best_of_five = 1,\n best_of_three\n}\n\n@Model({\n relation: {\n gameType: enumField(VolleyballGameTypes),\n statisticType: enumField(VolleyballStatisticTypes),\n }\n})\nexport class VolleyballGameConfig extends GameConfigBase {\n gameType: VolleyballGameTypes;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n scoreInSet: number;\n scoreInLastSet: number;\n statisticType: VolleyballStatisticTypes;\n liberoUserIds: number[];\n\n get setsCount(): number {\n return this.gameType === VolleyballGameTypes.best_of_three ? 3 : 5;\n }\n\n getSetMaxScore(set: number) {\n return set === this.setsCount ? this.scoreInLastSet : this.scoreInSet;\n }\n}\n","import { Model, BaseModel } from './util';\n\n@Model()\nexport class LeagueCourt extends BaseModel {\n id: number;\n name: string;\n address: string;\n leagueId: number;\n activeGamesCount: number;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n originalPhoto: nestedModel(File),\n listPhoto: nestedModel(File),\n detailPhoto: nestedModel(File),\n videoPreview: nestedModel(File),\n }\n})\nexport class MediaItem extends BaseModel {\n id: number;\n originalPhoto: File;\n listPhoto: File;\n detailPhoto: File;\n gameId: number;\n tournamentId: number;\n videoUrl: string;\n videoPreview: File;\n isLive: boolean;\n\n get isVideo(): boolean {\n return Boolean(this.videoUrl);\n }\n}\n","import { Model, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class HockeyGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n minorPenaltyTime: number;\n majorPenaltyTime: number;\n misconductPenaltyTime: number;\n gameMisconductPenaltyTime: number;\n\n get overtimePeriod(): number {\n return this.periodsCount + 1;\n }\n\n get bullitsPeriod(): number {\n return this.periodsCount + 2;\n }\n\n get playoffBullitsPeriod(): number {\n return this.periodsCount + 3;\n }\n}\n\n","import { Model, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class FootballGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimePeriods: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteCount: number;\n freeSubstituteEnabled: boolean;\n substituteManageEnabled: boolean;\n\n get penaltyPeriod(): number {\n if (this.overtimeType !== OvertimeTypes.time_and_penalties) {\n return +this.periodsCount + 1;\n }\n return +this.periodsCount + this.overtimePeriods + 1;\n }\n}\n","import { Model, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class HandballGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n}\n","export function generateArray(length: number): number[] {\n if (+length <= 0) {\n return [];\n }\n return Array.apply(null, Array(length)).map((_, i) => i + 1);\n}\n\nexport function getArrayChunks(array: any[], length: number): any[][] {\n const chunks = [];\n const chunkLength = Math.ceil(array.length / length);\n if (chunkLength === 0) {\n return [array];\n }\n for (let i = 0; i < chunkLength; i++) {\n chunks.push(array.slice(i * length, (i + 1) * length));\n }\n return chunks;\n}\n","import { Model, BaseModel, enumField, nestedModel } from './util';\nimport { generateArray } from '../utils/array';\n\nexport enum PlayoffTypes {\n double_elimination = 'double_elimination',\n elimination = 'elimination'\n}\n\n@Model({\n relation: {\n type: enumField(PlayoffTypes)\n }\n})\nexport class PlayoffSettings extends BaseModel {\n rounds: number;\n finalRounds: number;\n thirdPlaceRounds: number;\n teamsCount: number;\n type: PlayoffTypes;\n minPlayerGamesCount: number;\n minPlayerTime: number;\n}\n\n@Model({\n relation: {\n settings: nestedModel(PlayoffSettings)\n }\n})\nexport class Playoff extends BaseModel {\n id: number;\n name: string;\n settings: PlayoffSettings;\n tournamentId: number;\n tournamentStageId: number;\n isOfficial: boolean;\n tournamentRoundId: number;\n divisionId: number;\n winnerPlace: number;\n private stages: {title: string, value: number}[] = [];\n\n get stagesCount(): number {\n return Math.log(this.settings.teamsCount) / Math.log(2);\n }\n\n getPlayoffStages() {\n if (this.stages.length === 0 && this.settings.teamsCount) {\n const stagesCount = Math.log(this.settings.teamsCount) / Math.log(2);\n this.stages = generateArray(stagesCount).map(stage => {\n const playoffStage = this.settings.teamsCount / 2 ** stage;\n let title = '';\n if (playoffStage === 1) {\n if (this.winnerPlace > 1) {\n title = `${this.winnerPlace} место`;\n }\n title = 'Финал';\n } else {\n title = `1 / ${playoffStage}`;\n }\n return {\n value: stage,\n title\n };\n });\n }\n return this.stages;\n }\n}\n","import { enumField, Model } from './util';\nimport { GameTimeTypes, OvertimeTypes, RugbyStatisticTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n statisticType: enumField(RugbyStatisticTypes),\n }\n})\nexport class RugbyGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimePeriods: number;\n maxGamePlayers: number;\n gameTimeType: GameTimeTypes;\n substituteCount: number;\n freeSubstituteEnabled: boolean;\n statisticType: RugbyStatisticTypes;\n\n get penaltyPeriod(): number {\n if (this.overtimeType !== OvertimeTypes.time_and_penalties) {\n return +this.periodsCount + 1;\n }\n return +this.periodsCount + this.overtimePeriods + 1;\n }\n}\n\n","import { Model, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class WaterpoloGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n shotClockEnabled: boolean;\n\n get overtimePeriod(): number {\n return this.periodsCount + 1;\n }\n\n get bullitsPeriod(): number {\n return this.periodsCount + 2;\n }\n\n get playoffBullitsPeriod(): number {\n return this.periodsCount + 3;\n }\n}\n\n","import { Model, BaseModel, dateTimeField, enumField, listField, nestedModel } from './util';\nimport { Team } from './team';\nimport { BasketballGameConfig } from './basketball-game-config';\nimport { VolleyballGameConfig } from './volleyball-game-config';\nimport { LeagueCourt } from './league-court';\nimport { MediaItem } from './media-item';\nimport { HockeyGameConfig } from './hockey-game-config';\nimport { Tournament } from './tournament';\nimport { FootballGameConfig } from './football-game-config';\nimport { HandballGameConfig } from './handball-game-config';\nimport { Playoff } from './playoff';\nimport { TournamentGroup } from './tournament-group';\nimport { RugbyGameConfig } from './rugby-game-config';\nimport { WaterpoloGameConfig } from './waterpolo-game-config';\nimport { TournamentTeam } from './tournament-team';\nimport { Sport } from './sport';\n\nexport enum GameStatuses {\n open = 1,\n in_progress,\n closed,\n archived,\n draft\n}\n\nexport enum GameResultTypes {\n team_won = 1,\n competitor_team_won,\n team_technical_defeat,\n competitor_team_technical_defeat,\n draw\n}\n\nexport type ScoreByPeriod = {[key: string]: [number, number]};\n\n@Model()\nexport class GameAdditionalData extends BaseModel {\n teamBet: number;\n competitorTeamBet: number;\n betLink: string;\n}\n\n@Model({\n relation: {\n status: enumField(GameStatuses),\n team: nestedModel(Team),\n tournamentTeam: nestedModel(TournamentTeam, ['id', 'name', 'logo', 'additional_data']),\n competitorTeam: nestedModel(Team),\n competitorTournamentTeam: nestedModel(TournamentTeam, ['id', 'name', 'logo', 'additional_data']),\n datetime: dateTimeField,\n resultType: enumField(GameResultTypes),\n basketballGameConfig: nestedModel(BasketballGameConfig),\n volleyballGameConfig: nestedModel(VolleyballGameConfig),\n hockeyGameConfig: nestedModel(HockeyGameConfig),\n footballGameConfig: nestedModel(FootballGameConfig),\n handballGameConfig: nestedModel(HandballGameConfig),\n rugbyGameConfig: nestedModel(RugbyGameConfig),\n waterpoloGameConfig: nestedModel(WaterpoloGameConfig),\n tournamentPlayoff: nestedModel(Playoff),\n tournamentCourt: nestedModel(LeagueCourt),\n media: listField(nestedModel(MediaItem)),\n tournament: nestedModel(Tournament),\n tournamentGroup: nestedModel(TournamentGroup),\n additionalData: nestedModel(GameAdditionalData),\n }\n})\nexport class Game extends BaseModel {\n private _basketballGameConfig: BasketballGameConfig;\n private _volleyballGameConfig: VolleyballGameConfig;\n private _hockeyGameConfig: HockeyGameConfig;\n private _footballGameConfig: FootballGameConfig;\n private _handballGameConfig: HandballGameConfig;\n private _rugbyGameConfig: RugbyGameConfig;\n private _waterpoloGameConfig: WaterpoloGameConfig;\n\n id: number;\n status: GameStatuses;\n team: Team;\n tournamentTeam: TournamentTeam;\n teamId: number;\n tournamentTeamId: number;\n competitorTeam: Team;\n competitorTournamentTeam: TournamentTeam;\n competitorTeamId: number;\n competitorTournamentTeamId: number;\n competitorTeamName: string;\n gameConfig: { [key: string]: any };\n datetime: Date;\n location: string;\n teamScore: number;\n competitorTeamScore: number;\n resultType: GameResultTypes;\n playoffNumber: string;\n tournamentId: number;\n tournamentTour: number;\n scoreByPeriod: ScoreByPeriod;\n playoffStage: string;\n playoffRound: number;\n tournamentStageId: number;\n tournamentPlayoffId: number;\n tournamentPlayoff: Playoff;\n tournamentCourt: LeagueCourt;\n mediaCount: number;\n mediaLiveCount: number;\n media: MediaItem[];\n tournament: Tournament;\n tournamentGroup: TournamentGroup;\n additionalData: GameAdditionalData;\n\n get basketballGameConfig(): BasketballGameConfig {\n if (this._basketballGameConfig && this._basketballGameConfig.periodsCount) {\n return this._basketballGameConfig;\n }\n if (this.gameConfig) {\n this._basketballGameConfig = new BasketballGameConfig(this.gameConfig);\n }\n return this._basketballGameConfig;\n }\n\n set basketballGameConfig(value) {\n this._basketballGameConfig = value;\n }\n\n get volleyballGameConfig(): VolleyballGameConfig {\n if (this._volleyballGameConfig && this._volleyballGameConfig.setsCount) {\n return this._volleyballGameConfig;\n }\n if (this.gameConfig) {\n this._volleyballGameConfig = new VolleyballGameConfig(this.gameConfig);\n }\n return this._volleyballGameConfig;\n }\n\n set volleyballGameConfig(value) {\n this._volleyballGameConfig = value;\n }\n\n get hockeyGameConfig(): HockeyGameConfig {\n if (this._hockeyGameConfig && this._hockeyGameConfig.periodsCount) {\n return this._hockeyGameConfig;\n }\n if (this.gameConfig) {\n this._hockeyGameConfig = new HockeyGameConfig(this.gameConfig);\n }\n return this._hockeyGameConfig;\n }\n\n set hockeyGameConfig(value) {\n this._hockeyGameConfig = value;\n }\n\n get handballGameConfig(): HandballGameConfig {\n if (this._handballGameConfig && this._handballGameConfig.periodsCount) {\n return this._handballGameConfig;\n }\n if (this.gameConfig) {\n this._handballGameConfig = new HandballGameConfig(this.gameConfig);\n }\n return this._handballGameConfig;\n }\n\n set handballGameConfig(value) {\n this._handballGameConfig = value;\n }\n\n get footballGameConfig(): FootballGameConfig {\n if (this._footballGameConfig && this._footballGameConfig.periodsCount) {\n return this._footballGameConfig;\n }\n if (this.gameConfig) {\n this._footballGameConfig = new FootballGameConfig(this.gameConfig);\n }\n return this._footballGameConfig;\n }\n\n set footballGameConfig(value) {\n this._footballGameConfig = value;\n }\n\n get rugbyGameConfig(): RugbyGameConfig {\n if (this._rugbyGameConfig && this._rugbyGameConfig.periodsCount) {\n return this._rugbyGameConfig;\n }\n if (this.gameConfig) {\n this._rugbyGameConfig = new RugbyGameConfig(this.gameConfig);\n }\n return this._rugbyGameConfig;\n }\n\n set rugbyGameConfig(value) {\n this._rugbyGameConfig = value;\n }\n\n get waterpoloGameConfig(): WaterpoloGameConfig {\n if (this._waterpoloGameConfig && this._waterpoloGameConfig.periodsCount) {\n return this._waterpoloGameConfig;\n }\n if (this.gameConfig) {\n this._waterpoloGameConfig = new WaterpoloGameConfig(this.gameConfig);\n }\n return this._waterpoloGameConfig;\n }\n\n set waterpoloGameConfig(value) {\n this._waterpoloGameConfig = value;\n }\n\n get scoreByPeriodList(): {period: number, teamScore: number, competitorTeamScore: number}[] {\n if (!this.scoreByPeriod) {\n return [];\n }\n return Object.keys(this.scoreByPeriod).map(period => ({\n period: +period,\n teamScore: this.scoreByPeriod[period][0],\n competitorTeamScore: this.scoreByPeriod[period][1]\n }));\n }\n\n get isClosed(): boolean {\n return this.status === GameStatuses.closed;\n }\n\n get isTeamWon() {\n return [GameResultTypes.team_won, GameResultTypes.competitor_team_technical_defeat].includes(this.resultType);\n }\n\n get isCompetitorTeamWon() {\n return [GameResultTypes.competitor_team_won, GameResultTypes.team_technical_defeat].includes(this.resultType);\n }\n\n get teamWinnerId() {\n if (!this.isClosed) {\n return null;\n }\n if (this.isTeamWon) {\n return this.team.id || this.teamId;\n }\n if (this.isCompetitorTeamWon) {\n return this.competitorTeam.id || this.competitorTeamId;\n }\n return null;\n }\n\n get teamLoserId() {\n if (!this.isClosed) {\n return null;\n }\n if (this.isTeamWon) {\n return this.competitorTeam.id || this.competitorTeamId;\n }\n if (this.isCompetitorTeamWon) {\n return this.team.id || this.teamId;\n }\n return null;\n }\n\n get sport(): Sport {\n if (this.tournament?.sport?.id) {\n return this.tournament.sport;\n }\n if (this.team?.sport?.id) {\n return this.team.sport;\n }\n if (this.competitorTeam?.sport?.id) {\n return this.competitorTeam.sport;\n }\n }\n}\n","import { BaseModel, enumField, Model, nestedModel } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\nexport enum TeamUserRole {\n member = 1,\n moderator,\n admin,\n coach,\n head_coach,\n playing_coach,\n manager,\n head_manager,\n captain,\n assistant,\n}\n\n@Model({\n relation: {\n user: nestedModel(User),\n team: nestedModel(Team),\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamUser extends BaseModel {\n id: number;\n teamId: number;\n user: User;\n team: Team;\n number: number;\n role: TeamUserRole;\n}\n","import { Model, BaseModel, dateField } from './util';\n\n@Model({\n relation: {\n dateFrom: dateField,\n dateTo: dateField,\n }\n})\nexport class TournamentDisqualification extends BaseModel {\n id: number;\n tournamentTeamUserId: number;\n dateFrom: Date;\n dateTo: Date;\n matchesCount: number;\n reason: string;\n}\n","import { LeagueFieldBase, LeagueFieldTypes } from './league-field-base';\nimport { enumField, Model } from './util';\n\n@Model({\n relation: {\n type: enumField(LeagueFieldTypes)\n }\n})\nexport class LeaguePlayerField extends LeagueFieldBase {\n}\n","import { LeagueFieldBaseValue } from './league-field-base-value';\nimport { Model, nestedModel } from './util';\nimport { File } from './file';\nimport { LeaguePlayerField } from './league-player-field';\n\n@Model({\n relation: {\n file: nestedModel(File),\n leaguePlayerField: nestedModel(LeaguePlayerField),\n }\n})\nexport class LeaguePlayerFieldValue extends LeagueFieldBaseValue {\n leaguePlayerFieldId: number;\n leaguePlayerField: LeaguePlayerField;\n}\n","import { Model, BaseModel, dateField, enumField, nestedModel, listField } from './util';\nimport { File } from './file';\nimport { User, UserGender } from './user';\nimport { LeaguePlayerFieldValue } from './league-player-field-value';\n\nexport enum Qualification {\n practician = 1,\n amateur,\n practician2,\n practician3,\n amateur2,\n theorist,\n theorist2,\n theorist3,\n sportsman,\n lider,\n master,\n profi,\n goalkeeper,\n goalkeeper2,\n goalkeeper_sh,\n goalkeeper_ul,\n goalkeeper_mhl,\n goalkeeper_vhl,\n goalkeeper_khl,\n beginner,\n junior,\n debutant,\n schoolchild,\n preschool_child\n}\n\nexport const QualificationLocalization = {\n [Qualification.practician]: 'Практик',\n [Qualification.practician2]: 'Практик 2',\n [Qualification.practician3]: 'Практик 3',\n [Qualification.amateur]: 'Любитель',\n [Qualification.amateur2]: 'Любитель 2',\n [Qualification.theorist]: 'Теоретик',\n [Qualification.theorist2]: 'Теоретик 2',\n [Qualification.theorist3]: 'Теоретик 3',\n [Qualification.sportsman]: 'Спортсмен',\n [Qualification.lider]: 'Лидер',\n [Qualification.master]: 'Мастер',\n [Qualification.profi]: 'Профи',\n [Qualification.goalkeeper]: 'Вратарь',\n [Qualification.goalkeeper2]: 'Вратарь 2',\n [Qualification.goalkeeper_sh]: 'Вратарь СШ',\n [Qualification.goalkeeper_ul]: 'Вратарь ЮЛ',\n [Qualification.goalkeeper_mhl]: 'Вратарь МХЛ',\n [Qualification.goalkeeper_vhl]: 'Вратарь ВХЛ',\n [Qualification.goalkeeper_khl]: 'Вратарь КХЛ',\n [Qualification.beginner]: 'Новичок',\n [Qualification.junior]: 'Юниор',\n [Qualification.debutant]: 'Дебютант',\n [Qualification.schoolchild]: 'Школьник',\n [Qualification.preschool_child]: 'Дошкольник',\n};\n\n@Model({\n relation: {\n birthDate: dateField,\n photo: nestedModel(File),\n user: nestedModel(User),\n qualification: enumField(Qualification),\n fieldValues: listField(nestedModel(LeaguePlayerFieldValue)),\n gender: enumField(UserGender),\n }\n})\nexport class LeaguePlayer extends BaseModel {\n id: number;\n userId: number;\n leagueId: number;\n firstName: string;\n lastName: string;\n middleName: string;\n birthDate: Date;\n photo: File;\n user: User;\n gender: UserGender;\n hasChanges: boolean;\n rating: number;\n qualification: Qualification;\n fieldValues: LeaguePlayerFieldValue[];\n\n get fullName(): string {\n return [this.lastName, this.firstName, this.middleName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (365 * 86400 * 1000));\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TeamUser } from './team-user';\nimport { TournamentDisqualification } from './tournament-disqualification';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n tournamentTeam: nestedModel(TournamentTeam),\n teamUser: nestedModel(TeamUser),\n disqualification: nestedModel(TournamentDisqualification),\n leaguePlayer: nestedModel(LeaguePlayer),\n }\n})\nexport class TournamentTeamUser extends BaseModel {\n id: number;\n active: boolean;\n tournamentTeam: TournamentTeam;\n teamUser: TeamUser;\n disqualified: boolean;\n disqualification: TournamentDisqualification;\n leaguePlayer: LeaguePlayer;\n gamesCount: number;\n mvpCount: number;\n}\n","import { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { LeaguePlayer } from './league-player';\nimport { BaseModel } from './util';\n\nexport type WinLoseType = 'win' | 'lose' | 'draw';\n\nexport abstract class BaseStatistic extends BaseModel {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField,\n }\n})\nexport class BasketballStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n twoPointsMade: number;\n threePointsMade: number;\n freeThrowsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n twoPointPercent: number;\n threePointPercent: number;\n freeThrowPercent: number;\n onePointPercent: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n playerEfficiency: number;\n shotsBlocked: number;\n fourPointAttempts: number;\n fourPointsMade: number;\n fourPointPercent: number;\n dunkAttempts: number;\n dunksMade: number;\n shootoutsWon: number;\n shootoutsLost: number;\n shootoutsTotal: number;\n shootoutWonPercent: number;\n gameTime: number;\n newbie: boolean;\n rank: number;\n\n get totalFouls() {\n return Math.floor(10 * (\n (this.personalFouls || 0) +\n (this.technicalFouls || 0) +\n (this.unsportsmanlikeFouls || 0) +\n (this.disqualificationFouls || 0)\n )) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { BasketballStatistic } from './basketball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(BasketballStatistic),\n competitorTeam: nestedModel(BasketballStatistic)\n }\n})\nexport class BasketballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: BasketballStatistic;\n competitorTeam: BasketballStatistic;\n}\n","import { BaseModel } from './util';\n\nexport abstract class GameStatisticBase extends BaseModel {\n gameUserId: number;\n\n get id(): number {\n return this.gameUserId;\n }\n}\n","import { Model, dateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model({\n relation: {\n updatedAt: dateTimeField,\n }\n})\nexport class BasketballGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n freeThrowsMade: number;\n twoPointsMade: number;\n threePointsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n playerEfficiency: number;\n shotsBlocked: number;\n fourPointAttempts: number;\n fourPointsMade: number;\n dunkAttempts: number;\n dunksMade: number;\n shootoutsWon: number;\n shootoutsLost: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get totalFouls(): number {\n return (this.personalFouls || 0) + (this.technicalFouls || 0) + (this.unsportsmanlikeFouls || 0) + (this.disqualificationFouls || 0);\n }\n\n set onePointPercent(v: number) {}\n\n get onePointPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n /**\n * @deprecated Use onePointPercent instead\n */\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n set twoPointPercent(v: number) {}\n\n get twoPointPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n /**\n * @deprecated Use twoPointPercent instead\n */\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n set threePointPercent(v: number) {}\n\n get threePointPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n /**\n * @deprecated Use threePointPercent instead\n */\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n set freeThrowPercent(v: number) {}\n\n get freeThrowPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n /**\n * @deprecated Use freeThrowPercent instead\n */\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n set fourPointPercent(v: number) {}\n\n get fourPointPercent(): number {\n if (!this.fourPointAttempts || !this.fourPointsMade) {\n return 0;\n }\n return Math.round(1000 * this.fourPointsMade / this.fourPointAttempts) / 10;\n }\n\n set shootoutsTotal(v: number) {}\n\n get shootoutsTotal(): number {\n return (this.shootoutsLost || 0) + (this.shootoutsWon || 0);\n }\n\n set shootoutWonPercent(v: number) {}\n\n get shootoutWonPercent(): number {\n if (!this.shootoutsTotal || !this.shootoutsWon) {\n return 0;\n }\n return Math.round(1000 * this.shootoutsWon / this.shootoutsTotal) / 10;\n }\n}\n","import { BaseModel } from './util';\n\nexport abstract class GameLogBase extends BaseModel {\n id: number;\n uniqueId: string;\n active: boolean;\n gameId: number;\n teamId: number;\n gameUserId: number;\n logType: any;\n abstract compare(model: GameLogBase): number;\n}\n","import { enumField, Model, BaseModel, dateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum BasketballGameLogTypes {\n enter_game = 1,\n exit_game,\n remove_game,\n two_point_made,\n three_point_made,\n free_throw_made,\n two_point_attempt,\n three_point_attempt,\n free_throw_attempt,\n assist,\n block,\n rebound,\n offensive_rebound,\n defensive_rebound,\n steal,\n turnover,\n personal_foul,\n technical_foul,\n unsportsmanlike_foul,\n disqualification_foul,\n one_point_attempt,\n one_point_made,\n timeout,\n team_rebound,\n four_point_attempt,\n four_point_made,\n dunk_attempt,\n dunk_made,\n shootout,\n shootout_won,\n shootout_lost,\n}\n\nexport enum BasketballSubLogTypes {\n // Miss, Made\n jump_shot = 1,\n step_back_jump_shot,\n floating_jump_shot,\n fade_away_jump_shot,\n pull_up_jump_shot,\n turnaround_jump_shot,\n dunk,\n layup,\n driving_layup,\n alley_oop,\n hook_shot,\n\n // foul\n offensive_foul,\n shot_foul,\n mutual_foul,\n\n // Turnover\n bad_pass,\n ball_handling,\n travel,\n double_dribble,\n out_of_bounds,\n three_seconds,\n five_seconds,\n eight_seconds,\n twenty_four_seconds,\n back_court,\n offensive_goal_tending,\n other_turnover,\n}\n\nexport enum BasketballCourtZones {\n paint = 1,\n left_short_corner,\n right_short_corner,\n left_middle_post,\n right_middle_post,\n high_post,\n left_corner,\n right_corner,\n left_wing,\n right_wing,\n top,\n}\n\nexport enum BasketballCourtSides {\n front = 1,\n back,\n}\n\nexport enum BasketballPenaltyTypes {\n one_shot = 1,\n two_shots,\n three_shots,\n possession,\n one_shot_and_possession,\n two_shots_and_possession,\n three_shots_and_possession,\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(BasketballGameLogTypes),\n subLogType: enumField(BasketballSubLogTypes),\n penaltyType: enumField(BasketballPenaltyTypes),\n zone: enumField(BasketballCourtZones),\n courtSide: enumField(BasketballCourtSides),\n }\n})\nexport class BasketballGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: BasketballGameLogTypes;\n subLogType: BasketballSubLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n combined: BasketballGameLog;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n zone: BasketballCourtZones;\n courtSide: BasketballCourtSides;\n penaltyType: BasketballPenaltyTypes;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n fastBreak: boolean;\n isCoach: boolean;\n isBench: boolean;\n group: string;\n marked: boolean;\n coords: [number, number];\n shootoutPoints: number;\n\n isPointsType() {\n return [\n BasketballGameLogTypes.two_point_made,\n BasketballGameLogTypes.three_point_made,\n BasketballGameLogTypes.free_throw_made,\n BasketballGameLogTypes.one_point_made,\n BasketballGameLogTypes.four_point_made,\n BasketballGameLogTypes.dunk_made,\n BasketballGameLogTypes.shootout_won,\n ].indexOf(this.logType) > -1;\n }\n\n isReboundType() {\n return [\n BasketballGameLogTypes.rebound,\n BasketballGameLogTypes.offensive_rebound,\n BasketballGameLogTypes.defensive_rebound,\n BasketballGameLogTypes.team_rebound,\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType() {\n return [\n BasketballGameLogTypes.personal_foul,\n BasketballGameLogTypes.technical_foul,\n BasketballGameLogTypes.unsportsmanlike_foul,\n BasketballGameLogTypes.disqualification_foul,\n ].indexOf(this.logType) > -1;\n }\n\n getScore() {\n const scoreMapping = {\n [BasketballGameLogTypes.one_point_made]: 1,\n [BasketballGameLogTypes.free_throw_made]: 1,\n [BasketballGameLogTypes.two_point_made]: 2,\n [BasketballGameLogTypes.three_point_made]: 3,\n [BasketballGameLogTypes.four_point_made]: 4,\n [BasketballGameLogTypes.dunk_made]: 3,\n };\n if (this.logType === BasketballGameLogTypes.shootout_won) {\n return this.shootoutPoints;\n }\n return scoreMapping[this.logType] || 0;\n }\n\n compare(model: BasketballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n if (this.datetime.getTime() === model.datetime.getTime()) {\n return this.id > model.id ? 1 : -1;\n }\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n}\n","import { Model, BaseModel, dateTimeField, nestedModel } from './util';\nimport { TeamUser } from './team-user';\nimport { TournamentTeamUser } from './tournament-team-user';\n\n@Model({\n relation: {\n teamUser: nestedModel(TeamUser),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n updatedAt: dateTimeField,\n }\n})\nexport class GameUser extends BaseModel {\n id: number;\n gameId: number;\n teamUser: TeamUser;\n tournamentTeamUser: TournamentTeamUser;\n isMvp: boolean;\n number: number;\n updatedAt: Date;\n\n get gameUserNumber(): number {\n return (this.number || this.number === 0) ? this.number : this.teamUser.number;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\n\ninterface LimitationValue {\n current: number;\n required: number;\n}\n\n@Model()\nexport class GameUserLimitationTypes extends BaseModel {\n minUserGamesCount: LimitationValue;\n minUserTime: LimitationValue;\n minGoalkeeperUserGamesCount: LimitationValue;\n minGoalkeeperUserTime: LimitationValue;\n manual: boolean;\n}\n\n\n@Model({\n relation: {\n limitations: nestedModel(GameUserLimitationTypes)\n }\n})\nexport class GameUserLimitations extends BaseModel {\n tournamentTeamUserId: number;\n limitations: GameUserLimitationTypes;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { TournamentDisqualification } from './tournament-disqualification';\n\n@Model({\n relation: {\n disqualification: nestedModel(TournamentDisqualification)\n }\n})\nexport class GameUserDisqualification extends BaseModel {\n tournamentTeamUserId: number;\n disqualification: TournamentDisqualification;\n}\n","import { BaseModel } from '../models/util';\n\nclass BaseModelWithId extends BaseModel {\n id: number;\n}\n\nclass BaseModelWithUpdatedAt extends BaseModelWithId {\n updatedAt: Date;\n}\n\ntype Model = BaseModelWithId | BaseModelWithUpdatedAt;\ntype checkFunctionType<T> = (item: T) => boolean;\ntype MappedModel<T> = {[key: string]: T};\ntype KeysMatching<T, V> = {[K in keyof T]-?: T[K] extends V ? K : never}[keyof T];\n\nexport function updateItemInArray<T extends Model>(\n data: T[],\n item: T,\n force = false,\n checkFunction?: checkFunctionType<T>\n): T[] {\n const index = data.findIndex(v =>\n checkFunction ? checkFunction(v) : v.id === item.id\n );\n if (index < 0) {\n return data;\n }\n const oldItem = data[index];\n if (oldItem instanceof BaseModelWithUpdatedAt && item instanceof BaseModelWithUpdatedAt &&\n !force && item.updatedAt && oldItem.updatedAt && oldItem.updatedAt > item.updatedAt\n ) {\n return data;\n }\n return [\n ...data.slice(0, index),\n item,\n ...data.slice(index + 1),\n ];\n}\n\nexport function updateItemsInArray<T extends Model>(\n data: T[],\n items: T[],\n force: boolean = false,\n checkFunction?: checkFunctionType<T>\n): T[] {\n items.forEach(item => {\n data = updateItemInArray(data, item, force, checkFunction);\n });\n return data;\n}\n\nexport function patchItemInArray<T extends Model>(\n data: T[],\n item: T,\n checkFunction?: checkFunctionType<T>\n): T[] {\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n return Object.assign(v, item);\n });\n}\n\nexport function addItemInArray<T extends Model>(\n data: T[],\n item: T,\n atEnd: boolean = false,\n checkFunction?: checkFunctionType<T>\n): T[] {\n if (data.find(i => isFunction(checkFunction) ? checkFunction(i) : i.id === item.id)) {\n return data;\n }\n\n return atEnd\n ? [...data, item]\n : [item, ...data];\n}\n\nexport function addItemsInArray<T extends Model>(\n data: T[],\n items: T[],\n atEnd: boolean = false,\n checkFunction?: (item: T) => boolean\n): T[] {\n (!atEnd\n ? Object.assign([], items).reverse()\n : items\n ).forEach(item => {\n data = addItemInArray(data, item, atEnd, checkFunction);\n });\n return data;\n}\n\nexport function deleteItemFromArray<T extends Model>(\n data: T[],\n item: T | checkFunctionType<T>\n): T[] {\n if (item instanceof BaseModelWithId) {\n return data.filter(v => v.id !== item.id);\n } else {\n return data.filter(i => !item(i));\n }\n}\n\nfunction isFunction(functionToCheck) {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\n\nexport const _ = {\n insert: <T extends Model>(\n data: T[], item: T, atEnd = false,\n indexKey: KeysMatching<T, string | number> = null,\n ) => {\n if (_.index(data, item, indexKey) > -1) {\n return data;\n }\n if (atEnd) {\n return [\n ...data,\n item,\n ];\n } else {\n return [\n item,\n ...data,\n ];\n }\n },\n update: <T extends Model>(\n data: T[], item: T, force = false, partial = false,\n indexKey: KeysMatching<T, string | number> = null\n ) => {\n const index = _.index(data, item, indexKey);\n if (index < 0) {\n return data;\n }\n const oldItem = data[index];\n if (!force && item instanceof BaseModelWithUpdatedAt && oldItem instanceof BaseModelWithUpdatedAt &&\n item.updatedAt && oldItem.updatedAt && oldItem.updatedAt > item.updatedAt\n ) {\n return data;\n }\n if (partial) {\n data[index] = _.modify(oldItem, item);\n } else {\n data[index] = item;\n }\n return [...data];\n },\n index: <T extends Model>(\n data: T[], item: T,\n indexKey: KeysMatching<T, string | number> = null,\n ): number => {\n if (!indexKey) {\n indexKey = 'id' as KeysMatching<T, string | number>;\n }\n return data.findIndex(v => v[indexKey] === item[indexKey]);\n },\n delete: <T extends Model>(\n data: T[], item: T,\n indexKey: KeysMatching<T, string | number> = null,\n ): T[] => {\n const index = _.index(data, item, indexKey);\n if (index < 0) {\n return data;\n }\n data.splice(index, 1);\n return [...data];\n },\n deleteBy: <T extends Model>(data: T[], checkFunction: checkFunctionType<T>): T[] => {\n data = data.filter(checkFunction);\n return [...data];\n },\n includes: <T extends Model>(data: T[], item: T, indexKey: KeysMatching<T, string | number> = null,): boolean => {\n return _.index(data, item, indexKey) > -1;\n },\n upsert: <T extends Model>(\n data: T[], item: T, atEnd = false, force = false,\n indexKey: KeysMatching<T, string | number> = null,\n ): T[] => {\n if (_.includes(data, item, indexKey)) {\n return _.update(data, item, force, false, indexKey);\n } else {\n return _.insert(data, item, atEnd, indexKey);\n }\n },\n insertMany: <T extends Model>(\n data: T[], items: T[], atEnd = false,\n indexKey: KeysMatching<T, string | number> = null,\n ): T[] => {\n if (!atEnd) {\n data = Object.assign([], data).reverse();\n }\n for (const item of items) {\n data = _.insert(data, item, atEnd, indexKey);\n }\n return [...data];\n },\n upsertMany: <T extends Model>(\n data: T[], items: T[], atEnd = false, force = false,\n indexKey: KeysMatching<T, string | number> = null,\n ): T[] => {\n if (!atEnd) {\n data = Object.assign([], data).reverse();\n }\n for (const item of items) {\n data = _.upsert(data, item, atEnd, force, indexKey);\n }\n return [...data];\n },\n groupBy: <T extends BaseModel>(data: T[], key: KeysMatching<T, string | number>): MappedModel<T> => {\n return data.reduce((acc, item) => ({\n ...acc,\n [item[key].toString()]: item,\n }), {});\n },\n flatten: <T extends BaseModel>(data: T[][]): T[] => {\n return data.reduce((acc, items) => ([\n ...acc,\n ...items,\n ]), []);\n },\n modify: <T extends BaseModel>(instance: T, data: {[Property in keyof T]?: T[Property]}) => {\n return Object.assign(Object.create(instance), instance, data);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { addItemInArray, addItemsInArray, deleteItemFromArray, updateItemInArray, updateItemsInArray } from '../utils/data';\nimport { OldStorageEngine } from './old-storage-engine';\n\nexport class Store {\n private data: {[key: string]: BehaviorSubject<any>} = {};\n\n constructor(private engine?: OldStorageEngine<any>) {\n }\n\n get(key: string, defaultValue?: any): Observable<any> {\n return this.getSubject(key).pipe(\n map(item => item === undefined ? defaultValue : item),\n filter(item => item !== undefined)\n );\n }\n\n value(key: string, defaultValue?: any): any {\n return this.getSubject(key).value === undefined ? defaultValue : this.getSubject(key).value;\n }\n\n save(key: string, value: any): void {\n this.getSubject(key).next(value);\n if (this.engine) {\n this.engine.save(key, value);\n }\n }\n\n appendItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, true, checkFunction));\n }\n\n appendItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, true));\n }\n\n prependItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n prependItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n updateItem(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n updateItems(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemsInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n deleteItem(key: string, value: any): void {\n this.save(key, deleteItemFromArray(this.value(key) || [], value));\n }\n\n dispose(): void {\n for (const key of Object.keys(this.data)) {\n this.data[key].complete();\n delete this.data[key];\n }\n }\n\n clearStorageData(): void {\n if (this.engine) {\n this.engine.clear();\n }\n }\n\n getEngine(): OldStorageEngine<any> {\n return this.engine;\n }\n\n private getSubject(key: string): BehaviorSubject<any> {\n if (!this.data[key]) {\n this.data[key] = new BehaviorSubject<any>(this.engine ? this.engine.get(key) : undefined);\n }\n return this.data[key];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '../storage/store';\n\n@Injectable({providedIn: 'root'})\nexport class BaseService {\n protected store = new Store();\n\n dispose(): void {\n this.store.dispose();\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { BaseService } from './base.service';\n\nconst CONFIG_STORE_KEY = 'config';\n\nexport const CONFIG_DATA = 'mtg-core-config-data';\n\n@Injectable({providedIn: 'root'})\nexport class ConfigService extends BaseService {\n constructor(\n @Optional() @Inject(CONFIG_DATA) private configData: any\n ) {\n super();\n if (configData) {\n this.initialize(configData);\n }\n }\n\n get config$() {\n return this.store.get(CONFIG_STORE_KEY);\n }\n\n get config() {\n return this.store.value(CONFIG_STORE_KEY) || {};\n }\n\n initialize(data: any): void {\n this.store.save(CONFIG_STORE_KEY, data);\n }\n\n set(key: string, value: any): void {\n this.store.save(CONFIG_STORE_KEY, {\n ...this.config,\n [key]: value\n });\n }\n\n get(key: string): any {\n return this.store.value(CONFIG_STORE_KEY) && this.store.value(CONFIG_STORE_KEY)[key];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { GameUser } from '../models/game-user';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { GameUserLimitations } from '../models/game-user-limitation';\nimport { GameUserDisqualification } from '../models/game-user-disqualification';\n\n@Injectable({providedIn: 'root'})\nexport class GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService,\n ) {\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => result.map(item => new GameUser(item))),\n ).toPromise();\n }\n\n async getMvp(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/mvp/`).pipe(\n map(result => result.map(item => new GameUser(item))),\n ).toPromise();\n }\n\n async getUsersLimitation(gameId: number): Promise<GameUserLimitations[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users_limitation/`).pipe(\n map(result => result.map(item => new GameUserLimitations(item))),\n ).toPromise();\n }\n\n async getUsersDisqualification(gameId: number): Promise<GameUserDisqualification[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users_disqualification/`\n ).pipe(\n map(result => result.map(item => new GameUserDisqualification(item))),\n ).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/game_application/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { BasketballGameTeamStatistic } from '../models/basketball-game-team-statistic';\nimport { BasketballGameStatistic } from '../models/basketball-game-statistic';\nimport { BasketballGameLog } from '../models/basketball-game-log';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class BasketballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get<object>(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<BasketballGameTeamStatistic> {\n return this.httpClient.get<object>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/team_statistic/`\n ).pipe(\n map(result => new BasketballGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<BasketballGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new BasketballGameStatistic(item)))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<BasketballGameLog[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/logs/`).pipe(\n map(result => result.map(item => new BasketballGameLog(item)))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n\n async downloadFibaProtocol(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol_fiba/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n files: nestedModel(File)\n }\n})\nexport class Feedback extends BaseModel {\n id: number;\n theme: string;\n message: string;\n email: string;\n captcha: string;\n files: File[];\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Feedback } from '../models/feedback';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class FeedbackApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async sendFeedback(data: Feedback): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/feedback/`, data.json())\n .pipe(map(response => new Feedback(response)))\n .toPromise();\n }\n\n async sendLeagueFeedback(leagueId: number, data: Feedback): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/feedback/`, data.json())\n .pipe(map(response => new Feedback(response)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { File } from '../models/file';\n\n@Injectable({providedIn: 'root'})\nexport class FileApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async upload(fileData: any, filename?: string, width?: number, height?: number): Promise<File> {\n let params = new HttpParams();\n if (width && height) {\n params = params.set('width', width.toString()).set('height', height.toString());\n }\n\n const formData = new FormData();\n formData.append('file', fileData, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/`, formData, {params})\n .pipe(map(data => new File(data)))\n .toPromise();\n }\n\n async createZipArchive(files: {file: any, filename: string}[]): Promise<any> {\n const formData = new FormData();\n for (const file of files) {\n formData.append('files', file.file, file.filename);\n }\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/zip_archive/`, formData, {responseType: 'blob'})\n .toPromise();\n }\n}\n","import { HockeyPenaltyType } from '../models/hockey-penalty-types';\n\nexport const HockeyPenaltyTypes: HockeyPenaltyType[] = [\n {id: 1, code: 'АГРЕС', title: 'Агрессор в драке'},\n {id: 2, code: 'АТ-В-ГОЛ', title: 'Атака в голову или шею'},\n {id: 3, code: 'АТ-ВР', title: 'Атака вратаря'},\n {id: 4, code: 'АТ-СЗ', title: 'Атака сзади'},\n {id: 5, code: 'БЛОК', title: 'Блокировка'},\n {id: 6, code: 'БР-КЛ', title: 'Бросок клюшки'},\n {id: 7, code: 'ВБ-ШБ', title: 'Выброс шайбы'},\n {id: 8, code: 'ГРУБ', title: 'Грубость'},\n {id: 9, code: 'ДИСЦ', title: 'Дисциплинарный штраф'},\n {id: 10, code: 'ДИС-КН', title: 'Дисциплинарный до конца матча'},\n {id: 11, code: 'ДРАКА', title: 'Драка'},\n {id: 12, code: 'ЗАЧИН', title: 'Зачинщик драки'},\n {id: 13, code: 'ЗД-ИГ', title: 'Задержка игры'},\n {id: 14, code: 'ЗД-КЛ-СП', title: 'Задержка клюшки соперника'},\n {id: 15, code: 'ЗД-КЛ', title: 'Задержка клюшкой'},\n {id: 16, code: 'ЗД-СП', title: 'Задержка соперника'},\n {id: 17, code: 'ЗД-ШБ', title: 'Задержка шайбы руками'},\n {id: 18, code: 'СЛ-КЛ', title: 'Игра со сломанной клюшкой'},\n {id: 19, code: 'ВП-КЛ', title: 'Игра высоко поднятой клюшкой'},\n {id: 20, code: 'КЛ-УД', title: 'Колющий удар'},\n {id: 21, code: 'СК-ШТ', title: 'Малый скамеечный штраф'},\n {id: 22, code: 'МШ', title: 'Матч-штраф'},\n {id: 23, code: 'НП-АТ', title: 'Неправильная атака'},\n {id: 24, code: 'ЧС-СТ', title: 'Нарушение численного состава'},\n {id: 25, code: 'НС-КЛ', title: 'Нестандартная клюшка'},\n {id: 26, code: 'НАР-ЭК', title: 'Опасное снаряжение'},\n {id: 27, code: 'НС-ПВ', title: 'Оскорбление судей и неспортивное поведение'},\n {id: 28, code: 'ОТ-ИГ', title: 'Отказ начать игру'},\n {id: 29, code: 'ОТСЧ', title: 'Отсечение'},\n {id: 30, code: 'ПЛЕВОК', title: 'Плевок'},\n {id: 31, code: 'ПОДН', title: 'Подножка'},\n {id: 32, code: 'ПОДС', title: 'Подсечка'},\n {id: 33, code: 'ПР-ИН', title: 'Предупреждение инфекций'},\n {id: 34, code: 'ПК-СК', title: 'Покидание скамейки во время конфликта'},\n {id: 35, code: 'СД-ВР', title: 'Сдвиг ворот'},\n {id: 36, code: 'СИМ', title: 'Симуляция'},\n {id: 37, code: 'ТЛ-БР', title: 'Толчок на борт'},\n {id: 38, code: 'ТЛ-КЛ', title: 'Толчок клюшкой'},\n {id: 39, code: 'УД-ГОЛ', title: 'Удар головой'},\n {id: 40, code: 'УД-КЛ', title: 'Удар клюшкой'},\n {id: 41, code: 'УД-К-КЛ', title: 'Удар концом клюшки'},\n {id: 42, code: 'УД-КОЛ', title: 'Удар коленом'},\n {id: 43, code: 'УД-ЛОК', title: 'Удар локтем'},\n {id: 44, code: 'УД-НГ', title: 'Удар ногой'},\n {id: 45, code: 'УКУС', title: 'Укус'},\n {id: 46, code: 'КН-ЗР', title: 'Физический контакт со зрителем'},\n {id: 47, code: 'ШТ-ВР', title: 'Штраф вратаря'}\n];\n","import { ModelRelation } from './util';\nimport { HockeyPenaltyTypes } from '../localization/hockey-penalty-types';\n\nexport interface HockeyPenaltyType {\n id: number;\n code: string;\n title: string;\n}\n\nexport const penaltyTypeField: ModelRelation<HockeyPenaltyType> = {\n create: (data: number): HockeyPenaltyType => HockeyPenaltyTypes.find(item => item.id === data),\n json: (data: HockeyPenaltyType): number => data ? data.id : null,\n};\n","import { enumField, Model, dateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\nimport { penaltyTypeField, HockeyPenaltyType } from './hockey-penalty-types';\n\nexport enum HockeyGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n minor_penalty ,\n major_penalty ,\n misconduct_penalty ,\n game_misconduct_penalty ,\n match_penalty ,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n after_game_shootout_attempt,\n after_game_shootout_goal,\n after_game_shootout_save,\n shootout_save,\n steal,\n loss,\n sharp_pass,\n}\n\nexport enum HockeyAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(HockeyGameLogTypes),\n advantage: enumField(HockeyAdvantageTypes),\n penaltyType: penaltyTypeField\n }\n})\nexport class HockeyGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HockeyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: HockeyAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n penaltyType: HockeyPenaltyType;\n _penalizedGameUserId: number;\n mutualPenalty: boolean;\n foulOnGameUserId: number;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: HockeyGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [\n HockeyGameLogTypes.goal, HockeyGameLogTypes.shootout_goal,\n HockeyGameLogTypes.after_game_shootout_goal\n ].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n HockeyGameLogTypes.minor_penalty, HockeyGameLogTypes.major_penalty,\n HockeyGameLogTypes.misconduct_penalty, HockeyGameLogTypes.game_misconduct_penalty,\n HockeyGameLogTypes.penalty_shot, HockeyGameLogTypes.match_penalty\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HockeyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n}\n","import { Model, dateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model({\n relation: {\n updatedAt: dateTimeField,\n }\n})\nexport class HockeyGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n saves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n goalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n steals: number;\n ppSteals: number;\n evSteals: number;\n shSteals: number;\n losses: number;\n ppLosses: number;\n evLosses: number;\n shLosses: number;\n sharpPasses: number;\n ppSharpPasses: number;\n evSharpPasses: number;\n shSharpPasses: number;\n drawnFouls: number;\n efficiency: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shotsOnGoal(): number {\n return (this.evShotsOnGoal || 0) + (this.ppShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get shotsBlocked(): number {\n return (this.evShotsBlocked || 0) + (this.ppShotsBlocked || 0) + (this.shShotsBlocked || 0);\n }\n\n get shotMisses(): number {\n return (this.evShotMisses || 0) + (this.ppShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0);\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0);\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0);\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots + (this.shootoutAttempts || 0);\n }\n\n get totalShots(): number {\n return this.shots + (this.shootoutAttempts || 0);\n }\n\n get goals(): number {\n return (this.ppGoals || 0) + (this.shGoals || 0) + (this.evGoals || 0);\n }\n\n get totalGoals(): number {\n return this.goals + (this.shootoutGoals || 0);\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.evAssists || 0) + (this.shAssists || 0);\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get shootOuts(): number {\n return (this.shootoutAttempts || 0) + (this.shootoutGoals || 0);\n }\n\n get shotsAgainst(): number {\n return (this.saves || 0) + (this.goalsAgainst || 0);\n }\n\n get shootoutShotsAgainst(): number {\n return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get totalShotsAgainst(): number {\n return this.shotsAgainst + this.shootoutShotsAgainst;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get totalSaves(): number {\n return (this.saves || 0) + (this.shootoutSaves || 0);\n }\n\n get totalSavesPercent(): number {\n if (!this.totalShotsAgainst || !this.totalSaves) {\n return 0;\n }\n return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get goalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get faceOffPercent(): number {\n if (!this.faceOffWins || !this.faceOffs) {\n return 0;\n }\n return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField\n }\n})\nexport class HockeyStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n ppShots: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShots: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShots: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoalsPercent: number;\n ppGoals: number;\n evGoalsPercent: number;\n evGoals: number;\n shGoalsPercent: number;\n shGoals: number;\n goals: number;\n totalGoals: number;\n totalGoalsPercent;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n totalShots: number;\n goalsPercent: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n faceOffs: number;\n faceOffPercent: number;\n savesPercent: number;\n totalSavesPercent: number;\n saves: number;\n shootoutSaves: number;\n totalSaves: number;\n shotsAgainst: number;\n shootoutShotsAgainst: number;\n totalShotsAgainst: number;\n goalsAgainst: number;\n shootoutGoalsAgainst: number;\n totalGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n steals: number;\n ppSteals: number;\n evSteals: number;\n shSteals: number;\n losses: number;\n ppLosses: number;\n evLosses: number;\n shLosses: number;\n sharpPasses: number;\n ppSharpPasses: number;\n evSharpPasses: number;\n shSharpPasses: number;\n drawnFouls: number;\n efficiency: number;\n newbie: boolean;\n rank: number;\n shutout: number;\n shutoutPercent: number;\n mvpCount: number;\n\n get assists(): number {\n return Math.floor(10 * ((this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { HockeyStatistic } from './hockey-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(HockeyStatistic),\n competitorTeam: nestedModel(HockeyStatistic),\n }\n})\nexport class HockeyGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: HockeyStatistic;\n competitorTeam: HockeyStatistic;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyGameLog } from '../models/hockey-game-log';\nimport { HockeyGameStatistic } from '../models/hockey-game-statistic';\nimport { HockeyGameTeamStatistic } from '../models/hockey-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class HockeyGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HockeyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/team_statistic/`).pipe(\n map(result => new HockeyGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HockeyGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new HockeyGameStatistic(item))),\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HockeyGameLog[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/logs/`).pipe(\n map(result => result.map(item => new HockeyGameLog(item))),\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { enumField, Model, dateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum FootballGameLogTypes {\n enter_game = 'enter_game',\n exit_game = 'exit_game',\n shot_miss = 'shot_miss',\n shot_on_goal = 'shot_on_goal',\n shot_blocked = 'shot_blocked',\n goal = 'goal',\n penalty_attempt = 'penalty_attempt',\n penalty_goal = 'penalty_goal',\n penalty_save = 'penalty_save',\n small_penalty_attempt = 'small_penalty_attempt',\n small_penalty_goal = 'small_penalty_goal',\n small_penalty_save = 'small_penalty_save',\n assist = 'assist',\n block_shot = 'block_shot',\n corner = 'corner',\n free_kick = 'free_kick',\n foul = 'foul',\n save = 'save',\n yellow_card = 'yellow_card',\n red_card = 'red_card',\n perfect_pass = 'perfect_pass',\n loss = 'loss',\n steal = 'steal',\n out = 'out',\n timeout = 'timeout',\n auto_goal = 'auto_goal',\n end_game_penalty_miss = 'end_game_penalty_miss',\n end_game_penalty_goal = 'end_game_penalty_goal',\n end_game_penalty_save = 'end_game_penalty_save',\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(FootballGameLogTypes)\n }\n})\nexport class FootballGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: FootballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: FootballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [\n FootballGameLogTypes.goal,\n FootballGameLogTypes.penalty_goal,\n FootballGameLogTypes.small_penalty_goal,\n FootballGameLogTypes.auto_goal,\n FootballGameLogTypes.end_game_penalty_goal,\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: FootballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n}\n","import { Model, dateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model({\n relation: {\n updatedAt: dateTimeField,\n }\n})\nexport class FootballGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsAgainst: number;\n penaltySaves: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltySaves: number;\n saves: number;\n goalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n autoGoals: number;\n autoGoalsAgainst: number;\n endGamePenaltyGoals: number;\n endGamePenaltyMisses: number;\n endGamePenaltySaves: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return Math.floor(10 * ((this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0))) / 10;\n }\n\n\n get totalGoals(): number {\n return Math.floor(10 * ((this.goals || 0) + (this.penaltyGoals || 0) + (this.smallPenaltyGoals || 0))) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penalties(): number {\n return Math.floor(10 * ((this.penaltyGoals || 0) + (this.penaltyAttempts || 0))) / 10;\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penalties || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penalties) / 10;\n }\n\n get smallPenalties(): number {\n return Math.floor(10 * ((this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0))) / 10;\n }\n\n get smallPenaltyGoalsPercent(): number {\n if (!this.smallPenalties || !this.smallPenaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltyGoals / this.smallPenalties) / 10;\n }\n\n get shotsAgainst(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.goalsAgainst || 0))) / 10;\n }\n\n get penaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get smallPenaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.smallPenaltySaves || 0) + (this.smallPenaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return Math.floor(10 * (\n (this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0) +\n (this.smallPenaltyGoalsAgainst || 0) + (this.autoGoalsAgainst || 0)\n )) / 10;\n }\n\n\n get totalSaves(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.penaltySaves || 0) + (this.smallPenaltySaves || 0))) / 10;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get smallPenaltySavesPercent(): number {\n if (!this.smallPenaltyShotsAgainst || !this.smallPenaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltySaves / this.smallPenaltyShotsAgainst) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField,\n }\n})\nexport class FootballStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shotsOnGoalPercent: number;\n shots: number;\n goals: number;\n totalGoals: number;\n goalsPercent: number;\n assists: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsPercent: number;\n penaltySaves: number;\n penaltyGoalsAgainst: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsPercent: number;\n smallPenaltySaves: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltyShotsAgainst: number;\n smallPenaltySavesPercent: number;\n saves: number;\n savesPercent: number;\n totalSaves: number;\n goalsAgainst: number;\n totalGoalsAgainst: number;\n shotsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n newbie: boolean;\n rank: number;\n autoGoals: number;\n autoGoalsAgainst: number;\n endGamePenaltyGoals: number;\n endGamePenaltyMisses: number;\n endGamePenaltySaves: number;\n shutout: number;\n shutoutPercent: number;\n\n get teamPlusMinus(): number {\n return (this.teamScoreSum || 0) - (this.teamMissedSum || 0);\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get penalties(): number {\n return Math.floor(10 * ((this.penaltyGoals || 0) + (this.penaltyAttempts || 0))) / 10;\n }\n\n get smallPenalties(): number {\n return Math.floor(10 * ((this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get tournamentTeamGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.gamesCount;\n }\n\n get tournamentTeamWonGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.wonGamesCount;\n }\n\n get tournamentTeamDrawGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.drawGamesCount;\n }\n\n get tournamentTeamLostGamesCount(): number {\n if (!this.tournamentTeam) {\n return null;\n }\n return this.tournamentTeam.gamesCount - this.tournamentTeam.drawGamesCount - this.tournamentTeam.wonGamesCount;\n }\n\n get tournamentTeamScoreSum(): number {\n return this.tournamentTeam && this.tournamentTeam.scoreSum;\n }\n\n get tournamentTeamMissedSum(): number {\n return this.tournamentTeam && this.tournamentTeam.missedSum;\n }\n\n get tournamentTeamPlusMinus(): number {\n if (!this.tournamentTeam) {\n return null;\n }\n return this.tournamentTeam.scoreSum - this.tournamentTeam.missedSum;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { FootballStatistic } from './football-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(FootballStatistic),\n competitorTeam: nestedModel(FootballStatistic),\n }\n})\nexport class FootballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: FootballStatistic;\n competitorTeam: FootballStatistic;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { FootballGameLog } from '../models/football-game-log';\nimport { FootballGameStatistic } from '../models/football-game-statistic';\nimport { FootballGameTeamStatistic } from '../models/football-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class FootballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<FootballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/team_statistic/`).pipe(\n map(result => new FootballGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<FootballGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new FootballGameStatistic(item))),\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<FootballGameLog[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/logs/`).pipe(\n map(result => result.map(item => new FootballGameLog(result))),\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Model, dateTimeField, enumField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum HandballGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n assist,\n penalty_miss,\n penalty_shot_on_goal,\n penalty_goal,\n save,\n penalty_save,\n foul,\n yellow_card,\n red_card,\n two_minute_foul,\n turnover,\n steal,\n block_shot,\n timeout\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(HandballGameLogTypes)\n }\n})\nexport class HandballGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HandballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: HandballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [HandballGameLogTypes.goal, HandballGameLogTypes.penalty_goal].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HandballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n isFoulType(): boolean {\n return [HandballGameLogTypes.foul, HandballGameLogTypes.yellow_card, HandballGameLogTypes.red_card].indexOf(this.logType) > -1;\n }\n}\n","import { Model } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model()\nexport class HandballGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n penaltyGoals: number;\n penaltyMisses: number;\n penaltyShotsOnGoal: number;\n saves: number;\n penaltySaves: number;\n goalsAgainst: number;\n penaltyGoalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n twoMinuteFouls: number;\n turnovers: number;\n steals: number;\n blockShots: number;\n gameTime: number;\n plusMinus: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return Math.floor(10 * ((this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0))) / 10;\n }\n\n\n get totalGoals(): number {\n return Math.floor(10 * ((this.goals || 0) + (this.penaltyGoals || 0))) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penaltyShots(): number {\n return Math.floor(10 * ((this.penaltyShotsOnGoal || 0) + (this.penaltyMisses || 0))) / 10;\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyShots || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penaltyShots) / 10;\n }\n\n get shotsAgainst(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.goalsAgainst || 0))) / 10;\n }\n\n get penaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return Math.floor(10 * ((this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalSaves(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.penaltySaves || 0))) / 10;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField\n }\n})\nexport class HandballStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n penaltyGoals: number;\n penaltyMisses: number;\n penaltyShotsOnGoal: number;\n saves: number;\n penaltySaves: number;\n goalsAgainst: number;\n penaltyGoalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n twoMinuteFouls: number;\n turnovers: number;\n steals: number;\n blockShots: number;\n gameTime: number;\n plusMinus: number;\n shots: number;\n goalsPercent: number;\n penaltyShots: number;\n penaltyGoalsPercent: number;\n shotsAgainst: number;\n savesPercent: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n totalGoals: number;\n totalSaves: number;\n totalGoalsAgainst: number;\n newbie: boolean;\n rank: number;\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { HandballStatistic } from './handball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(HandballStatistic),\n competitorTeam: nestedModel(HandballStatistic),\n }\n})\nexport class HandballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: HandballStatistic;\n competitorTeam: HandballStatistic;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { HandballGameLog } from '../models/handball-game-log';\nimport { HandballGameStatistic } from '../models/handball-game-statistic';\nimport { HandballGameTeamStatistic } from '../models/handball-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class HandballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HandballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/team_statistic/`).pipe(\n map(result => new HandballGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HandballGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new HandballGameStatistic(item))),\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HandballGameLog[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/logs/`).pipe(\n map(result => result.map(item => new HandballGameLog(item))),\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { BaseModel, Model, dateTimeField, nestedModel } from './util';\nimport { File } from './file';\nimport { User } from './user';\n\n@Model({\n relation: {\n picture: nestedModel(File),\n author: nestedModel(User),\n createdAt: dateTimeField,\n }\n})\nexport class TournamentNews extends BaseModel {\n id: number;\n title: string;\n picture: File;\n text: string;\n author: User;\n createdAt: Date;\n}\n","import { Model, BaseModel, listField, nestedModel } from './util';\n\n@Model()\nexport class GameTimelineStageItem extends BaseModel {\n stageId: number;\n toursCount: number;\n playoffStagesCount: number;\n playoffTeamsCount: number;\n}\n\n@Model({\n relation: {\n stages: listField(nestedModel(GameTimelineStageItem))\n }\n})\nexport class GameTimelineStages extends BaseModel {\n toursCount: number;\n playoffStagesCount: number;\n playoffTeamsCount: number;\n currentTour: number;\n currentPlayoffStage: number;\n currentPlayoffRound: number;\n stages: GameTimelineStageItem[];\n tournamentStageId: number;\n tournamentRoundId: number;\n}\n","import { Model, BaseModel, enumField, dateField } from './util';\n\nexport enum TournamentStageStatuses {\n open,\n in_progress,\n closed\n}\n\n@Model({\n relation: {\n date: dateField,\n status: enumField(TournamentStageStatuses)\n }\n})\nexport class TournamentStage extends BaseModel {\n id: number;\n name: string;\n date: Date;\n tournamentId: number;\n status: TournamentStageStatuses;\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { Team } from './team';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { TeamUser } from './team-user';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n tournamentTeam: nestedModel(TournamentTeam),\n user: nestedModel(User),\n month: dateField,\n }\n})\nexport class VolleyballStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n goodServes: number;\n servePercent: number;\n acePercent: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n blockPercent: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n attackPercent: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n receivePercent: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n serveReceivePercent: number;\n points: number;\n faults: number;\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get totalReceives(): number {\n return Math.floor(10 * (this.receives + this.excellentReceives + this.receiveFaults)) / 10;\n }\n\n get totalServeReceives(): number {\n return Math.floor(10 * (this.serveReceives + this.excellentServeReceives + this.serveReceiveFaults)) / 10;\n }\n\n get totalServes(): number {\n return Math.floor(10 * (this.serveAces + this.serveHits + this.serveFaults + this.goodServes)) / 10;\n }\n\n get totalAttacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots + this.attackFaults)) / 10;\n }\n\n get totalBlocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds + this.blockFaults)) / 10;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TournamentGroup } from './tournament-group';\n\n@Model({\n relation: {\n tournamentTeam: nestedModel(TournamentTeam),\n group: nestedModel(TournamentGroup),\n }\n})\nexport class TournamentStageTeam extends BaseModel {\n id: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n tournamentStageId: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n missedSum: number;\n lastGamesCount: number;\n lastGamesWon: number;\n points: number;\n mtPoints: number;\n finalStanding: number;\n receivedPoints: number;\n receivedMtPoints: number;\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n}\n","import { Model, BaseModel, listField, dateTimeField, enumField, nestedModel } from './util';\nimport { File } from './file';\nimport { Tournament } from './tournament';\n\nexport enum LeagueNewsType {\n text = 1,\n video\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n picture: nestedModel(File),\n cover: nestedModel(File),\n mobilePicture: nestedModel(File),\n tournaments: listField(nestedModel(Tournament)),\n type: enumField(LeagueNewsType),\n }\n})\nexport class LeagueNews extends BaseModel {\n id: number;\n title: string;\n datetime: Date;\n previewText: string;\n detailText: string;\n picture: File;\n cover: File;\n mobilePicture: File;\n isMain: boolean;\n tournaments: Tournament[];\n type: LeagueNewsType;\n videoLink: string;\n tag: string;\n}\n","import { Model, BaseModel, dateField, enumField, listField, nestedModel } from './util';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\nimport { League } from './league';\nimport { LeagueNews } from './league-news';\n\nexport enum TournamentEventTypes {\n game_closed = 1,\n media_added,\n news\n}\n\n@Model({\n relation: {\n game: nestedModel(Game),\n news: nestedModel(LeagueNews),\n league: nestedModel(League),\n tournaments: listField(nestedModel(Tournament)),\n datetime: dateField,\n event: enumField(TournamentEventTypes)\n }\n})\nexport class TournamentEvent extends BaseModel {\n id: number;\n game: Game;\n news: LeagueNews;\n tournaments: Tournament[];\n event: TournamentEventTypes;\n datetime: Date;\n}\n","import { User } from './user';\nimport { BaseModel, enumField, listField, Model, nestedModel } from './util';\n\n\nexport enum LeagueUserRoles {\n admin = 1,\n moderator,\n game_manager\n}\n\nexport enum LeagueUserPermissions {\n settings = 1,\n users,\n teams,\n media,\n news,\n game_export,\n schedule,\n game_management\n}\n\n@Model({\n relation: {\n user: nestedModel(User),\n permissions: listField(enumField(LeagueUserPermissions))\n }\n})\nexport class LeagueUser extends BaseModel {\n id: number;\n user: User;\n _role: LeagueUserRoles;\n permissions: LeagueUserPermissions[];\n\n set role(value: LeagueUserRoles|string) {\n this._role = LeagueUserRoles[value];\n }\n\n get role(): LeagueUserRoles|string {\n return this._role;\n }\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField\n }\n})\nexport class RugbyStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n points: number;\n tries: number;\n penaltyTries: number;\n conversionKicks: number;\n conversionGoals: number;\n conversionMisses: number;\n conversionGoalsPercent: number;\n penalties: number;\n penaltyKicksOnGoal: number;\n penaltyMisses: number;\n penaltyGoals: number;\n penaltyGoalsPercent: number;\n tapPenalties: number;\n penaltyKicksToTouch: number;\n dropGoalKicks: number;\n dropGoals: number;\n dropGoalMisses: number;\n dropGoalsPercent: number;\n totalGoals: number;\n freeKicks: number;\n yellowCards: number;\n redCards: number;\n offloads: number;\n tackles: number;\n handlingErrors: number;\n carriesOverGainline: number;\n footFieldShots: number;\n footOutShots: number;\n footKicks5022: number;\n footShots: number;\n plusMinus: number;\n gameTime: number;\n\n scrums: number;\n scrumsWon: number;\n scrumsLost: number;\n scrumsWonPercent: number;\n scrumsWonFree: number;\n opponentScrumsWon: number;\n opponentScrumsLost: number;\n lineouts: number;\n lineoutsWon: number;\n lineoutsLost: number;\n lineoutsSteal: number;\n lineoutsWonPercent: number;\n opponentLineoutsLost: number;\n quickThrows: number;\n rucks: number;\n rucksWon: number;\n rucksLost: number;\n rucksWonPercent: number;\n opponentRucksWon: number;\n opponentRucksLost: number;\n mauls: number;\n maulsWon: number;\n maulsLost: number;\n maulWonPercent: number;\n opponentMaulsWon: number;\n opponentMaulsLost: number;\n fouls: number;\n teamFouls: number;\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get totalFouls(): number {\n return Math.floor(10 * ((this.fouls || 0) + (this.teamFouls || 0))) / 10;\n }\n}\n","import { Model, BaseModel, enumField } from './util';\n\nexport enum AchievementTypes {\n by_game = 1,\n by_stage\n}\n\n@Model({\n relation: {\n type: enumField(AchievementTypes),\n }\n})\nexport class Achievement extends BaseModel {\n id: number;\n name: string;\n alias: string;\n type: AchievementTypes;\n value: number;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { Achievement } from './achievement';\nimport { Game } from './game';\nimport { TournamentStage } from './tournament-stage';\n\n@Model({\n relation: {\n achievement: nestedModel(Achievement),\n tournamentStage: nestedModel(TournamentStage),\n game: nestedModel(Game),\n }\n})\nexport class TeamAchievement extends BaseModel {\n id: number;\n teamId: number;\n achievement: Achievement;\n game: Game;\n tournamentStage: TournamentStage;\n mtPoints: number;\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField\n }\n})\nexport class WaterpoloStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppTotalShotsOnGoal: number;\n evTotalShotsOnGoal: number;\n shTotalShotsOnGoal: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppCounterAttackGoals: number;\n ppCounterAttackOnGoals: number;\n ppCounterAttackMisses: number;\n ppCounterAttackShotsBlocked: number;\n evCounterAttackGoals: number;\n evCounterAttackOnGoals: number;\n evCounterAttackMisses: number;\n evCounterAttackShotsBlocked: number;\n shCounterAttackGoals: number;\n shCounterAttackOnGoals: number;\n shCounterAttackMisses: number;\n shCounterAttackShotsBlocked: number;\n ppManeuverGoals: number;\n ppManeuverOnGoals: number;\n ppManeuverMisses: number;\n ppManeuverShotsBlocked: number;\n evManeuverGoals: number;\n evManeuverOnGoals: number;\n evManeuverMisses: number;\n evManeuverShotsBlocked: number;\n shManeuverGoals: number;\n shManeuverOnGoals: number;\n shManeuverMisses: number;\n shManeuverShotsBlocked: number;\n ppCenterForwardGoals: number;\n ppCenterForwardOnGoals: number;\n ppCenterForwardMisses: number;\n ppCenterForwardShotsBlocked: number;\n evCenterForwardGoals: number;\n evCenterForwardOnGoals: number;\n evCenterForwardMisses: number;\n evCenterForwardShotsBlocked: number;\n shCenterForwardGoals: number;\n shCenterForwardOnGoals: number;\n shCenterForwardMisses: number;\n shCenterForwardShotsBlocked: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n shSaves: number;\n evSaves: number;\n ppCounterAttackSaves: number;\n shCounterAttackSaves: number;\n evCounterAttackSaves: number;\n ppManeuverSaves: number;\n shManeuverSaves: number;\n evManeuverSaves: number;\n ppCenterForwardSaves: number;\n shCenterForwardSaves: number;\n evCenterForwardSaves: number;\n ppFreeKickSaves: number;\n shFreeKickSaves: number;\n evFreeKickSaves: number;\n ppCornerSaves: number;\n shCornerSaves: number;\n evCornerSaves: number;\n ppTotalGameSaves: number;\n shTotalGameSaves: number;\n evTotalGameSaves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n ppCounterAttackGoalsAgainst: number;\n shCounterAttackGoalsAgainst: number;\n evCounterAttackGoalsAgainst: number;\n counterAttackGoalsAgainst: number;\n ppManeuverGoalsAgainst: number;\n shManeuverGoalsAgainst: number;\n evManeuverGoalsAgainst: number;\n maneuverGoalsAgainst: number;\n ppCenterForwardGoalsAgainst: number;\n shCenterForwardGoalsAgainst: number;\n evCenterForwardGoalsAgainst: number;\n centerForwardGoalsAgainst: number;\n ppFreeKickGoalsAgainst: number;\n shFreeKickGoalsAgainst: number;\n evFreeKickGoalsAgainst: number;\n freeKickGoalsAgainst: number;\n ppCornerGoalsAgainst: number;\n shCornerGoalsAgainst: number;\n evCornerGoalsAgainst: number;\n cornerGoalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n fouls: number;\n minorPenalties: number;\n majorPenalties: number;\n matchPenalties: number;\n penaltyFouls: number;\n turnovers: number;\n attackFouls: number;\n personalFouls: number;\n drawnFouls: number;\n drawnTurnovers: number;\n yellowCards: number;\n redCards: number;\n losses: number;\n steals: number;\n ppFreeKickGoals: number;\n ppFreeKickOnGoals: number;\n ppFreeKickMisses: number;\n ppFreeKickShotsBlocked: number;\n shFreeKickGoals: number;\n shFreeKickOnGoals: number;\n shFreeKickMisses: number;\n shFreeKickShotsBlocked: number;\n evFreeKickGoals: number;\n evFreeKickOnGoals: number;\n evFreeKickMisses: number;\n evFreeKickShotsBlocked: number;\n freeKickPasses: number;\n freeKickSelfs: number;\n ppCornerGoals: number;\n ppCornerOnGoals: number;\n ppCornerMisses: number;\n ppCornerShotsBlocked: number;\n shCornerGoals: number;\n shCornerOnGoals: number;\n shCornerMisses: number;\n shCornerShotsBlocked: number;\n evCornerGoals: number;\n evCornerOnGoals: number;\n evCornerMisses: number;\n evCornerShotsBlocked: number;\n cornerPasses: number;\n cornerSelfs: number;\n tackles: number;\n playerEfficiency: number;\n\n /*additional statistic*/\n ppShots: number;\n shShots: number;\n evShots: number;\n ppGoalsPercent: number;\n shGoalsPercent: number;\n evGoalsPercent: number;\n totalPpGoals: number;\n totalShGoals: number;\n totalEvGoals: number;\n goals: number;\n totalGoals: number;\n positionAttackGoals: number;\n positionAttackShotsOnGoal: number;\n positionAttackShotsMiss: number;\n positionAttackShots: number;\n positionAttackGoalsPercent: number;\n totalCounterAttackGoals: number;\n counterAttackShotOnGoals: number;\n counterAttackShotMisses: number;\n counterAttackShots: number;\n counterAttackGoalsPercent: number;\n totalManeuverGoals: number;\n maneuverShotMisses: number;\n maneuverShotOnGoals: number;\n maneuverShots: number;\n maneuverGoalsPercent: number;\n totalCenterForwardGoals: number;\n centerForwardShotOnGoals: number;\n centerForwardShotMisses: number;\n centerForwardShots: number;\n centerForwardGoalsPercent: number;\n totalFreeKickGoals: number;\n freeKickShotMisses: number;\n freeKickOnGoals: number;\n totalFreeKicks: number;\n freeKickGoalsPercent: number;\n totalCornerGoals: number;\n totalCorners: number;\n totalInGameGoals: number;\n inGameShotMisses: number;\n totalPpShotMisses: number;\n shotMisses: number;\n totalPpShotsOnGoal: number;\n inGameShotsOnGoals: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n shotsOnGoalPercent: number;\n totalShots: number;\n goalsPercent: number;\n totalGoalsPercent: number;\n faceOffs: number;\n faceOffPercent: number;\n totalFouls: number;\n totalPenalties: number;\n shootoutShots: number;\n shootoutGoalsPercent: number;\n\n /*goalie stat*/\n positionAttackSaves: number;\n positionAttackShotsAgainst: number;\n positionAttackSavesPercent: number;\n counterAttackSaves: number;\n counterAttackShotsAgainst: number;\n counterAttackSavesPercent: number;\n centerForwardSaves: number;\n centerForwardShotsAgainst: number;\n centerForwardSavesPercent: number;\n maneuverSaves: number;\n maneuverShotsAgainst: number;\n maneuverSavesPercent: number;\n freeKickSaves: number;\n freeKickShotsAgainst: number;\n freeKickSavesPercent: number;\n cornerSaves: number;\n cornerShotsAgainst: number;\n cornerSavesPercent: number;\n inGameSaves: number;\n saves: number;\n totalSaves: number;\n shootoutShotsAgainst: number;\n shootoutSavesPercent: number;\n gameShotsAgainst: number;\n savesPercent: number;\n totalShotsAgainst: number;\n totalSavesPercent: number;\n inGameGoalsAgainst: number;\n totalGoalsAgainst: number;\n totalShSaves: number;\n totalShGoalsAgainst: number;\n totalShShotsAgainst: number;\n totalShSavesPercent: number;\n totalEvSaves: number;\n totalEvGoalsAgainst: number;\n totalEvShotsAgainst: number;\n totalEvSavesPercent: number;\n\n newbie: boolean;\n rank: number;\n\n get assists(): number {\n return Math.floor(10 * ((this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get penaltyTime(): string {\n if (!this.penaltyMinutes) {\n return '00:00';\n }\n const minutes = Math.floor(this.penaltyMinutes / 60);\n const seconds = Math.floor(this.penaltyMinutes - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n}\n","import { BaseModel, Model, enumField, listField, nestedModel } from './util';\nimport { TournamentDivision } from './tournament-division';\n\nexport enum TournamentRoundTypes {\n group = 1,\n playoff,\n}\n\nexport class TournamentRoundSettings extends BaseModel {\n toursCount: number;\n}\n\n@Model({\n relation: {\n type: enumField(TournamentRoundTypes),\n divisions: listField(nestedModel(TournamentDivision)),\n }\n})\nexport class TournamentRound extends BaseModel {\n id: number;\n name: string;\n type: TournamentRoundTypes;\n divisions: TournamentDivision[];\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Tournament } from '../models/tournament';\nimport { map } from 'rxjs/operators';\nimport { TournamentNews } from '../models/tournament-news';\nimport { Game, GameStatuses } from '../models/game';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { Playoff } from '../models/playoff';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyStatistic } from '../models/hockey-statistic';\nimport { FootballStatistic } from '../models/football-statistic';\nimport { LeagueUserPermissions } from '../models/league-user';\nimport { HandballStatistic } from '../models/handball-statistic';\nimport { RugbyStatistic } from '../models/rugby-statistic';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { TeamAchievement } from '../models/team-achievement';\nimport { WaterpoloStatistic } from '../models/waterpolo-statistic';\nimport { TournamentRound } from '../models/tournament-round';\nimport { TournamentDivision } from '../models/tournament-division';\nimport { UserGender } from '../models/user';\n\nexport interface TournamentGamesFilters {\n tournamentIds?: number[];\n tournamentSeasonId?: number;\n tournamentStageId?: number;\n tournamentRoundId?: number;\n tournamentGroupId?: number;\n divisionId?: number;\n tournamentTour?: number;\n teamId?: number;\n playoffStage?: number;\n playoffRound?: number;\n playoffId?: number;\n isPlayoff?: boolean;\n status?: GameStatuses;\n statuses?: GameStatuses[];\n tournamentCourtId?: number;\n leaguePlayerId?: number;\n userId?: number;\n query?: string;\n}\n\nexport type StatisticGroupByTypes = 'team' | 'user' | 'team_user' | 'tournament_team' | 'league_player' | 'tournament_team_user'\n | 'month' | 'win_loses';\n\nexport interface StatisticFilters {\n league_id?: number;\n tournament_id?: number;\n tournament_ids?: number[];\n tournament_season_id?: number;\n tournament_team_id?: number;\n league_player_id?: number;\n tournament_team_user_id?: number;\n team_id?: number;\n team_user_id?: number;\n user_id?: number;\n tournament_stage_id?: number;\n tournament_round_id?: number;\n division_id?: number;\n tournament_group_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_round?: number;\n playoff_id?: number;\n is_playoff?: boolean;\n date_from?: string;\n date_to?: string;\n query?: string;\n gender?: UserGender;\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n order_by?: string;\n page?: number;\n size?: number;\n}\n\nexport interface StatisticLeadersFilters {\n tournament_id?: number;\n tournament_ids?: number[];\n tournament_season_id?: number;\n tournament_team_id?: number;\n team_id?: number;\n tournament_stage_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_id?: number;\n date_from?: string;\n date_to?: string;\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n size?: number;\n fields: string[];\n}\n\nexport interface TournamentEventsListFilter {\n event?: TournamentEventTypes;\n search?: string;\n tournamentTour?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentId: number): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/`)\n .pipe(map(result => new Tournament(result)))\n .toPromise();\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/${alias}/`)\n .pipe(map(result => new Tournament(result)))\n .toPromise();\n }\n\n async getSeasonTournaments(seasonTournamentId: number): Promise<Tournament[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/season_tournament/${seasonTournamentId}/tournaments/`\n )\n .pipe(map(result => result.map(item => new Tournament(item))))\n .toPromise();\n }\n\n async getNews(tournamentId: number): Promise<TournamentNews[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`)\n .pipe(map(result => result.map(item => new TournamentNews(item))))\n .toPromise();\n }\n\n async getEvents(\n tournamentId: number, page: number, size: number,\n filters?: TournamentEventsListFilter\n ): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/events/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new TournamentEvent(item))\n })))\n .toPromise();\n }\n\n async getTournamentStages(tournamentId: number): Promise<TournamentStage[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stages/`).pipe(\n map(data => data.map(item => new TournamentStage(item)))\n ).toPromise();\n }\n\n async getTournamentRounds(tournamentId: number): Promise<TournamentRound[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/rounds/`).pipe(\n map(data => data.map(item => new TournamentRound(item))),\n ).toPromise();\n }\n\n async getTournamentDivisions(tournamentId: number): Promise<TournamentDivision[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/divisions/`).pipe(\n map(data => data.map(item => new TournamentDivision(item))),\n ).toPromise();\n }\n\n async getPlayoff(tournamentId: number): Promise<Playoff[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/playoff/`).pipe(\n map(result => result.map(item => new Playoff(item)))\n ).toPromise();\n }\n\n async getPlayoffGames(playoffId: number, playoffNumber?: string): Promise<Game[]> {\n let params = new HttpParams();\n if (playoffNumber) {\n params = params.set('playoff_number', playoffNumber);\n }\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_playoff/${playoffId}/games/`,\n {params}\n ).pipe(\n map(result => result.map(item => new Game(item)))\n ).toPromise();\n }\n\n async getGamesStages(tournamentId: number, roundId?: number): Promise<GameTimelineStages> {\n let params = new HttpParams();\n if (roundId) {\n params = params.set('tournament_round_id', roundId.toString());\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_stages/`,\n {params}\n )\n .pipe(map(data => new GameTimelineStages(data)))\n .toPromise();\n }\n\n async getGames(\n tournamentId: number, page: number, size: number,\n filters: TournamentGamesFilters = {}\n ): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games/`,\n {params, observe: 'response'}\n )\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Game(item)),\n }))).toPromise();\n }\n\n async getGamesDates(tournamentId: number): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_dates/`,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body\n }))\n ).toPromise();\n }\n\n async getGroups(tournamentId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/groups/`)\n .pipe(map(result => result.map(item => new TournamentGroup(item))))\n .toPromise();\n }\n\n async getTeams(tournamentId: number, groupId?: number, short?: boolean): Promise<TournamentTeam[]> {\n let params = new HttpParams();\n if (groupId) {\n params = params.set('group_id', groupId.toString());\n }\n if (short) {\n params = params.set('short', '1');\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams/`,\n {params}\n )\n .pipe(map(result => result.map(item => new TournamentTeam(item))))\n .toPromise();\n }\n\n async getStageTeams(tournamentId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stage_teams/`)\n .pipe(map(result => result.map(item => new TournamentStageTeam(item))))\n .toPromise();\n }\n\n async getTeamsAchievements(tournamentId: number): Promise<TeamAchievement[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/achievements/`)\n .pipe(map(result => result.map(item => new TeamAchievement(item))))\n .toPromise();\n }\n\n async getTeamById(tournamentTeamId: number): Promise<TournamentTeam> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/`)\n .pipe(map(result => new TournamentTeam(result)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<TournamentTeamUser> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${userId}/`)\n .pipe(map(result => new TournamentTeamUser(result)))\n .toPromise();\n }\n\n async getUserGames(tournamentUserId: number): Promise<Game[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentUserId}/games/`)\n .pipe(map(result => result.map(item => new Game(item))))\n .toPromise();\n }\n\n async downloadTable(tournamentId: number, format: 'pdf' | 'xlsx', isChess?: boolean): Promise<any> {\n let httpParams = new HttpParams().set('file_type', format);\n if (isChess) {\n httpParams = httpParams.set('isChess', true);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/table_file/`, {\n params: httpParams,\n responseType: 'blob'\n }).toPromise();\n }\n\n async getBasketballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: BasketballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/basketball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new BasketballStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getVolleyballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: VolleyballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/volleyball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new VolleyballStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getHockeyStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: HockeyStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/hockey_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new HockeyStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getFootballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: FootballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/football_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new FootballStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getHandballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: HandballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/handball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new HandballStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getWaterpoloStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: WaterpoloStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/waterpolo_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new WaterpoloStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getBasketballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<BasketballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/basketball_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new BasketballStatistic(item))\n }))\n ).toPromise();\n }\n\n async getVolleyballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<VolleyballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/volleyball_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new VolleyballStatistic(item)),\n }))\n ).toPromise();\n }\n\n async getHockeyStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<HockeyStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/hockey_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new HockeyStatistic(item)),\n }))\n ).toPromise();\n }\n\n async getFootballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<FootballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/football_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new FootballStatistic(item)),\n }))\n ).toPromise();\n }\n\n async getHandballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<HandballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/handball_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new HandballStatistic(item)),\n }))\n ).toPromise();\n }\n\n async getRugbyStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<RugbyStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/rugby_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new RugbyStatistic(item))\n }))\n ).toPromise();\n }\n\n async getWaterpoloStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<WaterpoloStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/waterpolo_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new WaterpoloStatistic(item)),\n }))\n ).toPromise();\n }\n\n async getTournamentTeamUsers(tournamentTeamId: number): Promise<TournamentTeamUser[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users/`\n ).pipe(\n map(result => result.map(item => new TournamentTeamUser(item))),\n ).toPromise();\n }\n\n async myPermission(tournamentId: number): Promise<LeagueUserPermissions[]> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/permission/`\n ).pipe(\n map((data: any) => (data.permissions || []).map(item => LeagueUserPermissions[item]))\n ).toPromise();\n }\n\n async getTournamentTeamTournaments(tournamentTeamId: number): Promise<Tournament[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/tournaments/`\n ).pipe(\n map(result => result.map(item => new Tournament(item)))\n ).toPromise();\n }\n\n async getTournamentUserTournaments(tournamentTeamUserId: number): Promise<Tournament[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentTeamUserId}/tournaments/`\n ).pipe(\n map(result => result.map(item => new Tournament(item)))\n ).toPromise();\n }\n}\n\nexport function applyGamesFilters(filters: TournamentGamesFilters, params: HttpParams): HttpParams {\n if (filters.tournamentIds) {\n params = params.set('tournament_ids', filters.tournamentIds.join(','));\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentRoundId) {\n params = params.set('tournament_round_id', filters.tournamentRoundId.toString());\n }\n if (filters.tournamentGroupId) {\n params = params.set('tournament_group_id', filters.tournamentGroupId.toString());\n }\n if (filters.divisionId) {\n params = params.set('division_id', filters.divisionId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.playoffRound) {\n params = params.set('playoff_round', filters.playoffRound.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n if (filters.leaguePlayerId) {\n params = params.set('league_player_id', filters.leaguePlayerId.toString());\n }\n if (filters.userId) {\n params = params.set('user_id', filters.userId.toString());\n }\n if (filters.query) {\n params = params.set('query', filters.query);\n }\n if (filters.isPlayoff !== undefined && filters.isPlayoff !== null) {\n params = params.set('is_playoff', filters.isPlayoff ? '1' : '0');\n }\n return params;\n}\n\nexport function applyStatisticFilters(filters: StatisticFilters, params: HttpParams): HttpParams {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n\n if (filters.tournament_ids) {\n params = params.set('tournament_ids', filters.tournament_ids.join(','));\n }\n\n if (filters.is_playoff !== undefined && filters.is_playoff !== null) {\n params = params.set('is_playoff', filters.is_playoff ? '1' : '0');\n }\n\n return params;\n}\n\nexport function applyStatisticLeadersFilters(filters: StatisticLeadersFilters, params: HttpParams): HttpParams {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n\n if (filters.tournament_ids) {\n params = params.set('tournament_ids', filters.tournament_ids.join(','));\n }\n if (filters.fields) {\n params = params.set('fields', filters.fields.join(','));\n }\n return params;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n picture: nestedModel(File)\n }\n})\nexport class LeaguePartner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n}\n","import { Model, BaseModel, enumField, nestedModel } from './util';\nimport { File } from './file';\n\nexport enum BannerLocation {\n slider = 'slider',\n central = 'central',\n media = 'media',\n}\n\n@Model({\n relation: {\n picture: nestedModel(File),\n location: enumField(BannerLocation),\n }\n})\nexport class LeagueBanner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n location: BannerLocation;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n file: nestedModel(File),\n }\n})\nexport class LeagueDocument extends BaseModel {\n id: number;\n file: File;\n}\n","import { Model, BaseModel, listField, nestedModel } from './util';\nimport { Team } from './team';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n teams: listField(nestedModel(Team)),\n leaguePlayers: listField(nestedModel(LeaguePlayer)),\n }\n})\nexport class TeamsAndUsers extends BaseModel {\n teams: Team[];\n leaguePlayers: LeaguePlayer[];\n\n get isEmpty(): boolean {\n return (!this.teams || this.teams.length === 0) &&\n (!this.leaguePlayers || this.leaguePlayers.length === 0);\n }\n}\n","import { Model, BaseModel } from './util';\n\n@Model()\nexport class SeasonTournament extends BaseModel {\n id: number;\n name: string;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { League } from '../models/league';\nimport { map } from 'rxjs/operators';\nimport { Tournament, TournamentStatuses } from '../models/tournament';\nimport { ConfigService } from '../services/config.service';\nimport { applyGamesFilters, TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { Game } from '../models/game';\nimport { LeaguePartner } from '../models/league-partner';\nimport { LeagueCourt } from '../models/league-court';\nimport { BannerLocation, LeagueBanner } from '../models/league-banner';\nimport { LeagueDocument } from '../models/league-document';\nimport { TeamsAndUsers } from '../models/teams-and-users';\nimport { SeasonTournament } from '../models/season-tournament';\n\nexport interface TournamentListFilters {\n statuses: TournamentStatuses[];\n}\n\n@Injectable({providedIn: 'root'})\nexport class LeagueApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getByAlias(alias: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${alias}/`).pipe(\n map(result => new League(result))\n ).toPromise();\n }\n\n async getByDomain(domain: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/by_domain/${domain}/`).pipe(\n map(result => new League(result))\n ).toPromise();\n }\n\n async getSeasonTournaments(leagueId: number): Promise<SeasonTournament[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/season_tournaments/`).pipe(\n map(response => response.map(item => new SeasonTournament(item))),\n ).toPromise();\n }\n\n async getTournaments(leagueId: number, filters?: TournamentListFilters): Promise<Tournament[]> {\n let params = new HttpParams();\n if (filters) {\n if (filters.statuses) {\n params = params.set('statuses', filters.statuses.map(s => TournamentStatuses[s]).join(','));\n }\n }\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`, {params}).pipe(\n map(result => result.map(item => new Tournament(item))),\n ).toPromise();\n }\n\n async getTournamentsPaginated(\n leagueId: number,\n filters?: TournamentListFilters,\n page = 1,\n size = 100\n ): Promise<PaginatedResponse<Tournament[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.statuses) {\n params = params.set('statuses', filters.statuses.map(s => TournamentStatuses[s]).join(','));\n }\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Tournament(item))\n })),\n ).toPromise();\n }\n\n async getEvents(\n leagueId: number, page: number, size: number,\n filters?: TournamentEventsListFilter\n ): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/events/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new TournamentEvent(item)),\n }))\n ).toPromise();\n }\n\n async getTournamentSeasons(leagueId: number): Promise<TournamentSeason[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`).pipe(\n map(result => result.map(item => new TournamentSeason(item))),\n ).toPromise();\n }\n\n async getGames(leagueId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/games/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Game(item)),\n }))\n ).toPromise();\n }\n\n async getSeasons(\n leagueId: number, page = 1, size = 20,\n notClosed?: boolean, include?: string[]\n ): Promise<PaginatedResponse<TournamentSeason[]>> {\n const params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString())\n .set('not_closed', notClosed ? '1' : '')\n .set('include', include ? include.join(',') : '');\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`, {\n params,\n observe: 'response'\n })\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new TournamentSeason(item)),\n })))\n .toPromise();\n }\n\n async getPartners(leagueId: number): Promise<LeaguePartner[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/partners/`).pipe(\n map(result => result.map(item => new LeaguePartner(item))),\n ).toPromise();\n }\n\n async getBanners(leagueId: number, location?: BannerLocation): Promise<LeagueBanner[]> {\n const params = location ? new HttpParams().set('location', location) : new HttpParams();\n\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/banners/`, {params}).pipe(\n map(result => result.map(item => new LeagueBanner(item))),\n ).toPromise();\n }\n\n async getCourts(leagueId: number): Promise<LeagueCourt[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/courts/`).pipe(\n map(result => result.map(item => new LeagueCourt(item))),\n ).toPromise();\n }\n\n async getGraphicSettings(leagueId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/graphic_settings/`)\n .toPromise();\n }\n\n async getDocuments(leagueId: number): Promise<LeagueDocument[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/documents/`).pipe(\n map(result => result.map(item => new LeagueDocument(item))),\n ).toPromise();\n }\n\n async searchTeamsAndUsers(leagueId: number, query: string): Promise<TeamsAndUsers> {\n const params = (new HttpParams()).set('query', query);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/team_and_user_search/`, {params}\n ).pipe(\n map(result => new TeamsAndUsers(result))\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { LeagueNews, LeagueNewsType } from '../models/league-news';\nimport { map } from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class LeagueNewsApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getLeagueNewsList(\n leagueId: number, page: number, size: number,\n type: LeagueNewsType = LeagueNewsType.text, seasonId?: number\n ): Promise<PaginatedResponse<LeagueNews[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString())\n .set('type', LeagueNewsType[type]);\n if (seasonId) {\n params = params.set('season', seasonId.toString());\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/`,\n {params, observe: 'response'}\n )\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new LeagueNews(item)),\n })))\n .toPromise();\n }\n\n async getMainLeagueNews(leagueId: number): Promise<LeagueNews> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => response && response.length > 0 ? new LeagueNews(response[0]) : null))\n .toPromise();\n }\n\n async getMainLeagueNewsList(leagueId: number): Promise<LeagueNews[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => response.map(item => new LeagueNews(item))))\n .toPromise();\n }\n\n async getNewsById(newsId: number): Promise<LeagueNews> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_news/${newsId}/`)\n .pipe(map(response => new LeagueNews(response)))\n .toPromise();\n }\n\n async getTournamentNewsList(tournamentId: number): Promise<PaginatedResponse<LeagueNews[]>> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`,\n {observe: 'response'}\n )\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new LeagueNews(item)),\n })))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { LeaguePlayer } from '../models/league-player';\nimport { map } from 'rxjs/operators';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\n\n@Injectable({providedIn: 'root'})\nexport class LeaguePlayerApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(leaguePlayerId: number): Promise<LeaguePlayer> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_player/${leaguePlayerId}/`).pipe(\n map(item => new LeaguePlayer(item))\n ).toPromise();\n }\n\n getTournamentUsers(leaguePlayerId: number, seasonId?: number): Promise<TournamentTeamUser[]> {\n let params = new HttpParams();\n if (seasonId) {\n params = params.set('season_id', seasonId.toString());\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/league_player/${leaguePlayerId}/tournament_users/`,\n {params}\n ).pipe(\n map(response => response.map(item => new TournamentTeamUser(item))),\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { MediaItem } from '../models/media-item';\nimport { Game, GameStatuses } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\nimport { applyGamesFilters, TournamentGamesFilters } from './tournament-api';\n\nexport interface GameMediaFilters extends TournamentGamesFilters {\n mediaCount?: number;\n}\n\nexport interface MediaFilters {\n mediaType?: 'photo' | 'video' | 'live_video';\n sort?: string;\n teamId?: number;\n statuses?: GameStatuses[];\n}\n\n@Injectable({providedIn: 'root'})\nexport class MediaApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getMedia(mediaId: number): Promise<MediaItem> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/`).pipe(\n map(result => new MediaItem(result))\n ).toPromise();\n }\n\n async getTournamentGameMedia(\n tournamentId: number, page: number, size: number,\n filters?: GameMediaFilters\n ): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/game_media/`,\n {observe: 'response', params}\n ).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new Game(item)),\n };\n })\n ).toPromise();\n }\n\n async getLeagueGameMedia(leagueId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/game_media/`,\n {observe: 'response', params}\n ).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new Game(item)),\n };\n })\n ).toPromise();\n }\n\n async getLeagueMedia(leagueId: number, page: number, size: number, filters: MediaFilters = {}): Promise<PaginatedResponse<MediaItem[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters.mediaType) {\n params = params.set('media_type', filters.mediaType);\n }\n if (filters.sort) {\n params = params.set('sort', filters.sort);\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/media/`,\n {params, observe: 'response'}\n )\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new MediaItem(item)),\n }))).toPromise();\n }\n\n async getTournamentMedia(tournamentId: number, page: number, size: number, filters: MediaFilters = {}): Promise<PaginatedResponse<MediaItem[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters.mediaType) {\n params = params.set('media_type', filters.mediaType);\n }\n if (filters.sort) {\n params = params.set('sort', filters.sort);\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/media/`,\n {params, observe: 'response'}\n )\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new MediaItem(item)),\n }))).toPromise();\n }\n\n async getGameMediaById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/game_media/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getGameMedia(gameId: number): Promise<MediaItem[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/media/?size=1000`).pipe(\n map(result => result.map(item => new MediaItem(item))),\n ).toPromise();\n }\n\n async createZip(mediaIds: number[]): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/media/zip/`, mediaIds, { responseType: 'blob' })\n .toPromise();\n }\n\n async downloadMedia(mediaId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/download/`, {responseType: 'blob'})\n .toPromise();\n }\n}\n\nexport function applyGameMediaFilters(filters: GameMediaFilters, params: HttpParams, ): HttpParams {\n if (filters) {\n params = applyGamesFilters(filters, params);\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.playoffRound) {\n params = params.set('playoff_round', filters.playoffRound.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.mediaCount) {\n params = params.set('media_count', filters.mediaCount.toString());\n }\n }\n return params;\n}\n","import { Model, BaseModel, dateTimeField, enumField, nestedModel } from './util';\nimport { User } from './user';\n\nexport enum PollStatuses {\n open = 1,\n closed,\n archived,\n}\n\n@Model()\nexport class PollVariant extends BaseModel {\n uuid: string;\n name: string;\n}\n\n@Model({\n relation: {\n user: nestedModel(User)\n }\n})\nexport class PollAnswer extends BaseModel {\n id: number;\n answerUuid: string;\n user: User;\n pollId: number;\n}\n\n@Model({\n relation: {\n status: enumField(PollStatuses),\n variants: nestedModel(PollVariant),\n author: nestedModel(User),\n answers: nestedModel(PollAnswer),\n createdAt: dateTimeField,\n }\n})\nexport class Poll extends BaseModel {\n id: number;\n active: boolean;\n teamId: number;\n status: PollStatuses;\n name: string;\n description: string;\n _variants: PollVariant[];\n author: User;\n _answers: PollAnswer[];\n multipleAnswer: boolean;\n anonymous: boolean;\n createdAt: Date;\n variantsWithAnswers: {variant: PollVariant, percent: number}[] = [];\n\n set variants(value: PollVariant[]) {\n this._variants = value || [];\n if (this._answers) {\n this.calculateAnswersPercentage();\n }\n }\n get variants(): PollVariant[] {\n return this._variants;\n }\n\n set answers(value: PollAnswer[]) {\n this._answers = value || [];\n if (this._variants) {\n this.calculateAnswersPercentage();\n }\n }\n get answers(): PollAnswer[] {\n return this._answers;\n }\n\n calculateAnswersPercentage() {\n if (!this._answers.length) {\n return;\n }\n\n const variants = this._variants.map(v => v.uuid);\n const answersByVariant = this._answers.reduce((acc, item) => {\n if (variants.indexOf(item.answerUuid) < 0) {\n return acc;\n }\n if (!acc[item.answerUuid]) {\n acc[item.answerUuid] = 0;\n }\n acc[item.answerUuid]++;\n return acc;\n }, {});\n this.variantsWithAnswers = this._variants.map(item => ({\n variant: item,\n percent: answersByVariant[item.uuid] ? Math.round(100 * answersByVariant[item.uuid] / this._answers.length) : 0\n }))\n .sort((a, b) => a.percent > b.percent ? -1 : 1);\n }\n}\n","import { Model, BaseModel, dateTimeField, nestedModel } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\n@Model({\n relation: {\n user: nestedModel(User),\n team: nestedModel(Team),\n createdAt: dateTimeField,\n updateAt: dateTimeField,\n }\n})\nexport class TeamInvite extends BaseModel {\n id: number;\n userId: number;\n user: User;\n teamId: number;\n team: Team;\n userAccept: boolean;\n teamAccept: boolean;\n usersCount: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n createdAt: Date;\n updatedAt: Date;\n}\n","import { Model, BaseModel, enumField, nestedModel } from './util';\nimport { TeamUser } from './team-user';\nimport { Game } from './game';\n\nexport enum GameInviteStatus {\n accepted = 1,\n declined,\n}\n\n@Model({\n relation: {\n game: nestedModel(Game),\n teamUser: nestedModel(TeamUser),\n status: enumField(GameInviteStatus),\n }\n})\nexport class GameInvite extends BaseModel {\n id: number;\n teamUser: TeamUser;\n gameId: number;\n game: Game;\n status: GameInviteStatus;\n}\n","export enum TeamEventTypes {\n training = 1,\n other = 2,\n}\n","import { TeamEventTypes } from '../models/team-event-type';\n\nexport const TeamEventTypeLocalization = {\n [TeamEventTypes.training]: 'Тренировка',\n [TeamEventTypes.other]: 'Другое'\n};\n","import { BaseModel, enumField, Model, dateTimeField, nestedModel } from './util';\nimport { Team } from './team';\nimport { TeamEventTypeLocalization } from '../localization/team-event-type';\nimport { TeamEventTypes } from './team-event-type';\n\n@Model({\n relation: {\n eventType: enumField(TeamEventTypes),\n team: nestedModel(Team),\n datetime: dateTimeField,\n }\n})\nexport class TeamEvent extends BaseModel {\n id: number;\n teamId: number;\n team: Team;\n eventType: TeamEventTypes;\n eventCustomName: string;\n description: string;\n datetime: Date;\n location: string;\n\n get name(): string {\n if (this.eventType === TeamEventTypes.other) {\n return this.eventCustomName;\n }\n return TeamEventTypeLocalization[this.eventType];\n }\n\n get isClosed(): boolean {\n return this.datetime.getTime() < new Date().getTime();\n }\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum TeamEventInviteStatuses {\n accepted = 1,\n declined = 2\n}\n\n@Model({\n relation: {\n status: enumField(TeamEventInviteStatuses)\n }\n})\nexport class TeamEventInvite extends BaseModel {\n id: number;\n teamEventId: number;\n teamUserId: number;\n status: TeamEventInviteStatuses;\n}\n","import { BaseModel, Model, nestedModel } from './util';\nimport { TeamUser } from './team-user';\n\n@Model({\n relation: {\n teamUser: nestedModel(TeamUser),\n }\n})\nexport class TournamentTeamUserInvite extends BaseModel {\n id: number;\n tournamentTeamInviteId: number;\n tournamentTeamId: number;\n teamUser: TeamUser;\n accepted: boolean;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { Team } from './team';\nimport { Tournament } from './tournament';\nimport { TournamentTeamUserInvite } from './tournament-team-user-invite';\n\n@Model({\n relation: {\n team: nestedModel(Team),\n tournament: nestedModel(Tournament),\n userInvites: nestedModel(TournamentTeamUserInvite),\n }\n})\nexport class TournamentInvite extends BaseModel {\n id: number;\n team: Team;\n tournament: Tournament;\n teamAccept: boolean;\n organizationAccept: boolean;\n userInvitesCount: number;\n userInvites: TournamentTeamUserInvite[];\n notificationsCount: number;\n\n get isOpen(): boolean {\n return (this.teamAccept === null || this.organizationAccept === null) && this.teamAccept !== false && this.organizationAccept !== false;\n }\n}\n","import { Model, BaseModel, dateTimeField, enumField, nestedModel } from './util';\nimport { Team } from './team';\nimport { Poll } from './poll';\nimport { Game } from './game';\nimport { TeamInvite } from './team-invite';\nimport { TeamUser } from './team-user';\nimport { GameInvite } from './game-invite';\nimport { TeamEvent } from './team-event';\nimport { TeamEventInvite } from './team-event-invite';\nimport { Tournament } from './tournament';\nimport { TournamentInvite } from './tournament-invite';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\n\nexport enum NotificationType {\n team_updated = 1,\n team_invited,\n team_join_request,\n team_join_declined_by_team,\n team_join_declined_by_user,\n team_join_canceled_by_team,\n team_join_canceled_by_user,\n team_joined_for_user,\n team_joined_for_team,\n team_user_role_changed_for_user,\n team_user_role_changed_for_team,\n team_user_number_changed,\n team_user_deleted_for_user,\n team_user_deleted_for_team,\n team_user_left,\n\n game_updated,\n game_invited,\n game_invite_accepted,\n game_invite_declined,\n game_remind,\n game_won,\n game_losing,\n game_tech_defeat,\n game_tech_victory,\n\n poll_created,\n poll_closed,\n\n team_event_invited,\n team_event_accepted,\n team_event_declined,\n team_event_remind,\n\n tournament_invited,\n tournament_joined,\n tournament_join_declined,\n tournament_join_canceled,\n tournament_user_invited,\n tournament_user_accepted_for_team,\n tournament_user_accepted_for_user,\n tournament_user_added,\n tournament_user_declined_for_team,\n tournament_user_declined_for_user,\n tournament_user_invite_deleted,\n tournament_user_deleted,\n tournament_user_disqualified_for_team,\n tournament_user_disqualified_for_user,\n tournament_user_disqualification_updated_for_team,\n tournament_user_disqualification_updated_for_user,\n tournament_team_deleted,\n\n org_tournament_invite_created,\n org_tournament_invite_declined,\n org_tournament_invite_deleted,\n org_tournament_invite_changed,\n org_tournament_user_deleted,\n org_tournament_user_invited,\n org_tournament_user_has_changes,\n org_tournament_team_leave,\n}\n\nexport enum NotificationServiceEnum {\n public = 1,\n org\n}\n\n@Model({\n relation: {\n event: enumField(NotificationType),\n initiator: nestedModel(User),\n team: nestedModel(Team),\n teamInvite: nestedModel(TeamInvite),\n teamUser: nestedModel(TeamUser),\n poll: nestedModel(Poll),\n game: nestedModel(Game),\n gameInvite: nestedModel(GameInvite),\n teamEvent: nestedModel(TeamEvent),\n teamEventInvite: nestedModel(TeamEventInvite),\n tournament: nestedModel(Tournament),\n tournamentInvite: nestedModel(TournamentInvite),\n tournamentTeam: nestedModel(TournamentTeam),\n service: enumField(NotificationServiceEnum),\n createdAt: dateTimeField,\n }\n})\nexport class Notification extends BaseModel {\n id: number;\n event: NotificationType;\n data: any;\n initiator: User;\n team: Team;\n teamInvite: TeamInvite;\n teamUser: TeamUser;\n poll: Poll;\n game: Game;\n gameInvite: GameInvite;\n teamEvent: TeamEvent;\n teamEventInvite: TeamEventInvite;\n tournament: Tournament;\n tournamentInvite: TournamentInvite;\n tournamentTeam: TournamentTeam;\n viewed: boolean;\n protected: boolean;\n service: NotificationServiceEnum;\n createdAt: Date;\n\n get important(): boolean {\n return true;\n }\n}\n","import { Model, BaseModel, enumField } from './util';\n\nexport enum NotificationAllowTypes {\n all = 1,\n important,\n none\n}\n\n@Model({\n relation: {\n sound: enumField(NotificationAllowTypes),\n browser: enumField(NotificationAllowTypes),\n }\n})\nexport class NotificationSettings extends BaseModel {\n userId: number;\n popup: boolean;\n sound: NotificationAllowTypes;\n browser: NotificationAllowTypes;\n email: boolean;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Notification } from '../models/notification';\nimport { NotificationSettings } from '../models/notification-settings';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\n\nexport interface NotificationFilters {\n protected?: boolean;\n not_viewed?: boolean;\n important?: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class NotificationBaseApi {\n protected apiUrl: string;\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCount(): Promise<number> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/count/`)\n .pipe(map(data => +data))\n .toPromise();\n }\n\n async getList(page: number, size: number, filters: NotificationFilters = {}): Promise<PaginatedResponse<Notification[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n for (const key of Object.keys(filters)) {\n params = params.set(key, filters[key]);\n }\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}${this.apiUrl}/notification/`,\n {params, observe: 'response'}\n )\n .pipe(\n map(response => ({\n total: +response.headers.get('x-page-count'),\n data: response.body.map(item => new Notification(item)),\n })),\n ).toPromise();\n }\n\n async markViewed(notificationId: number, viewed: boolean): Promise<Notification> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/${notificationId}/viewed/`, {viewed})\n .pipe(map(data => new Notification(data)))\n .toPromise();\n }\n\n async markAllViewed(): Promise<Notification[]> {\n return this.httpClient\n .post<object[]>(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/viewed/`, {})\n .pipe(map(data => data.map(item => new Notification(item))))\n .toPromise();\n }\n\n async getNotificationSettings(): Promise<NotificationSettings> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`)\n .pipe(map(data => new NotificationSettings(data)))\n .toPromise();\n }\n\n async updateNotificationSettings(data: NotificationSettings): Promise<NotificationSettings> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`,\n data.json()\n )\n .pipe(map(result => new NotificationSettings(result)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class NotificationApi extends NotificationBaseApi {\n protected apiUrl = '/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class OrgNotificationApi extends NotificationBaseApi {\n protected apiUrl = '/org/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { City } from '../models/city';\nimport { Sport } from '../models/sport';\n\n@Injectable({providedIn: 'root'})\nexport class ReferenceApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCities(): Promise<City[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/reference/cities/`)\n .pipe(\n map(data => data.map(item => new City(item)))\n ).toPromise();\n }\n\n async getSports(): Promise<Sport[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/sport/`)\n .pipe(\n map(data => data.map(item => new Sport(item)))\n ).toPromise();\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { RugbyStatistic } from './rugby-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(RugbyStatistic),\n competitorTeam: nestedModel(RugbyStatistic),\n }\n})\nexport class RugbyGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: RugbyStatistic;\n competitorTeam: RugbyStatistic;\n}\n","import { Model, dateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model({\n relation: {\n updatedAt: dateTimeField,\n }\n})\nexport class RugbyGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n tries: number;\n penaltyTries: number;\n conversionGoals: number;\n conversionMisses: number;\n penaltyMisses: number;\n penaltyGoals: number;\n dropGoals: number;\n dropGoalMisses: number;\n freeKicks: number;\n yellowCards: number;\n redCards: number;\n offloads: number;\n tackles: number;\n handlingErrors: number;\n carriesOverGainline: number;\n footFieldShots: number;\n footOutShots: number;\n footKicks5022: number;\n fouls: number;\n teamFouls: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get conversionKicks(): number {\n return (this.conversionGoals || 0) + (this.conversionMisses || 0);\n }\n\n get conversionGoalsPercent(): number {\n if (!this.conversionKicks) {\n return 0;\n }\n return Math.floor(1000 * this.conversionGoals / this.conversionKicks) / 10;\n }\n\n get penaltyKicksOnGoal(): number {\n return (this.penaltyGoals || 0) + (this.penaltyMisses || 0);\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyKicksOnGoal) {\n return 0;\n }\n return Math.floor(1000 * this.penaltyGoals / this.penaltyKicksOnGoal) / 10;\n }\n\n get dropGoalKicks(): number {\n return (this.dropGoals || 0) + (this.dropGoalMisses || 0);\n }\n\n get dropGoalsPercent(): number {\n if (!this.dropGoalKicks) {\n return 0;\n }\n return Math.floor(1000 * this.dropGoals / this.dropGoalKicks) / 10;\n }\n\n get totalGoals(): number {\n return (this.conversionGoals || 0) + (this.dropGoals || 0) + (this.penaltyGoals || 0);\n }\n\n get footShots(): number {\n return (this.footFieldShots || 0) + (this.footOutShots || 0) + (this.footKicks5022 || 0);\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.teamFouls || 0);\n }\n}\n","import { BaseModel, Model, listField, enumField } from './util';\n\nexport enum RugbyFoulSanctions {\n scrum = 1,\n lineout,\n free_kick,\n penalty_shot,\n yellow_card,\n red_card,\n start_kick,\n twenty_two_meters_kick,\n conversion_cancel\n}\n\nexport enum RugbyFoulGameStage {\n start_kick= 1,\n open_game,\n tackle,\n ruck_or_maul,\n scrum,\n out_and_lineout,\n scoring_field,\n kick_on_goal,\n free_kick,\n team,\n}\n\n@Model({\n relation: {\n sanction: listField(enumField(RugbyFoulSanctions)),\n gameStage: enumField(RugbyFoulGameStage),\n }\n})\nexport class RugbyFoulType extends BaseModel {\n id: number;\n name: string;\n sanction: RugbyFoulSanctions[];\n gameStage: RugbyFoulGameStage;\n}\n","import { Model, dateTimeField, enumField, nestedModel } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\nimport { RugbyFoulGameStage, RugbyFoulSanctions, RugbyFoulType } from './rugby-foul-type';\n\nexport enum RugbyGameLogTypes {\n enter_game = 1,\n exit_game,\n try,\n penalty_try,\n conversion_goal,\n conversion_miss,\n penalty_miss,\n penalty_goal,\n drop_goal,\n drop_goal_miss,\n free_kick,\n foul,\n yellow_card,\n red_card,\n offload,\n tackle,\n handling_error,\n carries_over_gainline,\n bleeding_injury,\n head_injury,\n end_game_penalty_miss,\n end_game_penalty_goal,\n foot_field_shot,\n foot_out_shot,\n foot_kick_50_22,\n\n // team actions\n timeout,\n tap_penalty,\n penalty_kick_to_touch,\n scrum_won,\n scrum_lost,\n scrum_won_free,\n lineout_won,\n lineout_lost,\n quick_throw,\n ruck_won,\n ruck_lost,\n maul_won,\n maul_lost,\n team_foul,\n start_kick,\n twenty_two_meters_kick,\n goal_kick\n}\n\nexport const RUGBY_GAME_LOG_TYPE_POINTS = {\n [RugbyGameLogTypes.penalty_try]: 7,\n [RugbyGameLogTypes.try]: 5,\n [RugbyGameLogTypes.conversion_goal]: 2,\n [RugbyGameLogTypes.penalty_goal]: 3,\n [RugbyGameLogTypes.drop_goal]: 3,\n [RugbyGameLogTypes.end_game_penalty_goal]: 1, // Не влияет на общий счет\n};\n\nexport const RUGBY_TEAM_LOG_TYPES = [\n RugbyGameLogTypes.timeout, RugbyGameLogTypes.scrum_won, RugbyGameLogTypes.scrum_lost, RugbyGameLogTypes.scrum_won_free,\n RugbyGameLogTypes.lineout_won, RugbyGameLogTypes.lineout_lost,\n RugbyGameLogTypes.quick_throw, RugbyGameLogTypes.ruck_won, RugbyGameLogTypes.ruck_lost,\n RugbyGameLogTypes.maul_won, RugbyGameLogTypes.maul_lost, RugbyGameLogTypes.team_foul,\n RugbyGameLogTypes.penalty_kick_to_touch, RugbyGameLogTypes.tap_penalty,\n RugbyGameLogTypes.start_kick, RugbyGameLogTypes.twenty_two_meters_kick, RugbyGameLogTypes.goal_kick,\n RugbyGameLogTypes.penalty_try\n];\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(RugbyGameLogTypes),\n foulType: nestedModel(RugbyFoulType),\n foulSanction: enumField(RugbyFoulSanctions),\n foulGameStage: enumField(RugbyFoulGameStage),\n }\n})\nexport class RugbyGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n group: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: RugbyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n foulType: RugbyFoulType;\n foulSanction: RugbyFoulSanctions;\n foulGameStage: RugbyFoulGameStage;\n\n compare(model: RugbyGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return RUGBY_GAME_LOG_TYPE_POINTS[this.logType] !== undefined;\n }\n\n scorePoints(): number {\n return RUGBY_GAME_LOG_TYPE_POINTS[this.logType];\n }\n\n isAfter(log: RugbyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n isFoulType(): boolean {\n return [RugbyGameLogTypes.team_foul, RugbyGameLogTypes.foul].indexOf(this.logType) > -1;\n }\n\n isTeamType(): boolean {\n return RUGBY_TEAM_LOG_TYPES.includes(this.logType);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\nimport { RugbyGameTeamStatistic } from '../models/rugby-game-team-statistic';\nimport { RugbyGameStatistic } from '../models/rugby-game-statistic';\nimport { RugbyGameLog } from '../models/rugby-game-log';\nimport { RugbyFoulType } from '../models/rugby-foul-type';\n\n@Injectable({providedIn: 'root'})\nexport class RugbyGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<RugbyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/team_statistic/`).pipe(\n map(result => new RugbyGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<RugbyGameStatistic[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/user_statistic/`).pipe(\n map(result => result.map(item => new RugbyGameStatistic(item)))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<RugbyGameLog[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/logs/`).pipe(\n map(result => result.map(item => new RugbyGameLog(item)))\n ).toPromise();\n }\n\n async getFoulTypes(): Promise<RugbyFoulType> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/foul_types/`).pipe(\n map(result => new RugbyFoulType(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', 'pdf'),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Model, BaseModel } from './util';\n\n@Model()\nexport class TeamInviteExternal extends BaseModel {\n id: number;\n teamId: number;\n email: string;\n firstName: string;\n lastName: string;\n}\n","import { Model, BaseModel, enumField } from './util';\n\nexport enum TeamPermissionTypes {\n for_all = 1,\n for_users,\n for_team\n}\n\n@Model({\n relation: {\n players: enumField(TeamPermissionTypes),\n games: enumField(TeamPermissionTypes),\n statistic: enumField(TeamPermissionTypes),\n polls: enumField(TeamPermissionTypes),\n events: enumField(TeamPermissionTypes)\n }\n})\nexport class TeamPermission extends BaseModel {\n players: TeamPermissionTypes;\n games: TeamPermissionTypes;\n statistic: TeamPermissionTypes;\n polls: TeamPermissionTypes;\n events: TeamPermissionTypes;\n}\n","import { Model, BaseModel, enumField } from './util';\nimport { TeamUserRole } from './team-user';\n\n@Model({\n relation: {\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamAccess extends BaseModel {\n canEdit: boolean;\n canViewUsers: boolean;\n canManagePermission: boolean;\n canChangeOwner: boolean;\n canDelete: boolean;\n canManageInvites: boolean;\n canViewInvites: boolean;\n canManagePolls: boolean;\n canViewPolls: boolean;\n canAnswerPoll: boolean;\n canManageGames: boolean;\n canViewGames: boolean;\n canViewStatistic: boolean;\n canPromoteUsers: boolean;\n canEditUsers: boolean;\n canDeleteUsers: boolean;\n canViewEvents: boolean;\n canManageEvents: boolean;\n canViewTournaments: boolean;\n canManageTournaments: boolean;\n role: TeamUserRole;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser, TeamUserRole } from '../models/team-user';\nimport { User } from '../models/user';\nimport { TeamInvite } from '../models/team-invite';\nimport { TeamInviteExternal } from '../models/team-invite-external';\nimport { Poll } from '../models/poll';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { TeamEvent } from '../models/team-event';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { TeamPermission } from '../models/team-permission';\nimport { TeamAccess } from '../models/team-access';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async search(query: string, sportId?: number): Promise<Team[]> {\n let params = (new HttpParams()).set('search', query);\n if (sportId) {\n params = params.set('sport', sportId.toString());\n }\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/`, {params})\n .pipe(map(data => data.map(item => new Team(item))))\n .toPromise();\n }\n\n async create(team: Team): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/`, team.json())\n .pipe(map(data => new Team(data)))\n .toPromise();\n }\n\n async getById(teamId: number): Promise<Team> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`)\n .pipe(map(data => new Team(data)))\n .toPromise();\n }\n\n async getTeamAccess(teamId: number): Promise<TeamAccess> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/access/`)\n .pipe(map(data => new TeamAccess(data)))\n .toPromise();\n }\n\n async update(teamId: number, team: Team): Promise<Team> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`, team.json())\n .pipe(map(data => new Team(data)))\n .toPromise();\n }\n\n async delete(team: Team): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${team.id}/`)\n .toPromise();\n }\n\n async getPermission(teamId: number): Promise<TeamPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`)\n .pipe(map(data => new TeamPermission(data)))\n .toPromise();\n }\n\n async updatePermission(teamId: number, permission: TeamPermission): Promise<TeamPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`, permission.json())\n .pipe(map(data => new TeamPermission(data)))\n .toPromise();\n }\n\n async getUsers(teamId: number, tournamentId?: number): Promise<TeamUser[]> {\n let params = new HttpParams();\n if (tournamentId) {\n params = params.set('tournament_id', tournamentId.toString());\n }\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`, {params})\n .pipe(map(data => data.map(item => new TeamUser(item))))\n .toPromise();\n }\n\n async updateUserRole(teamId: number, teamUserId: number, role: TeamUserRole): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/role/`, {role: TeamUserRole[role]})\n .pipe(map(data => new TeamUser(data)))\n .toPromise();\n }\n\n async updateUserNumber(teamId: number, teamUserId: number, gameNumber: number): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/number/`, {number: gameNumber.toString()})\n .pipe(map(data => new TeamUser(data)))\n .toPromise();\n }\n\n async deleteUser(teamUser: TeamUser): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${teamUser.teamId}/users/${teamUser.id}/`)\n .toPromise();\n }\n\n async changeOwner(teamId: number, user: User): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/owner/`, {id: user.id})\n .pipe(map(data => new Team(data)))\n .toPromise();\n }\n\n async getInvites(teamId: number): Promise<TeamInvite[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`)\n .pipe(map(data => data.map(item => new TeamInvite(item))))\n .toPromise();\n }\n\n async sendInvite(teamId: number, user: User): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`, {user})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async acceptInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/accept/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async declineInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/decline/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async resendInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/resend/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async getInvitesExternal(teamId: number): Promise<TeamInviteExternal[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`)\n .pipe(map(data => data.map(item => new TeamInviteExternal(item))))\n .toPromise();\n }\n\n async sendInviteExternal(teamId: number, invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`, invite.json())\n .pipe(map(data => new TeamInviteExternal(data)))\n .toPromise();\n }\n\n async deleteInviteExternal(invite: TeamInviteExternal): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/`)\n .toPromise();\n }\n\n async resendInviteExternal(invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/resend/`, {})\n .pipe(map(data => new TeamInviteExternal(data)))\n .toPromise();\n }\n\n async getPolls(teamId: number, archive: boolean = false): Promise<Poll[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => data.map(item => new Poll(item))))\n .toPromise();\n }\n\n async createPoll(teamId: number, poll: Poll): Promise<Poll> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/`, poll.json())\n .pipe(map(data => new Poll(data)))\n .toPromise();\n }\n\n async getUsersStatistic(teamId: number): Promise<BasketballStatistic[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/statistics/`)\n .pipe(map(data => data.map(item => new BasketballStatistic(item))))\n .toPromise();\n }\n\n async getVolleyballStatistic(teamId: number): Promise<VolleyballStatistic[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/volleyball_statistics/`)\n .pipe(map(data => data.map(item => new VolleyballStatistic(item))))\n .toPromise();\n }\n\n async joinTeam(teamId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/join/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async leaveTeam(teamId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/leave/`, {})\n .toPromise();\n }\n\n async getGames(teamId: number, archive = false): Promise<Game[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => data.map(item => new Game(item))))\n .toPromise();\n }\n\n async createGame(teamId: number, game: Game): Promise<Game> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/`, game.json())\n .pipe(map(data => new Game(data)))\n .toPromise();\n }\n\n async getTeamEvents(teamId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`)\n .pipe(map(data => data.map(item => new TeamEvent(item))))\n .toPromise();\n }\n\n async createTeamEvent(teamId: number, teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`, teamEvent.json())\n .pipe(map(data => new TeamEvent(data)))\n .toPromise();\n }\n\n async getTournaments(teamId: number): Promise<Tournament[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/`)\n .pipe(map(data => data.map(item => new Tournament(item))))\n .toPromise();\n }\n\n async getTournamentTeams(teamId: number): Promise<TournamentTeam[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_teams/`)\n .pipe(map(data => data.map(item => new TournamentTeam(item))))\n .toPromise();\n }\n\n async getTournamentInvites(teamId: number): Promise<TournamentInvite[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_invites/`)\n .pipe(map(data => data.map(item => new TournamentInvite(item))))\n .toPromise();\n }\n\n async getTournamentGames(teamId: number, tournamentId: number, page: number, size?: number): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n return this.httpClient\n .get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/${tournamentId}/games/`,\n {params, observe: 'response'}\n )\n .pipe(map((response: HttpResponse<any>) => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new Game(item))\n };\n }))\n .toPromise();\n }\n\n async acceptTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/accept/`, {})\n .pipe(map(data => new TournamentInvite(data)))\n .toPromise();\n }\n\n async declineTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/decline/`, {})\n .pipe(map(data => new TournamentInvite(data)))\n .toPromise();\n }\n\n async registerLazyUser(teamId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/lazy_user/`, {user: userData.json()})\n .pipe(map(data => new TeamUser(data)))\n .toPromise();\n }\n\n async getLazyUser(teamUserId: number): Promise<TeamUser> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .pipe(map(data => new TeamUser(data)))\n .toPromise();\n }\n\n async updateLazyUser(teamUserId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`, {user: userData.json()})\n .pipe(map(data => new TeamUser(data)))\n .toPromise();\n }\n\n async deleteLazyUser(teamUserId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .toPromise();\n }\n\n async resendLazyUserEmail(teamUserId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/resend_email/`, {})\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { TeamEvent } from '../models/team-event';\nimport { TeamEventInvite } from '../models/team-event-invite';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamEventApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getTeamEvent(teamEventId: number): Promise<TeamEvent> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .pipe(map(data => new TeamEvent(data)))\n .toPromise();\n }\n\n async updateTeamEvent(teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEvent.id}/`, teamEvent.json())\n .pipe(map(data => new TeamEvent(data)))\n .toPromise();\n }\n\n async deleteTeamEvent(teamEventId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .toPromise();\n }\n\n async getTeamEventInvites(teamEventId: number): Promise<TeamEventInvite[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`)\n .pipe(map(data => data.map(item => new TeamEventInvite(item))))\n .toPromise();\n }\n\n async createTeamEventInvite(teamEventId: number, teamUserId: number): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`, {team_user_id: teamUserId})\n .pipe(map(data => new TeamEventInvite(data)))\n .toPromise();\n }\n\n async acceptTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/accept/`, {})\n .pipe(map(data => new TeamEventInvite(data)))\n .toPromise();\n }\n\n async declineTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/decline/`, {})\n .pipe(map(data => new TeamEventInvite(data)))\n .toPromise();\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { Team } from './team';\n\n@Model()\nexport class TournamentJoinData extends BaseModel {\n validUsersCount: number;\n invalidUsersCount: number;\n hasAccess: boolean;\n inviteSent: boolean;\n alreadyInTournament: boolean;\n\n get usersCount(): number {\n return this.validUsersCount + this.invalidUsersCount;\n }\n\n get valid() {\n return this.hasAccess && !this.inviteSent && !this.alreadyInTournament;\n }\n}\n\n@Model({\n relation: {\n team: nestedModel(Team),\n joinData: nestedModel(TournamentJoinData),\n }\n})\nexport class TournamentJoinTeam extends BaseModel {\n team: Team;\n joinData: TournamentJoinData;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentJoinTeam } from '../models/tournament-join-team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser } from '../models/team-user';\nimport { TournamentTeamUserInvite } from '../models/tournament-team-user-invite';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentJoin1x1Data } from '../models/tournament-join1x1-data';\n\nexport enum TournamentJoin1x1Status {\n not_sent = 1,\n invite_sent,\n in_tournament,\n not_valid,\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentJoinApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getTeamsForJoin(tournamentId: number): Promise<TournamentJoinTeam[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams_for_join/`\n ).pipe(\n map(response => response.map(item => new TournamentJoinTeam(item)))\n ).toPromise();\n }\n\n async getTeamUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`)\n .pipe(\n map(data => data.map(item => new TeamUser(item)))\n ).toPromise();\n }\n\n async joinTournament(tournamentId: number, teamId: number, invites: TournamentTeamUserInvite[]): Promise<TournamentInvite> {\n const body = {\n team: {id: teamId},\n user_invites: invites.map(item => item.json())\n };\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join/`, body)\n .pipe(map(data => new TournamentInvite(data)))\n .toPromise();\n }\n\n async join1x1Tournament(tournamentId: number, additionalData: TournamentJoin1x1Data): Promise<TournamentInvite> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join_1x1/`,\n additionalData.json()\n )\n .pipe(map(data => new TournamentInvite(data)))\n .toPromise();\n }\n\n async join1x1TournamentStatus(tournamentId: number): Promise<TournamentJoin1x1Status> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join_1x1_status/`)\n .pipe(map((data: { status: string }) => TournamentJoin1x1Status[data.status]))\n .toPromise();\n }\n}\n","import { BaseModel, Model, listField, nestedModel } from './util';\nimport { TournamentGroup } from './tournament-group';\nimport { TournamentDivision } from './tournament-division';\nimport { TournamentTeam } from './tournament-team';\nimport { Game } from './game';\n\n@Model({\n relation: {\n group: nestedModel(TournamentGroup),\n division: nestedModel(TournamentDivision),\n tournamentTeam: nestedModel(TournamentTeam),\n games: listField(nestedModel(Game, ['id', 'teamId', 'competitorTeamId', 'teamScore', 'competitorTeamScore'])),\n }\n})\nexport class TournamentRoundTeam extends BaseModel {\n private _games: Game[];\n\n id: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n division: TournamentDivision;\n points: number;\n handicap: number;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n gamesWonPercent: number;\n lastGamesWon: number;\n lastGamesCount: number;\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n gamesByScoreCount: {[key: string]: number};\n gamesMapping: {[key: number]: Game[]} = {};\n\n set games(value: Game[]) {\n this._games = value;\n this.gamesMapping = value.reduce((acc, game) => {\n const competitorTeamId = game.teamId === this.tournamentTeam.team.id ? game.competitorTeamId : game.teamId;\n return {\n ...acc,\n [competitorTeamId]: [\n ...(acc[competitorTeamId] || []),\n game,\n ]\n };\n }, {});\n }\n\n get games(): Game[] {\n return this._games;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentRound } from '../models/tournament-round';\nimport { map } from 'rxjs/operators';\nimport { TournamentRoundTeam } from '../models/tournament-round-team';\nimport { Playoff } from '../models/playoff';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { applyGamesFilters, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { Game } from '../models/game';\n\nexport interface TournamentRoundTeamsFilters {\n groupId?: number;\n divisionId?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentRoundApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentRoundId: number): Promise<TournamentRound> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/`).pipe(\n map(data => new TournamentRound(data)),\n ).toPromise();\n }\n\n async getTeams(tournamentRoundId: number, filters?: TournamentRoundTeamsFilters): Promise<TournamentRoundTeam[]> {\n let params = new HttpParams();\n if (filters) {\n if (filters.divisionId) {\n params = params.set('division_id', filters.divisionId);\n }\n if (filters.groupId) {\n params = params.set('group_id', filters.groupId);\n }\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/teams/`,\n {params}\n ).pipe(\n map(data => data.map(item => new TournamentRoundTeam(item))),\n ).toPromise();\n }\n\n async getPlayoffs(tournamentRoundId: number): Promise<Playoff[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/playoffs/`\n ).pipe(\n map(data => data.map(item => new Playoff(data))),\n ).toPromise();\n }\n\n async getGroups(tournamentRoundId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/groups/`\n ).pipe(\n map(data => data.map(item => new TournamentGroup(item))),\n ).toPromise();\n }\n\n async getGames(roundId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${roundId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Game(item))\n }))\n ).toPromise();\n }}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { Game, GameStatuses } from '../models/game';\nimport { Tournament, TournamentStatuses } from '../models/tournament';\nimport { applyGamesFilters, TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { applyGameMediaFilters, GameMediaFilters } from './media-api';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { Playoff } from '../models/playoff';\nimport { TournamentListFilters } from './league-api';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentSeasonApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<TournamentSeason> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/${alias}/`).pipe(\n map(result => new TournamentSeason(result))\n ).toPromise();\n }\n\n async getTournaments(seasonId: number): Promise<Tournament[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/tournaments/`\n ).pipe(\n map(result => result.map(item => new Tournament(item)))\n ).toPromise();\n }\n\n async getTournamentsPaginated(\n seasonId: number,\n filters?: TournamentListFilters,\n page = 1,\n size = 100\n ): Promise<PaginatedResponse<Tournament[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.statuses) {\n params = params.set('statuses', filters.statuses.map(s => TournamentStatuses[s]).join(','));\n }\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/tournaments/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Tournament(item))\n })),\n ).toPromise();\n }\n\n async getGames(seasonId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Game(item)),\n }))\n ).toPromise();\n }\n\n async getEvents(\n seasonId: number, page: number, size: number,\n filters?: TournamentEventsListFilter\n ): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/events/`,\n {params, observe: 'response'}\n )\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new TournamentEvent(item)),\n })))\n .toPromise();\n }\n\n async getGameMedia(seasonId: number, page: number, size: number, filters: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/game_media/`,\n {observe: 'response', params})\n .pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new Game(item)),\n };\n })\n ).toPromise();\n }\n\n async getTeams(seasonId: number, short?: boolean): Promise<TournamentTeam[]> {\n let params = new HttpParams();\n if (short) {\n params = params.set('short', '1');\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/teams/`,\n {params}\n ).pipe(\n map(result => result.map(item => new TournamentTeam(item)))\n ).toPromise();\n }\n\n async getPlayoffs(seasonId: number): Promise<Playoff[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/playoffs/`\n ).pipe(\n map(result => result.map(item => new Playoff(item)))\n ).toPromise();\n }\n\n async getGamesStages(seasonId: number): Promise<GameTimelineStages> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games_stages/`)\n .pipe(map(data => new GameTimelineStages(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { map } from 'rxjs/operators';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { Playoff } from '../models/playoff';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { ConfigService } from '../services/config.service';\nimport { TeamAchievement } from '../models/team-achievement';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentStageApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(id: number): Promise<TournamentStage> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${id}/`)\n .pipe(map(result => new TournamentStage(result)))\n .toPromise();\n }\n\n async getGroups(stageId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/groups/`)\n .pipe(map(result => result.map(item => new TournamentGroup(item))))\n .toPromise();\n }\n\n async getTeamsAchievements(stageId: number): Promise<TeamAchievement[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/achievements/`)\n .pipe(map(result => result.map(item => new TeamAchievement(item))))\n .toPromise();\n }\n\n async getPlayoffs(stageId: number): Promise<Playoff[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/playoff/`)\n .pipe(map(result => result.map(item => new Playoff(item))))\n .toPromise();\n }\n\n async getTeams(stageId: number, groupId?: number, short?: boolean): Promise<TournamentStageTeam[]> {\n let params = new HttpParams();\n if (groupId) {\n params = params.set('group_id', groupId.toString());\n }\n if (short) {\n params = params.set('short', '1');\n }\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/teams/`, {params})\n .pipe(map(result => result.map(item => new TournamentStageTeam(item))))\n .toPromise();\n }\n}\n","import { Model, BaseModel } from './util';\n\n@Model()\nexport class UserAccess extends BaseModel {\n edit: boolean;\n personalData: boolean;\n teams: boolean;\n statistic: boolean;\n games: boolean;\n}\n","import { Model, BaseModel, enumField } from './util';\n\nexport enum UserPermissionTypes {\n denied = 1,\n for_all,\n for_users,\n for_team\n}\n\n@Model({\n relation: {\n personalData: enumField(UserPermissionTypes),\n games: enumField(UserPermissionTypes),\n teams: enumField(UserPermissionTypes),\n statistic: enumField(UserPermissionTypes)\n }\n})\nexport class UserPermission extends BaseModel {\n id: number;\n personalData: UserPermissionTypes;\n games: UserPermissionTypes;\n teams: UserPermissionTypes;\n statistic: UserPermissionTypes;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { User } from '../models/user';\nimport { File } from '../models/file';\nimport { map } from 'rxjs/operators';\nimport { UserProfile } from '../models/user-profile';\nimport { BasketballProfile } from '../models/basketball-profile';\nimport { VolleyballProfile } from '../models/volleyball-profile';\nimport { Team } from '../models/team';\nimport { TeamInvite } from '../models/team-invite';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { GameInvite } from '../models/game-invite';\nimport { TeamEvent } from '../models/team-event';\nimport { UserAccess } from '../models/user-access';\nimport { UserPermission } from '../models/user-permission';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class UserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCurrentUser(): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/`)\n .pipe(map(data => new User(data)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`)\n .pipe(map(data => new User(data)))\n .toPromise();\n }\n\n async getAccess(userId?: number): Promise<UserAccess> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/access/`)\n .pipe(map(data => new UserAccess(data)))\n .toPromise();\n }\n\n async updateUser(userId: number, data: User): Promise<User> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`, data.json())\n .pipe(map(result => new User(result)))\n .toPromise();\n }\n\n async updateUserPhoto(file: any, filename?: string): Promise<File> {\n const formData = new FormData();\n formData.append('file', file, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/photo/`, formData)\n .pipe(map(data => new File(data)))\n .toPromise();\n }\n\n async changePassword(userId: number, oldPassword: string, password: string, passwordConfirm: string): Promise<any> {\n const payload = {\n old_password: oldPassword,\n password,\n password_confirm: passwordConfirm\n };\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_password/`, payload)\n .toPromise();\n }\n\n async changeEmail(userId: number, email: string, password: string): Promise<any> {\n const payload = {email, password};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email/`, payload)\n .toPromise();\n }\n\n async changeEmailConfirm(userId, email: string, password: string, token: number): Promise<any> {\n const payload = {email, password, token};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email_confirm/`, payload)\n .toPromise();\n }\n\n async getUserProfile(userId: number): Promise<UserProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/profile/`)\n .pipe(map(data => new UserProfile(data)))\n .toPromise();\n }\n\n async getBasketballProfile(userId: number): Promise<BasketballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/basketball_profile/`)\n .pipe(map(data => new BasketballProfile(data)))\n .toPromise();\n }\n\n async getVolleyballProfile(userId: number): Promise<VolleyballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_profile/`)\n .pipe(map(data => new VolleyballProfile(data)))\n .toPromise();\n }\n\n async updateUserProfile(userProfile: UserProfile): Promise<UserProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userProfile.userId}/profile/`, userProfile.json())\n .pipe(map(data => new UserProfile(data)))\n .toPromise();\n }\n\n async updateUserBasketballProfile(basketballProfile: BasketballProfile): Promise<BasketballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${basketballProfile.userId}/basketball_profile/`, basketballProfile.json())\n .pipe(map(data => new BasketballProfile(data)))\n .toPromise();\n }\n\n async updateUserVolleyballProfile(volleyballProfile: VolleyballProfile): Promise<VolleyballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${volleyballProfile.userId}/volleyball_profile/`, volleyballProfile.json())\n .pipe(map(data => new VolleyballProfile(data)))\n .toPromise();\n }\n\n async getUserPermissions(userId?: number): Promise<UserPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/permission/`)\n .pipe(map(data => new UserPermission(data)))\n .toPromise();\n }\n\n async updateUserPermission(data: UserPermission): Promise<UserPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/current/permission/`, data.json())\n .pipe(map(result => new UserPermission(result)))\n .toPromise();\n }\n\n async getTeams(userId: number): Promise<Team[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/teams/`)\n .pipe(map(data => data.map(item => new Team(item))))\n .toPromise();\n }\n\n async getInvites(): Promise<TeamInvite[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/`)\n .pipe(map(data => data.map(item => new TeamInvite(item))))\n .toPromise();\n }\n\n async acceptInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/accept/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async declineInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/decline/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async getStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/statistics/`)\n .pipe(map(data => new BasketballStatistic(data)))\n .toPromise();\n }\n\n async getStreetballStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/streetball_statistics/`)\n .pipe(map(data => new BasketballStatistic(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(userId: number): Promise<VolleyballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_statistics/`)\n .pipe(map(data => new VolleyballStatistic(data)))\n .toPromise();\n }\n\n async getGames(userId: number): Promise<Game[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/games/`)\n .pipe(map(data => data.map(item => new Game(item))))\n .toPromise();\n }\n\n async getGameInvites(): Promise<GameInvite[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/`)\n .pipe(map(data => data.map(item => new GameInvite(item))))\n .toPromise();\n }\n\n async acceptGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/accept/`, {})\n .pipe(map(data => new GameInvite(data)))\n .toPromise();\n }\n\n async declineGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/decline/`, {})\n .pipe(map(data => new GameInvite(data)))\n .toPromise();\n }\n\n async searchUsers(query: string): Promise<User[]> {\n const params = (new HttpParams()).set('search', query);\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/`, {params})\n .pipe(map(data => data.map(item => new User(item))))\n .toPromise();\n }\n\n async setWizardShowed(wizard: string): Promise<User> {\n return this.httpClient\n .put(`${this.configService.get('apiUrl')}/api/v1/user/current/wizards/`, {wizard})\n .pipe(map(data => new User(data)))\n .toPromise();\n }\n\n async getTeamEvents(userId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/current/team_events/`)\n .pipe(map(data => data.map(item => new TeamEvent(item))))\n .toPromise();\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { VolleyballStatistic } from './volleyball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(VolleyballStatistic),\n competitorTeam: nestedModel(VolleyballStatistic),\n }\n})\nexport class VolleyballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: VolleyballStatistic;\n competitorTeam: VolleyballStatistic;\n}\n","import { Model } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model()\nexport class VolleyballGameStatistic extends GameStatisticBase {\n gameUserId: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n goodServes: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n points: number;\n faults: number;\n yellowCards: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get attacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots)) / 10;\n }\n\n get blocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds)) / 10;\n }\n\n get totalReceives(): number {\n return Math.floor(10 * (this.receives + this.excellentReceives + this.receiveFaults)) / 10;\n }\n\n get totalServeReceives(): number {\n return Math.floor(10 * (this.serveReceives + this.excellentServeReceives + this.serveReceiveFaults)) / 10;\n }\n\n get totalServes(): number {\n return Math.floor(10 * (this.serveAces + this.serveHits + this.serveFaults + this.goodServes)) / 10;\n }\n\n get totalAttacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots + this.attackFaults)) / 10;\n }\n\n get totalBlocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds + this.blockFaults)) / 10;\n }\n}\n","import { Model, enumField, dateTimeField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum VolleyballGameLogType {\n enter_game = 1,\n exit_game,\n remove_game,\n serve_hit,\n serve_fault,\n serve_ace,\n stuff_block,\n block_fault,\n block_rebound,\n attack_spike,\n attack_fault,\n attack_shot,\n receive,\n receive_fault,\n excellent_receive,\n point,\n fault,\n serve_receive,\n serve_receive_fault,\n excellent_serve_receive,\n timeout,\n yellow_card,\n tie_ball,\n good_serve\n}\n\nexport const SCORE_LOG_TYPES = [\n VolleyballGameLogType.serve_ace, VolleyballGameLogType.stuff_block,\n VolleyballGameLogType.attack_spike, VolleyballGameLogType.point\n];\nexport const FAULT_LOG_TYPES = [\n VolleyballGameLogType.serve_fault, VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.block_fault, VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.fault, VolleyballGameLogType.serve_receive_fault\n];\n\n@Model({\n relation: {\n logType: enumField(VolleyballGameLogType),\n datetime: dateTimeField\n }\n})\nexport class VolleyballGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n active = true;\n gameId: number;\n gameUserId: number;\n logType: VolleyballGameLogType;\n set: number;\n rally: number;\n position: number;\n teamId: number;\n datetime: Date;\n isHighlight: boolean;\n gameUser: GameUser;\n group: string;\n\n compare(model: VolleyballGameLog): number {\n if (this.rally === model.rally && this.set === model.set) {\n if (this.datetime && model.datetime) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n } else {\n return this.id < model.id ? 1 : -1;\n }\n }\n if (this.set === model.set) {\n return this.rally < model.rally ? 1 : -1;\n }\n return this.set < model.set ? 1 : -1;\n }\n\n isScoreType() {\n return SCORE_LOG_TYPES.includes(this.logType);\n }\n\n isFaultType() {\n return FAULT_LOG_TYPES.includes(this.logType);\n }\n\n isServe() {\n return [\n VolleyballGameLogType.serve_hit,\n VolleyballGameLogType.serve_ace,\n VolleyballGameLogType.serve_fault,\n VolleyballGameLogType.good_serve,\n ].includes(this.logType);\n }\n\n isAttack() {\n return [\n VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.attack_spike,\n VolleyballGameLogType.attack_shot\n ].includes(this.logType);\n }\n\n isReceive() {\n return [\n VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.receive,\n VolleyballGameLogType.excellent_receive\n ].includes(this.logType);\n }\n\n isServeReceive() {\n return [\n VolleyballGameLogType.serve_receive_fault,\n VolleyballGameLogType.serve_receive,\n VolleyballGameLogType.excellent_serve_receive\n ].includes(this.logType);\n }\n\n isBlock() {\n return [\n VolleyballGameLogType.block_fault,\n VolleyballGameLogType.block_rebound,\n VolleyballGameLogType.stuff_block\n ].includes(this.logType);\n }\n\n isEnterExit() {\n return [\n VolleyballGameLogType.enter_game,\n VolleyballGameLogType.exit_game,\n VolleyballGameLogType.timeout\n ].includes(this.logType);\n }\n\n isComboType() {\n return ![\n VolleyballGameLogType.receive,\n VolleyballGameLogType.serve_receive\n ].includes(this.logType);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Game } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { VolleyballGameTeamStatistic } from '../models/volleyball-game-team-statistic';\nimport { VolleyballGameStatistic } from '../models/volleyball-game-statistic';\nimport { VolleyballGameLog } from '../models/volleyball-game-log';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class VolleyballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<VolleyballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/team_statistic/`).pipe(\n map(result => new VolleyballGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<VolleyballGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new VolleyballGameStatistic(item)))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<VolleyballGameLog[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/logs/`\n ).pipe(\n map(result => result.map(item => new VolleyballGameLog(item)))\n ).toPromise();\n }\n\n async downloadProtocolLight(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol_light/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadProtocolAdvanced(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol_advanced/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { enumField, Model, dateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum WaterpoloGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n free_kick_on_goal,\n minor_penalty ,\n major_penalty ,\n match_penalty ,\n foul,\n yellow_card,\n red_card,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n after_game_shootout_attempt,\n after_game_shootout_goal,\n after_game_shootout_save,\n shootout_save,\n loss,\n steal,\n free_kick_miss,\n free_kick_goal,\n free_kick_pass,\n free_kick_self,\n corner_on_goal,\n corner_miss,\n corner_goal,\n corner_pass,\n corner_self,\n personal_foul,\n counterattack_goal,\n counterattack_on_goal,\n counterattack_miss,\n counterattack_save ,\n maneuver_goal,\n maneuver_on_goal,\n maneuver_miss,\n maneuver_save,\n center_forward_goal,\n center_forward_on_goal,\n center_forward_miss,\n center_forward_save,\n free_kick_save,\n corner_save,\n tackle,\n penalty_foul,\n attack_foul,\n turnover,\n counter_attack_shot_blocked,\n maneuver_shot_blocked,\n center_forward_shot_blocked,\n free_kick_shot_blocked,\n corner_shot_blocked,\n complete_penalty_time\n}\n\nexport enum WaterpoloAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(WaterpoloGameLogTypes),\n advantage: enumField(WaterpoloAdvantageTypes),\n }\n})\nexport class WaterpoloGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: WaterpoloGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: WaterpoloAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n _penalizedGameUserId: number;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n mutualPenalty: boolean;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: WaterpoloGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [WaterpoloGameLogTypes.goal, WaterpoloGameLogTypes.shootout_goal, WaterpoloGameLogTypes.after_game_shootout_goal,\n WaterpoloGameLogTypes.free_kick_goal, WaterpoloGameLogTypes.corner_goal,\n WaterpoloGameLogTypes.counterattack_goal, WaterpoloGameLogTypes.maneuver_goal, WaterpoloGameLogTypes.center_forward_goal].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n WaterpoloGameLogTypes.minor_penalty, WaterpoloGameLogTypes.major_penalty,\n WaterpoloGameLogTypes.match_penalty, WaterpoloGameLogTypes.personal_foul\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType(): boolean {\n return [\n WaterpoloGameLogTypes.minor_penalty, WaterpoloGameLogTypes.major_penalty, WaterpoloGameLogTypes.match_penalty,\n WaterpoloGameLogTypes.personal_foul, WaterpoloGameLogTypes.foul, WaterpoloGameLogTypes.attack_foul, WaterpoloGameLogTypes.penalty_foul\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: WaterpoloGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n}\n","import { Model, dateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model({\n relation: {\n updatedAt: dateTimeField,\n }\n})\nexport class WaterpoloGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppTotalShotsOnGoal: number;\n evTotalShotsOnGoal: number;\n shTotalShotsOnGoal: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppCounterAttackGoals: number;\n ppCounterAttackOnGoals: number;\n ppCounterAttackMisses: number;\n ppCounterAttackShotsBlocked: number;\n evCounterAttackGoals: number;\n evCounterAttackOnGoals: number;\n evCounterAttackMisses: number;\n evCounterAttackShotsBlocked: number;\n shCounterAttackGoals: number;\n shCounterAttackOnGoals: number;\n shCounterAttackMisses: number;\n shCounterAttackShotsBlocked: number;\n ppManeuverGoals: number;\n ppManeuverOnGoals: number;\n ppManeuverMisses: number;\n ppManeuverShotsBlocked: number;\n evManeuverGoals: number;\n evManeuverOnGoals: number;\n evManeuverMisses: number;\n evManeuverShotsBlocked: number;\n shManeuverGoals: number;\n shManeuverOnGoals: number;\n shManeuverMisses: number;\n shManeuverShotsBlocked: number;\n ppCenterForwardGoals: number;\n ppCenterForwardOnGoals: number;\n ppCenterForwardMisses: number;\n ppCenterForwardShotsBlocked: number;\n evCenterForwardGoals: number;\n evCenterForwardOnGoals: number;\n evCenterForwardMisses: number;\n evCenterForwardShotsBlocked: number;\n shCenterForwardGoals: number;\n shCenterForwardOnGoals: number;\n shCenterForwardMisses: number;\n shCenterForwardShotsBlocked: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n shSaves: number;\n evSaves: number;\n ppCounterAttackSaves: number;\n shCounterAttackSaves: number;\n evCounterAttackSaves: number;\n ppManeuverSaves: number;\n shManeuverSaves: number;\n evManeuverSaves: number;\n ppCenterForwardSaves: number;\n shCenterForwardSaves: number;\n evCenterForwardSaves: number;\n ppFreeKickSaves: number;\n shFreeKickSaves: number;\n evFreeKickSaves: number;\n ppCornerSaves: number;\n shCornerSaves: number;\n evCornerSaves: number;\n ppTotalGameSaves: number;\n shTotalGameSaves: number;\n evTotalGameSaves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n ppCounterAttackGoalsAgainst: number;\n shCounterAttackGoalsAgainst: number;\n evCounterAttackGoalsAgainst: number;\n counterAttackGoalsAgainst: number;\n ppManeuverGoalsAgainst: number;\n shManeuverGoalsAgainst: number;\n evManeuverGoalsAgainst: number;\n maneuverGoalsAgainst: number;\n ppCenterForwardGoalsAgainst: number;\n shCenterForwardGoalsAgainst: number;\n evCenterForwardGoalsAgainst: number;\n centerForwardGoalsAgainst: number;\n ppFreeKickGoalsAgainst: number;\n shFreeKickGoalsAgainst: number;\n evFreeKickGoalsAgainst: number;\n freeKickGoalsAgainst: number;\n ppCornerGoalsAgainst: number;\n shCornerGoalsAgainst: number;\n evCornerGoalsAgainst: number;\n cornerGoalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n fouls: number;\n minorPenalties: number;\n majorPenalties: number;\n matchPenalties: number;\n penaltyFouls: number;\n turnovers: number;\n attackFouls: number;\n personalFouls: number;\n drawnFouls: number;\n drawnTurnovers: number;\n yellowCards: number;\n redCards: number;\n losses: number;\n steals: number;\n ppFreeKickGoals: number;\n ppFreeKickOnGoals: number;\n ppFreeKickMisses: number;\n ppFreeKickShotsBlocked: number;\n shFreeKickGoals: number;\n shFreeKickOnGoals: number;\n shFreeKickMisses: number;\n shFreeKickShotsBlocked: number;\n evFreeKickGoals: number;\n evFreeKickOnGoals: number;\n evFreeKickMisses: number;\n evFreeKickShotsBlocked: number;\n freeKickPasses: number;\n freeKickSelfs: number;\n ppCornerGoals: number;\n ppCornerOnGoals: number;\n ppCornerMisses: number;\n ppCornerShotsBlocked: number;\n shCornerGoals: number;\n shCornerOnGoals: number;\n shCornerMisses: number;\n shCornerShotsBlocked: number;\n evCornerGoals: number;\n evCornerOnGoals: number;\n evCornerMisses: number;\n evCornerShotsBlocked: number;\n cornerPasses: number;\n cornerSelfs: number;\n tackles: number;\n playerEfficiency: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get penaltyTime(): string {\n if (!this.penaltyMinutes) {\n return '00:00';\n }\n const minutes = Math.floor(this.penaltyMinutes / 60);\n const seconds = Math.floor(this.penaltyMinutes - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0);\n }\n\n get totalCounterAttackGoals(): number {\n return (this.ppCounterAttackGoals || 0) + (this.evCounterAttackGoals || 0) + (this.shCounterAttackGoals || 0);\n }\n\n get ppCounterAttackShots(): number {\n return (this.ppCounterAttackOnGoals || 0) + (this.ppCounterAttackMisses || 0) + (this.ppCounterAttackShotsBlocked || 0);\n }\n\n get shCounterAttackShots(): number {\n return (this.shCounterAttackOnGoals || 0) + (this.shCounterAttackMisses || 0) + (this.shCounterAttackShotsBlocked || 0);\n }\n\n get evCounterAttackShots(): number {\n return (this.evCounterAttackOnGoals || 0) + (this.evCounterAttackMisses || 0) + (this.evCounterAttackShotsBlocked || 0);\n }\n\n get counterAttackShotMisses(): number {\n return (this.ppCounterAttackMisses || 0) + (this.shCounterAttackMisses || 0) + (this.evCounterAttackMisses || 0);\n }\n\n get counterAttackShotOnGoals(): number {\n return (this.ppCounterAttackOnGoals || 0) + (this.shCounterAttackOnGoals || 0) + (this.evCounterAttackOnGoals || 0);\n }\n\n get counterAttackShotsBlocked(): number {\n return (this.ppCounterAttackShotsBlocked || 0) + (this.shCounterAttackShotsBlocked || 0) + (this.evCounterAttackShotsBlocked || 0);\n }\n\n get counterAttackShots(): number {\n return this.counterAttackShotMisses + this.counterAttackShotOnGoals + this.counterAttackShotsBlocked;\n }\n\n get counterAttackGoalsPercent(): number {\n if (!this.totalCounterAttackGoals || !this.counterAttackShots) {\n return 0;\n }\n return Math.round(1000 * this.totalCounterAttackGoals / this.counterAttackShots) / 10;\n }\n\n get totalManeuverGoals(): number {\n return (this.ppManeuverGoals || 0) + (this.shManeuverGoals || 0) + (this.evManeuverGoals || 0);\n }\n\n get ppManeuverShots(): number {\n return (this.ppManeuverOnGoals || 0) + (this.ppManeuverMisses || 0) + (this.ppManeuverShotsBlocked || 0);\n }\n\n get shManeuverShots(): number {\n return (this.shManeuverOnGoals || 0) + (this.shManeuverMisses || 0) + (this.shManeuverShotsBlocked || 0);\n }\n\n get evManeuverShots(): number {\n return (this.evManeuverOnGoals || 0) + (this.evManeuverMisses || 0) + (this.evManeuverShotsBlocked || 0);\n }\n\n get maneuverShotMisses(): number {\n return (this.ppManeuverMisses || 0) + (this.shManeuverMisses || 0) + (this.evManeuverMisses || 0);\n }\n\n get maneuverShotOnGoals(): number {\n return (this.ppManeuverOnGoals || 0) + (this.shManeuverOnGoals || 0) + (this.evManeuverOnGoals || 0);\n }\n\n get maneuverShotsBlocked(): number {\n return (this.ppManeuverShotsBlocked || 0) + (this.shManeuverShotsBlocked || 0) + (this.evManeuverShotsBlocked || 0);\n }\n\n get maneuverShots(): number {\n return this.maneuverShotMisses + this.maneuverShotOnGoals + this.maneuverShotsBlocked;\n }\n\n get maneuverGoalsPercent(): number {\n if (!this.totalManeuverGoals || !this.maneuverShots) {\n return 0;\n }\n return Math.round(1000 * this.totalManeuverGoals / this.maneuverShots) / 10;\n }\n\n get totalCenterForwardGoals(): number {\n return (this.ppCenterForwardGoals || 0) + (this.shCenterForwardGoals || 0) + (this.evCenterForwardGoals || 0);\n }\n\n get ppCenterForwardShots(): number {\n return (this.ppCenterForwardOnGoals || 0) + (this.ppCenterForwardMisses || 0) + (this.ppCenterForwardShotsBlocked || 0);\n }\n\n get shCenterForwardShots(): number {\n return (this.shCenterForwardOnGoals || 0) + (this.shCenterForwardMisses || 0) + (this.shCenterForwardShotsBlocked || 0);\n }\n\n get evCenterForwardShots(): number {\n return (this.evCenterForwardOnGoals || 0) + (this.evCenterForwardMisses || 0) + (this.evCenterForwardShotsBlocked || 0);\n }\n\n get centerForwardShotMisses(): number {\n return (this.ppCenterForwardMisses || 0) + (this.shCenterForwardMisses || 0) + (this.evCenterForwardMisses || 0);\n }\n\n get centerForwardShotOnGoals(): number {\n return (this.ppCenterForwardOnGoals || 0) + (this.shCenterForwardOnGoals || 0) + (this.evCenterForwardOnGoals || 0);\n }\n\n get centerForwardShotsBlocked(): number {\n return (this.ppCenterForwardShotsBlocked || 0) + (this.shCenterForwardShotsBlocked || 0) + (this.evCenterForwardShotsBlocked || 0);\n }\n\n get centerForwardShots(): number {\n return this.centerForwardShotMisses + this.centerForwardShotOnGoals + this.centerForwardShotsBlocked;\n }\n\n get centerForwardGoalsPercent(): number {\n if (!this.totalCenterForwardGoals || !this.centerForwardShots) {\n return 0;\n }\n return Math.round(1000 * this.totalCenterForwardGoals / this.centerForwardShots) / 10;\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0) +\n (this.ppFreeKickMisses || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppFreeKickShotsBlocked || 0) +\n (this.ppCornerMisses || 0) + (this.ppCornerOnGoals || 0) + (this.ppCornerShotsBlocked || 0) +\n this.ppCounterAttackShots + this.ppManeuverShots + this.ppCenterForwardShots;\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0) +\n (this.evFreeKickMisses || 0) + (this.evFreeKickOnGoals || 0) + (this.evFreeKickShotsBlocked || 0) +\n (this.evCornerMisses || 0) + (this.evCornerOnGoals || 0) + (this.evCornerShotsBlocked || 0) +\n this.evCounterAttackShots + this.evManeuverShots + this.evCenterForwardShots;\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0) +\n (this.shFreeKickMisses || 0) + (this.shFreeKickOnGoals || 0) + (this.shFreeKickShotsBlocked || 0) +\n (this.shCornerMisses || 0) + (this.shCornerOnGoals || 0) + (this.shCornerShotsBlocked || 0) +\n this.shCounterAttackShots + this.shManeuverShots + this.shCenterForwardShots;\n }\n\n get totalShGoals(): number {\n return (this.shGoals || 0) + (this.shFreeKickGoals || 0) + (this.shCornerGoals || 0) +\n (this.shCounterAttackGoals || 0) + (this.shManeuverGoals || 0) + (this.shCenterForwardGoals || 0);\n }\n\n get totalEvGoals(): number {\n return (this.evGoals || 0) + (this.evFreeKickGoals || 0) + (this.evCornerGoals || 0) +\n (this.evCounterAttackGoals || 0) + (this.evManeuverGoals || 0) + (this.evCenterForwardGoals || 0);\n }\n\n get totalPpGoals(): number {\n return (this.ppGoals || 0) + (this.ppFreeKickGoals || 0) + (this.ppCornerGoals || 0) +\n (this.ppCounterAttackGoals || 0) + (this.ppManeuverGoals || 0) + (this.ppCenterForwardGoals || 0);\n }\n\n get goals(): number {\n return this.totalShGoals + this.totalEvGoals + this.totalPpGoals;\n }\n\n get totalGoals(): number {\n return this.goals + (this.shootoutGoals || 0);\n }\n\n get shootoutShots(): number {\n return (this.shootoutGoals || 0) + (this.shootoutAttempts || 0);\n }\n\n get inGameShotMisses(): number {\n return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0) +\n this.counterAttackShotMisses + this.maneuverShotMisses + this.centerForwardShotMisses;\n }\n\n get shotMisses(): number {\n return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0) +\n (this.ppCornerMisses || 0) + (this.evCornerMisses || 0) + (this.shCornerMisses || 0) +\n this.inGameShotMisses;\n }\n\n get totalPpShotMisses(): number {\n return (this.ppShotMisses || 0) + (this.ppFreeKickMisses || 0) + (this.ppCornerMisses || 0) +\n (this.ppCounterAttackMisses || 0) + (this.ppManeuverMisses || 0) + (this.ppCenterForwardMisses || 0);\n }\n\n get shotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +\n (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0) +\n (this.ppCornerOnGoals || 0) + (this.evCornerOnGoals || 0) + (this.shCornerOnGoals || 0) +\n this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals;\n }\n\n get totalPpShotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppCornerOnGoals || 0) +\n (this.ppCounterAttackOnGoals || 0) + (this.ppManeuverOnGoals || 0) + (this.ppCenterForwardOnGoals || 0);\n }\n\n get inGameShotsOnGoals(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +\n this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals;\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots;\n }\n\n get totalShots(): number {\n return this.shots + this.shootoutShots;\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get freeKickShotMisses(): number {\n return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0);\n }\n\n get freeKickShotsBlocked(): number {\n return (this.ppFreeKickShotsBlocked || 0) + (this.evFreeKickShotsBlocked || 0) + (this.shFreeKickShotsBlocked || 0);\n }\n\n get freeKickOnGoals(): number {\n return (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0);\n }\n\n get totalFreeKickGoals(): number {\n return (this.ppFreeKickGoals || 0) + (this.shFreeKickGoals || 0) + (this.evFreeKickGoals || 0);\n }\n\n get totalFreeKicks(): number {\n return (this.freeKickSelfs || 0) + (this.freeKickPasses || 0) +\n this.freeKickShotMisses + this.freeKickOnGoals + this.totalFreeKickGoals + this.freeKickShotsBlocked;\n }\n\n get freeKickGoalsPercent(): number {\n if (!this.totalFreeKickGoals || !this.totalFreeKicks) {\n return 0;\n }\n return Math.round(1000 * this.totalFreeKickGoals / this.totalFreeKicks) / 10;\n }\n\n get totalCornerGoals(): number {\n return (this.ppCornerGoals || 0) + (this.shCornerGoals || 0) + (this.evCornerGoals || 0);\n }\n\n get cornerShotMisses(): number {\n return (this.ppCornerMisses || 0) + (this.shCornerMisses || 0) + (this.evCornerMisses || 0);\n }\n\n get cornerOnGoals(): number {\n return (this.ppCornerOnGoals || 0) + (this.shCornerOnGoals || 0) + (this.evCornerOnGoals || 0);\n }\n\n get cornerShotsBlocked(): number {\n return (this.ppCornerShotsBlocked || 0) + (this.shCornerShotsBlocked || 0) + (this.evCornerShotsBlocked || 0);\n }\n\n get totalCorners(): number {\n return (this.cornerSelfs || 0) + (this.cornerPasses || 0) + this.cornerShotsBlocked +\n this.cornerOnGoals + this.cornerShotMisses + this.totalCornerGoals;\n }\n\n get shotsBlocked(): number {\n return (this.ppShotsBlocked || 0) + (this.evShotsBlocked || 0) + (this.shShotsBlocked || 0) +\n this.counterAttackShotsBlocked + this.maneuverShotsBlocked + this.centerForwardShotsBlocked +\n this.freeKickShotsBlocked + this.cornerShotsBlocked;\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.personalFouls || 0);\n }\n\n get totalPenalties(): number {\n return (this.minorPenalties || 0) + (this.majorPenalties || 0) + (this.matchPenalties || 0);\n }\n\n get positionAttackGoals(): number {\n return (this.shGoals || 0) + (this.evGoals || 0) + (this.ppGoals || 0);\n }\n\n get positionAttackShotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get positionAttackShotsMiss(): number {\n return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get positionAttackShots(): number {\n return this.positionAttackShotsOnGoal + this.positionAttackShotsMiss;\n }\n\n get positionAttackGoalsPercent(): number {\n if (!this.positionAttackGoals || !this.positionAttackShots) {\n return 0;\n }\n return Math.round(1000 * this.positionAttackGoals / this.positionAttackShots) / 10;\n }\n\n get totalInGameGoals(): number {\n return this.totalCenterForwardGoals + this.totalManeuverGoals + this.totalCounterAttackGoals + this.positionAttackGoals;\n }\n\n get ppGoalsPercent(): number {\n if (!this.totalPpGoals || !this.ppShots) {\n return 0;\n }\n return Math.round(1000 * this.totalPpGoals / this.ppShots) / 10;\n }\n\n get evGoalsPercent(): number {\n if (!this.totalEvGoals || !this.evShots) {\n return 0;\n }\n return Math.round(1000 * this.totalEvGoals / this.evShots) / 10;\n }\n\n get shGoalsPercent(): number {\n if (!this.totalShGoals || !this.shShots) {\n return 0;\n }\n return Math.round(1000 * this.totalShGoals / this.shShots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.goals || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.goals / this.shots) / 10;\n }\n\n get totalGoalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get faceOffPercent(): number {\n if (!this.faceOffWins || !this.faceOffs) {\n return 0;\n }\n return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;\n }\n\n get shootoutGoalsPercent(): number {\n if (!this.shootoutGoals || !this.shootoutShots) {\n return 0;\n }\n return Math.round(1000 * this.shootoutGoals / this.shootoutShots) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n /*goalie stat */\n get positionAttackSaves(): number {\n return (this.ppSaves || 0) + (this.shSaves || 0) + (this.evSaves || 0);\n }\n\n get positionAttackShotsAgainst(): number {\n return this.positionAttackSaves + (this.goalsAgainst || 0);\n }\n\n get positionAttackSavesPercent(): number {\n if (!this.positionAttackSaves || !this.positionAttackShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.positionAttackSaves / this.positionAttackShotsAgainst) / 10;\n }\n\n get counterAttackSaves(): number {\n return (this.ppCounterAttackSaves || 0) + (this.shCounterAttackSaves || 0) + (this.evCounterAttackSaves || 0);\n }\n\n get counterAttackShotsAgainst(): number {\n return this.counterAttackSaves + (this.counterAttackGoalsAgainst || 0);\n }\n\n get counterAttackSavesPercent(): number {\n if (!this.counterAttackSaves || !this.counterAttackShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.counterAttackSaves / this.counterAttackShotsAgainst) / 10;\n }\n\n\n get centerForwardSaves(): number {\n return (this.ppCenterForwardSaves || 0) + (this.shCenterForwardSaves || 0) + (this.evCenterForwardSaves || 0);\n }\n\n get centerForwardShotsAgainst(): number {\n return this.centerForwardSaves + (this.centerForwardGoalsAgainst || 0);\n }\n\n get centerForwardSavesPercent(): number {\n if (!this.centerForwardSaves || !this.centerForwardShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.centerForwardSaves / this.centerForwardShotsAgainst) / 10;\n }\n\n get maneuverSaves(): number {\n return (this.ppManeuverSaves || 0) + (this.shManeuverSaves || 0) + (this.evManeuverSaves || 0);\n }\n\n get maneuverShotsAgainst(): number {\n return this.maneuverSaves + (this.maneuverGoalsAgainst || 0);\n }\n\n get maneuverSavesPercent(): number {\n if (!this.maneuverSaves || !this.maneuverShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.maneuverSaves / this.maneuverShotsAgainst) / 10;\n }\n\n get freeKickSaves(): number {\n return (this.ppFreeKickSaves || 0) + (this.shFreeKickSaves || 0) + (this.evFreeKickSaves || 0);\n }\n\n get freeKickShotsAgainst(): number {\n return this.freeKickSaves + (this.freeKickGoalsAgainst || 0);\n }\n\n get freeKickSavesPercent(): number {\n if (!this.freeKickSaves || !this.freeKickShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.freeKickSaves / this.freeKickShotsAgainst) / 10;\n }\n\n get cornerSaves(): number {\n return (this.ppCornerSaves || 0) + (this.shCornerSaves || 0) + (this.evCornerSaves || 0);\n }\n\n get cornerShotsAgainst(): number {\n return this.cornerSaves + (this.cornerGoalsAgainst || 0);\n }\n\n get cornerSavesPercent(): number {\n if (!this.cornerSaves || !this.cornerShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.cornerSaves / this.cornerShotsAgainst) / 10;\n }\n\n get inGameSaves(): number {\n return (this.shSaves || 0) + (this.evSaves || 0) + (this.ppSaves || 0) +\n this.counterAttackSaves + this.maneuverSaves + this.centerForwardSaves;\n }\n\n get saves(): number {\n return this.inGameSaves + this.freeKickSaves + this.cornerSaves;\n }\n\n get totalSaves(): number {\n return this.saves + (this.shootoutSaves || 0);\n }\n\n get inGameGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.counterAttackGoalsAgainst || 0) + (this.maneuverGoalsAgainst || 0) +\n (this.centerForwardGoalsAgainst || 0);\n }\n\n get shootoutShotsAgainst(): number {\n return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameGoalsAgainst(): number {\n return this.inGameGoalsAgainst + (this.freeKickGoalsAgainst || 0) + (this.cornerGoalsAgainst || 0);\n }\n\n get totalGoalsAgainst(): number {\n return this.gameGoalsAgainst + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameShotsAgainst(): number {\n return this.saves + this.gameGoalsAgainst;\n }\n\n get totalShotsAgainst(): number {\n return this.gameShotsAgainst + this.shootoutShotsAgainst;\n }\n\n get shootoutSavesPercent(): number {\n if (!this.shootoutSaves || !this.shootoutShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.shootoutSaves / this.shootoutShotsAgainst) / 10;\n }\n\n get savesPercent(): number {\n if (!this.saves || !this.gameShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.gameShotsAgainst) / 10;\n }\n\n get totalSavesPercent(): number {\n if (!this.totalSaves || !this.totalShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;\n }\n\n get totalShSaves(): number {\n return (this.shCounterAttackSaves || 0) + (this.shManeuverSaves || 0) + (this.shCenterForwardSaves || 0) +\n (this.shSaves || 0) + (this.shFreeKickSaves || 0) + (this.shCornerSaves || 0);\n }\n\n get totalShGoalsAgainst(): number {\n return (this.shGoalsAgainst || 0) + (this.shFreeKickGoalsAgainst || 0) + (this.shCornerGoalsAgainst || 0) +\n (this.shCounterAttackGoalsAgainst || 0) + (this.shManeuverGoalsAgainst || 0) + (this.shCenterForwardGoalsAgainst || 0);\n }\n\n get totalShShotsAgainst(): number {\n return this.totalShSaves + this.totalShGoalsAgainst;\n }\n\n get totalShSavesPercent(): number {\n if (!this.totalShSaves || !this.totalShShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalShSaves / this.totalShShotsAgainst) / 10;\n }\n\n get totalEvSaves(): number {\n return (this.evCounterAttackSaves || 0) + (this.evManeuverSaves || 0) + (this.evCenterForwardSaves || 0) +\n (this.evSaves || 0) + (this.evFreeKickSaves || 0) + (this.evCornerSaves || 0);\n }\n\n get totalEvGoalsAgainst(): number {\n return (this.evGoalsAgainst || 0) + (this.evFreeKickGoalsAgainst || 0) + (this.evCornerGoalsAgainst || 0) +\n (this.evCounterAttackGoalsAgainst || 0) + (this.evManeuverGoalsAgainst || 0) + (this.evCenterForwardGoalsAgainst || 0);\n }\n\n get totalEvShotsAgainst(): number {\n return this.totalEvSaves + this.totalEvGoalsAgainst;\n }\n\n get totalEvSavesPercent(): number {\n if (!this.totalEvSaves || !this.totalEvShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalEvSaves / this.totalEvShotsAgainst) / 10;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { WaterpoloStatistic } from './waterpolo-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(WaterpoloStatistic),\n competitorTeam: nestedModel(WaterpoloStatistic),\n }\n})\nexport class WaterpoloGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: WaterpoloStatistic;\n competitorTeam: WaterpoloStatistic;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { WaterpoloGameLog } from '../models/waterpolo-game-log';\nimport { WaterpoloGameStatistic } from '../models/waterpolo-game-statistic';\nimport { WaterpoloGameTeamStatistic } from '../models/waterpolo-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class WaterpoloGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<WaterpoloGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/team_statistic/`).pipe(\n map(result => new WaterpoloGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<WaterpoloGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new WaterpoloGameStatistic(item)))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<WaterpoloGameLog[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/logs/`\n ).pipe(\n map(result => result.map(item => new WaterpoloGameLog(item)))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TeamUser } from '../models/team-user';\n\n@Injectable({providedIn: 'root'})\nexport class PublicTeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(teamId: number): Promise<Team> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/`).pipe(\n map(result => new Team(result))\n ).toPromise();\n }\n\n getTournamentTeams(teamId: number, leagueId: number): Promise<TournamentTeam[]> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/tournament_teams/`,\n {params}\n ).pipe(\n map(result => result.map(item => new TournamentTeam(item)))\n ).toPromise();\n }\n\n async getUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/users/`)\n .pipe(map(data => data.map(item => new TeamUser(item))))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { User } from '../models/user';\nimport { map } from 'rxjs/operators';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { LeaguePlayer } from '../models/league-player';\n\n@Injectable({providedIn: 'root'})\nexport class PublicUserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(userId: number): Promise<User> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/`).pipe(\n map(result => new User(result))\n ).toPromise();\n }\n\n getTournaments(userId: number, leagueId: number): Promise<Tournament[]> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/tournaments/`,\n {params}\n ).pipe(\n map(result => result.map(item => new Tournament(item))),\n ).toPromise();\n }\n\n getTournamentUser(userId: number, seasonId: number): Promise<TournamentTeamUser> {\n const params = new HttpParams().set('season_id', seasonId.toString());\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/tournament_user/`,\n {params}\n ).pipe(\n map(result => new TournamentTeamUser(result))\n ).toPromise();\n }\n\n getLeaguePlayer(userId: number, leagueId: number): Promise<LeaguePlayer> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/league_player/`,\n {params}\n ).pipe(\n map(result => new LeaguePlayer(result))\n ).toPromise();\n }\n}\n","import { BasketballGameLogTypes } from '../models/basketball-game-log';\n\nexport const BasketballGameLogTypeLocalization = {\n [BasketballGameLogTypes.enter_game]: 'Выход на площадку',\n [BasketballGameLogTypes.exit_game]: 'Ушел с площадки',\n [BasketballGameLogTypes.remove_game]: 'Удаление с площадки',\n [BasketballGameLogTypes.two_point_attempt]: 'Бросок 2 очка',\n [BasketballGameLogTypes.three_point_attempt]: 'Бросок 3 очка',\n [BasketballGameLogTypes.free_throw_attempt]: 'Штрафной бросок',\n [BasketballGameLogTypes.one_point_attempt]: 'Бросок 1 очко',\n [BasketballGameLogTypes.two_point_made]: '2 очка',\n [BasketballGameLogTypes.three_point_made]: '3 очка',\n [BasketballGameLogTypes.free_throw_made]: '1 очко, штрафной',\n [BasketballGameLogTypes.one_point_made]: '1 очко',\n [BasketballGameLogTypes.assist]: 'Передача',\n [BasketballGameLogTypes.block]: 'Блокшот',\n [BasketballGameLogTypes.rebound]: 'Подбор',\n [BasketballGameLogTypes.offensive_rebound]: 'Подбор в нападении',\n [BasketballGameLogTypes.defensive_rebound]: 'Подбор в защите',\n [BasketballGameLogTypes.steal]: 'Перехват',\n [BasketballGameLogTypes.turnover]: 'Потеря',\n [BasketballGameLogTypes.personal_foul]: 'Фол',\n [BasketballGameLogTypes.technical_foul]: 'Технический фол',\n [BasketballGameLogTypes.unsportsmanlike_foul]: 'Неспортиный фол',\n [BasketballGameLogTypes.timeout]: 'Таймаут',\n [BasketballGameLogTypes.team_rebound]: 'Командный подбор',\n [BasketballGameLogTypes.dunk_attempt]: 'Данк мимо',\n [BasketballGameLogTypes.dunk_made]: 'Данк',\n [BasketballGameLogTypes.four_point_attempt]: 'Бросок 4 очка',\n [BasketballGameLogTypes.four_point_made]: '4 очка',\n [BasketballGameLogTypes.shootout]: 'Булит',\n [BasketballGameLogTypes.shootout_won]: 'Булит выигран',\n [BasketballGameLogTypes.shootout_lost]: 'Булит проигран',\n};\n","import { BasketballSubLogTypes } from '../models/basketball-game-log';\n\nexport const BasketballGameSubLogTypesLocalization = {\n // Shots\n [BasketballSubLogTypes.jump_shot]: 'Джампшот',\n [BasketballSubLogTypes.step_back_jump_shot]: 'Степ-бэк',\n [BasketballSubLogTypes.floating_jump_shot]: 'Флоатинг',\n [BasketballSubLogTypes.fade_away_jump_shot]: 'Фэйдавэй',\n [BasketballSubLogTypes.pull_up_jump_shot]: 'Пуллап',\n [BasketballSubLogTypes.turnaround_jump_shot]: 'Турнэраунд',\n [BasketballSubLogTypes.dunk]: 'Данк',\n [BasketballSubLogTypes.layup]: 'Лэйап',\n [BasketballSubLogTypes.driving_layup]: 'Драйвинг лэйап',\n [BasketballSubLogTypes.alley_oop]: 'Алейуп',\n [BasketballSubLogTypes.hook_shot]: 'Хукшот',\n\n // foul\n [BasketballSubLogTypes.offensive_foul]: 'В нападении',\n [BasketballSubLogTypes.shot_foul]: 'При броксе',\n [BasketballSubLogTypes.mutual_foul]: 'Обоюдный фол',\n\n // Turnover\n [BasketballSubLogTypes.bad_pass]: 'Плохой пас',\n [BasketballSubLogTypes.ball_handling]: 'На ведении',\n [BasketballSubLogTypes.travel]: 'Пробежка',\n [BasketballSubLogTypes.double_dribble]: 'Двойное ведение',\n [BasketballSubLogTypes.out_of_bounds]: 'Заступ в аут',\n [BasketballSubLogTypes.three_seconds]: '3 секунды',\n [BasketballSubLogTypes.five_seconds]: '5 секунд',\n [BasketballSubLogTypes.eight_seconds]: '8 секунд',\n [BasketballSubLogTypes.twenty_four_seconds]: '24 секунды',\n [BasketballSubLogTypes.back_court]: 'Зона',\n [BasketballSubLogTypes.offensive_goal_tending]: 'Гоалтендинг',\n [BasketballSubLogTypes.other_turnover]: 'Другое',\n};\n","import { HockeyGameLogTypes } from '../models/hockey-game-log';\n\nexport const HockeyGameLogTypeLocalization = {\n [HockeyGameLogTypes.enter_game]: 'Выход на площадку',\n [HockeyGameLogTypes.exit_game]: 'Ушел с площадки',\n [HockeyGameLogTypes.shot_miss]: 'Бросок мимо',\n [HockeyGameLogTypes.shot_on_goal]: 'Бросок по воротам',\n [HockeyGameLogTypes.shot_blocked]: 'Заблокированный бросок',\n [HockeyGameLogTypes.goal]: 'Гол',\n [HockeyGameLogTypes.shootout_attempt]: 'Буллит промах',\n [HockeyGameLogTypes.shootout_goal]: 'Буллит гол',\n [HockeyGameLogTypes.after_game_shootout_attempt]: 'Буллит промах',\n [HockeyGameLogTypes.after_game_shootout_goal]: 'Буллит гол',\n [HockeyGameLogTypes.assist]: 'Передача',\n [HockeyGameLogTypes.block_shot]: 'Блокировка броска',\n [HockeyGameLogTypes.minor_penalty]: 'Малый штраф',\n [HockeyGameLogTypes.major_penalty]: 'Большой штраф',\n [HockeyGameLogTypes.misconduct_penalty]: 'Дисциплинарный штраф',\n [HockeyGameLogTypes.game_misconduct_penalty]: 'Дисциплинарный штраф до конца игры',\n [HockeyGameLogTypes.match_penalty]: 'Матч-штраф',\n [HockeyGameLogTypes.penalty_shot]: 'Штрафной бросок',\n [HockeyGameLogTypes.face_off_lose]: 'Проигрыш в вбрасывании',\n [HockeyGameLogTypes.face_off_win]: 'Победа в вбрасывании',\n [HockeyGameLogTypes.save]: 'Отражен бросок',\n [HockeyGameLogTypes.shootout_save]: 'Отражен бросок',\n [HockeyGameLogTypes.after_game_shootout_save]: 'Отражен бросок',\n [HockeyGameLogTypes.timeout]: 'Таймаут',\n [HockeyGameLogTypes.penalty_start]: 'Начало штрафного времени',\n [HockeyGameLogTypes.penalty_end]: 'Конец штрафного времени',\n [HockeyGameLogTypes.steal]: 'Отбор',\n [HockeyGameLogTypes.loss]: 'Потеря',\n [HockeyGameLogTypes.sharp_pass]: 'Острая передача',\n};\n","import { FootballGameLogTypes } from '../models/football-game-log';\n\nexport const FootballGameLogTypeLocalization = {\n [FootballGameLogTypes.enter_game]: 'Выход на поле',\n [FootballGameLogTypes.exit_game]: 'Ушел с поля',\n [FootballGameLogTypes.shot_miss]: 'Удар мимо',\n [FootballGameLogTypes.shot_on_goal]: 'Удар в створ',\n [FootballGameLogTypes.shot_blocked]: 'Заблокированный удар',\n [FootballGameLogTypes.goal]: 'Гол',\n [FootballGameLogTypes.assist]: 'Передача',\n [FootballGameLogTypes.penalty_attempt]: 'Пенальти промах',\n [FootballGameLogTypes.penalty_goal]: 'Пенальти гол',\n [FootballGameLogTypes.small_penalty_attempt]: '10-метровый промах',\n [FootballGameLogTypes.small_penalty_goal]: '10-метровый гол',\n [FootballGameLogTypes.block_shot]: 'Блокировка удара',\n [FootballGameLogTypes.corner]: 'Угловой',\n [FootballGameLogTypes.free_kick]: 'Штрафной удар',\n [FootballGameLogTypes.save]: 'Отражен удар',\n [FootballGameLogTypes.penalty_save]: 'Отражен пенальти',\n [FootballGameLogTypes.small_penalty_save]: 'Отражен 10 метровый',\n [FootballGameLogTypes.foul]: 'Фол',\n [FootballGameLogTypes.yellow_card]: 'Желтая карточка',\n [FootballGameLogTypes.red_card]: 'Красная карточка',\n [FootballGameLogTypes.perfect_pass]: 'Пас',\n [FootballGameLogTypes.loss]: 'Потеря',\n [FootballGameLogTypes.steal]: 'Перехват',\n [FootballGameLogTypes.out]: 'Аут',\n [FootballGameLogTypes.timeout]: 'Таймаут',\n [FootballGameLogTypes.auto_goal]: 'Автогол',\n [FootballGameLogTypes.end_game_penalty_goal]: 'Пенальти гол',\n [FootballGameLogTypes.end_game_penalty_miss]: 'Пенальти промах',\n [FootballGameLogTypes.end_game_penalty_save]: 'Отражен пенальти',\n};\n","import { HandballGameLogTypes } from '../models/handball-game-log';\n\nexport const HandballGameLogTypeLocalization = {\n [HandballGameLogTypes.enter_game]: 'Выход на поле',\n [HandballGameLogTypes.exit_game]: 'Ушел с поля',\n [HandballGameLogTypes.shot_miss]: 'Бросок мимо',\n [HandballGameLogTypes.shot_on_goal]: 'Бросок в створ',\n [HandballGameLogTypes.shot_blocked]: 'Заблокированный бросок',\n [HandballGameLogTypes.goal]: 'Гол',\n [HandballGameLogTypes.assist]: 'Передача',\n [HandballGameLogTypes.penalty_miss]: '7м промах',\n [HandballGameLogTypes.penalty_shot_on_goal]: '7м в створ',\n [HandballGameLogTypes.penalty_goal]: '7м гол',\n [HandballGameLogTypes.save]: 'Сэйв',\n [HandballGameLogTypes.penalty_save]: 'Сэйв 7м',\n [HandballGameLogTypes.foul]: 'Фол',\n [HandballGameLogTypes.yellow_card]: 'Желлтая карточка',\n [HandballGameLogTypes.red_card]: 'Красная карточка',\n [HandballGameLogTypes.two_minute_foul]: '2х минутный штраф',\n [HandballGameLogTypes.turnover]: 'Потеря',\n [HandballGameLogTypes.steal]: 'Перехват',\n [HandballGameLogTypes.block_shot]: 'Блок броска',\n [HandballGameLogTypes.timeout]: 'Таймаут'\n};\n","import { WaterpoloGameLogTypes } from '../models/waterpolo-game-log';\n\nexport const WaterpoloGameLogTypeLocalization = {\n [WaterpoloGameLogTypes.enter_game]: 'Выход на площадку',\n [WaterpoloGameLogTypes.exit_game]: 'Ушел с площадки',\n [WaterpoloGameLogTypes.shot_miss]: 'Бросок мимо',\n [WaterpoloGameLogTypes.counterattack_miss]: 'Бросок мимо в контратаке',\n [WaterpoloGameLogTypes.maneuver_miss]: 'Бросок мимо с маневра',\n [WaterpoloGameLogTypes.center_forward_miss]: 'Бросок мимо со столба',\n [WaterpoloGameLogTypes.shot_on_goal]: 'Бросок по воротам',\n [WaterpoloGameLogTypes.counterattack_on_goal]: 'Бросок по воротам в контратаке',\n [WaterpoloGameLogTypes.maneuver_on_goal]: 'Бросок по воротам с маневра',\n [WaterpoloGameLogTypes.center_forward_on_goal]: 'Бросок по воротам со столба',\n [WaterpoloGameLogTypes.shot_blocked]: 'Заблокирован бросок',\n [WaterpoloGameLogTypes.counter_attack_shot_blocked]: 'Заблокирован бросок в контратаке',\n [WaterpoloGameLogTypes.maneuver_shot_blocked]: 'Заблокирован бросок с маневра',\n [WaterpoloGameLogTypes.center_forward_shot_blocked]: 'Заблокирован бросок со столба',\n [WaterpoloGameLogTypes.goal]: 'Гол',\n [WaterpoloGameLogTypes.maneuver_goal]: 'Гол с маневра',\n [WaterpoloGameLogTypes.counterattack_goal]: 'Гол в контратаке',\n [WaterpoloGameLogTypes.center_forward_goal]: 'Гол со столба',\n [WaterpoloGameLogTypes.shootout_attempt]: 'Пенальти промах',\n [WaterpoloGameLogTypes.shootout_goal]: 'Пенальти гол',\n [WaterpoloGameLogTypes.after_game_shootout_attempt]: 'Пенальти промах',\n [WaterpoloGameLogTypes.after_game_shootout_goal]: 'Пенальти гол',\n [WaterpoloGameLogTypes.assist]: 'Голевая передача',\n [WaterpoloGameLogTypes.block_shot]: 'Блокировка броска',\n [WaterpoloGameLogTypes.minor_penalty]: 'Удаление на 20 сек.',\n [WaterpoloGameLogTypes.major_penalty]: 'Удаление + 20 сек. штраф',\n [WaterpoloGameLogTypes.match_penalty]: 'Удаление + 4 мин. штраф',\n [WaterpoloGameLogTypes.foul]: 'Фол',\n [WaterpoloGameLogTypes.penalty_foul]: 'Фол пенальти',\n [WaterpoloGameLogTypes.attack_foul]: 'Фол в нападении',\n [WaterpoloGameLogTypes.personal_foul]: 'Персональный фол',\n [WaterpoloGameLogTypes.penalty_shot]: 'Штрафной бросок',\n [WaterpoloGameLogTypes.face_off_lose]: 'Проигрыш в спринте',\n [WaterpoloGameLogTypes.face_off_win]: 'Победа в спринте',\n [WaterpoloGameLogTypes.save]: 'Отражен бросок',\n [WaterpoloGameLogTypes.counterattack_save]: 'Отражен бросок в контратаке',\n [WaterpoloGameLogTypes.maneuver_save]: 'Отражен бросок с маневра',\n [WaterpoloGameLogTypes.center_forward_save]: 'Отражен бросок со столба',\n [WaterpoloGameLogTypes.free_kick_save]: 'Отражен бросок со свободного',\n [WaterpoloGameLogTypes.corner_save]: 'Отражен бросок с углового',\n [WaterpoloGameLogTypes.shootout_save]: 'Отражен бросок с пенальти',\n [WaterpoloGameLogTypes.after_game_shootout_save]: 'Отражен бросок с пенальти',\n [WaterpoloGameLogTypes.timeout]: 'Таймаут',\n [WaterpoloGameLogTypes.penalty_start]: 'Начало штрафного времени',\n [WaterpoloGameLogTypes.penalty_end]: 'Конец штрафного времени',\n [WaterpoloGameLogTypes.yellow_card]: 'Желтая карточка',\n [WaterpoloGameLogTypes.red_card]: 'Красная карточка',\n [WaterpoloGameLogTypes.turnover]: 'Переход владения',\n [WaterpoloGameLogTypes.loss]: 'Потеря',\n [WaterpoloGameLogTypes.steal]: 'Перехват',\n [WaterpoloGameLogTypes.tackle]: 'Отбор',\n [WaterpoloGameLogTypes.free_kick_goal]: 'Гол со свободного удара',\n [WaterpoloGameLogTypes.free_kick_on_goal]: 'Бросок со свободного удара в створ',\n [WaterpoloGameLogTypes.free_kick_miss]: 'Бросок мимо со свободного удара',\n [WaterpoloGameLogTypes.free_kick_shot_blocked]: 'Заблокирован бросок со свободного удара',\n [WaterpoloGameLogTypes.free_kick_pass]: 'Пас со свободного удара',\n [WaterpoloGameLogTypes.free_kick_self]: 'Розыгрыш свободного удара',\n [WaterpoloGameLogTypes.corner_goal]: 'Гол с углового',\n [WaterpoloGameLogTypes.corner_on_goal]: 'Бросок с углового в створ',\n [WaterpoloGameLogTypes.corner_miss]: 'Бросок мимо с углового',\n [WaterpoloGameLogTypes.corner_shot_blocked]: 'Заблокирован бросок с углового',\n [WaterpoloGameLogTypes.corner_pass]: 'Пас с углового',\n [WaterpoloGameLogTypes.corner_self]: 'Розыгрыш углового',\n [WaterpoloGameLogTypes.complete_penalty_time]: 'Досрочное завершение штрафа'\n};\n","import { OvertimeTypes } from '../models/tournament';\n\nexport const OvertimeTypeLocalization = {\n [OvertimeTypes.to_score_diff]: 'До разницы в N мячей',\n [OvertimeTypes.to_score_total]: 'До N очков',\n [OvertimeTypes.time]: 'По времени',\n [OvertimeTypes.without_overtime]: 'Без овертайма',\n [OvertimeTypes.to_first_goal]: 'На N минут до первой шайбы',\n [OvertimeTypes.to_first_goal_and_bullitts]: 'На N минут до первой шайбы + буллиты',\n [OvertimeTypes.bullitts]: 'Буллиты',\n [OvertimeTypes.penalties]: 'Пенальти',\n [OvertimeTypes.time_and_penalties]: 'Дополнительное время + пенальти'\n};\n","import { RugbyFoulSanctions } from '../models/rugby-foul-type';\n\nexport const RugbyFoulSanctionLocalization = {\n [RugbyFoulSanctions.scrum]: 'Схватка',\n [RugbyFoulSanctions.lineout]: 'Коридор',\n [RugbyFoulSanctions.start_kick]: 'Начальный удар',\n [RugbyFoulSanctions.free_kick]: 'Свободный удар',\n [RugbyFoulSanctions.penalty_shot]: 'Штрафной удар',\n [RugbyFoulSanctions.twenty_two_meters_kick]: 'Удар с 22 метров',\n [RugbyFoulSanctions.conversion_cancel]: 'Отмена удара',\n [RugbyFoulSanctions.yellow_card]: 'Желтая карточка',\n [RugbyFoulSanctions.red_card]: 'Красная карточка',\n};\n","import { RugbyFoulGameStage } from '../models/rugby-foul-type';\n\nexport const RugbyFoulGameStageLocalization = {\n [RugbyFoulGameStage.start_kick]: 'Начальные удары',\n [RugbyFoulGameStage.open_game]: 'Открытая игра',\n [RugbyFoulGameStage.tackle]: 'Игроки на земле, Захват',\n [RugbyFoulGameStage.ruck_or_maul]: 'Рак, мол',\n [RugbyFoulGameStage.scrum]: 'Схватка',\n [RugbyFoulGameStage.out_and_lineout]: 'Аут и коридор',\n [RugbyFoulGameStage.scoring_field]: 'Зачетное поле',\n [RugbyFoulGameStage.kick_on_goal]: 'Удар по воротам',\n [RugbyFoulGameStage.free_kick]: 'Штрафной, свободный удар',\n [RugbyFoulGameStage.team]: 'Команда',\n};\n","import { RugbyGameLogTypes } from '../models/rugby-game-log';\n\nexport const RugbyGameLogTypeLocalization = {\n [RugbyGameLogTypes.enter_game]: 'Вышел на поле',\n [RugbyGameLogTypes.exit_game]: 'Ушел с поля',\n [RugbyGameLogTypes.try]: 'Попытка',\n [RugbyGameLogTypes.penalty_try]: 'Штрафная попытка',\n [RugbyGameLogTypes.conversion_goal]: 'Реализация',\n [RugbyGameLogTypes.conversion_miss]: 'Реализация промах',\n [RugbyGameLogTypes.penalty_miss]: 'Штрафной промах',\n [RugbyGameLogTypes.penalty_goal]: 'Штрафной гол',\n [RugbyGameLogTypes.penalty_kick_to_touch]: 'Штрафной в аут',\n [RugbyGameLogTypes.tap_penalty]: 'Штрафной розыгран',\n [RugbyGameLogTypes.drop_goal]: 'Дроп-гол',\n [RugbyGameLogTypes.drop_goal_miss]: 'Дроп-гол промах',\n [RugbyGameLogTypes.free_kick]: 'Свободный удар',\n [RugbyGameLogTypes.foul]: 'Фол',\n [RugbyGameLogTypes.yellow_card]: 'Желтая карточка',\n [RugbyGameLogTypes.red_card]: 'Красная карточка',\n [RugbyGameLogTypes.offload]: 'Скидка при завхвате',\n [RugbyGameLogTypes.tackle]: 'Успешный захват',\n [RugbyGameLogTypes.handling_error]: 'Ошибка приема',\n [RugbyGameLogTypes.carries_over_gainline]: 'Прорыв линии',\n [RugbyGameLogTypes.bleeding_injury]: 'Кровоточащая травма',\n [RugbyGameLogTypes.head_injury]: 'Травма головы',\n [RugbyGameLogTypes.end_game_penalty_miss]: 'Штрафной промах',\n [RugbyGameLogTypes.end_game_penalty_goal]: 'Штрафной гол',\n [RugbyGameLogTypes.foot_field_shot]: 'Удар ногой в поле',\n [RugbyGameLogTypes.foot_out_shot]: 'Удар ногой в аут',\n [RugbyGameLogTypes.foot_kick_50_22]: 'Удар ногой 50/22',\n\n [RugbyGameLogTypes.timeout]: 'Таймаут',\n [RugbyGameLogTypes.scrum_won]: 'Схватка выиграна',\n [RugbyGameLogTypes.scrum_lost]: 'Схватка проиграна',\n [RugbyGameLogTypes.scrum_won_free]: 'Схватка выиграна без сопротивления',\n [RugbyGameLogTypes.lineout_won]: 'Коридор выигран',\n [RugbyGameLogTypes.lineout_lost]: 'Коридор проигран',\n [RugbyGameLogTypes.quick_throw]: 'Быстрый вброс',\n [RugbyGameLogTypes.ruck_won]: 'Рак выигран',\n [RugbyGameLogTypes.ruck_lost]: 'Рак проигран',\n [RugbyGameLogTypes.maul_won]: 'Мол выигран',\n [RugbyGameLogTypes.maul_lost]: 'Мол проигран',\n [RugbyGameLogTypes.team_foul]: 'Нарушение',\n [RugbyGameLogTypes.start_kick]: 'Начальный удар',\n [RugbyGameLogTypes.twenty_two_meters_kick]: 'Удар с 22 метров',\n [RugbyGameLogTypes.goal_kick]: 'Удар от ворот',\n};\n","import { TeamUserRole } from '../models/team-user';\n\nexport const TeamUserRoleLocalization = {\n [TeamUserRole.member]: 'Пользователь',\n [TeamUserRole.moderator]: 'Модератор',\n [TeamUserRole.admin]: 'Владелец',\n [TeamUserRole.coach]: 'Тренер',\n [TeamUserRole.head_coach]: 'Главный тренер',\n [TeamUserRole.playing_coach]: 'Играющий тренер',\n [TeamUserRole.manager]: 'Менеджер',\n [TeamUserRole.head_manager]: 'Генеральный менеджер',\n [TeamUserRole.captain]: 'Капитан',\n [TeamUserRole.assistant]: 'Ассистент',\n};\n","import { GameBasketballPosition, WorkHand } from '../models/basketball-profile';\nimport { GameVolleyballPosition, VolleyballWorkHand } from '../models/volleyball-profile';\nimport { GameHockeyPosition } from '../models/hockey-profile';\nimport { FootballWorkFoot, GameFootballPosition } from '../models/football-profile';\nimport { GameHandballPosition } from '../models/handball-profile';\nimport { GameRugbyPosition } from '../models/rugby-profile';\nimport { GameWaterpoloPosition, WaterpoloWorkHand } from '../models/waterpolo-profile';\n\nexport const GameBasketballPositionLocalization = {\n [GameBasketballPosition.point_guard]: 'Разыгрывающий защитник',\n [GameBasketballPosition.shooting_guard]: 'Атакующий защитник',\n [GameBasketballPosition.small_forward]: 'Легкий форвард',\n [GameBasketballPosition.power_forward]: 'Мощный форвард',\n [GameBasketballPosition.center]: 'Центровой',\n};\n\nexport const GameBasketballPositionShortLocalization = {\n [GameBasketballPosition.point_guard]: 'PG',\n [GameBasketballPosition.shooting_guard]: 'SG',\n [GameBasketballPosition.small_forward]: 'SF',\n [GameBasketballPosition.power_forward]: 'PF',\n [GameBasketballPosition.center]: 'C',\n};\n\nexport const WorkHandLocalization = {\n [WorkHand.left]: 'Левая',\n [WorkHand.right]: 'Правая'\n};\n\nexport const HockeyWorkHandLocalization = {\n [WorkHand.left]: 'Левый',\n [WorkHand.right]: 'Правый'\n};\n\nexport const GameVolleyballPositionLocalization = {\n [GameVolleyballPosition.setter]: 'Связующий',\n [GameVolleyballPosition.libero]: 'Либеро',\n [GameVolleyballPosition.middle_player]: 'Центральный блокирующий',\n [GameVolleyballPosition.receiver_attacker]: 'Доигровщик',\n [GameVolleyballPosition.dioganal]: 'Диагональный',\n};\n\nexport const GameVolleyballPositionShortLocalization = {\n [GameVolleyballPosition.setter]: 'S',\n [GameVolleyballPosition.libero]: 'L',\n [GameVolleyballPosition.middle_player]: 'MP',\n [GameVolleyballPosition.receiver_attacker]: 'RA',\n [GameVolleyballPosition.dioganal]: 'D',\n};\n\nexport const GameVolleyballPositionShortRuLocalization = {\n [GameVolleyballPosition.setter]: 'связ.',\n [GameVolleyballPosition.libero]: 'либеро',\n [GameVolleyballPosition.middle_player]: 'блок.',\n [GameVolleyballPosition.receiver_attacker]: 'доигр.',\n [GameVolleyballPosition.dioganal]: 'диаг.',\n};\n\nexport const VolleyballWorkHandLocalization = {\n [VolleyballWorkHand.left]: 'Левая',\n [VolleyballWorkHand.right]: 'Правая'\n};\n\nexport const GameHockeyPositionLocalization = {\n [GameHockeyPosition.goaltender]: 'Вратарь',\n [GameHockeyPosition.defensemen]: 'Защитник',\n [GameHockeyPosition.forward]: 'Нападающий'\n};\n\nexport const GameFootballPositionLocalization = {\n [GameFootballPosition.goalkeeper]: 'Вратарь',\n [GameFootballPosition.defensemen]: 'Защитник',\n [GameFootballPosition.midfielder]: 'Полузащитник',\n [GameFootballPosition.forward]: 'Нападающий'\n};\n\nexport const FootballWorkFootLocalization = {\n [FootballWorkFoot.left]: 'Левая',\n [FootballWorkFoot.right]: 'Правая',\n [FootballWorkFoot.both]: 'Обе'\n};\n\nexport const GameHandballPositionLocalization = {\n [GameHandballPosition.goalkeeper]: 'Вратарь',\n [GameHandballPosition.winger]: 'Крайний',\n [GameHandballPosition.pivot]: 'Линейный',\n [GameHandballPosition.centre_back]: 'Центральный',\n [GameHandballPosition.fullback]: 'Полусредний',\n};\n\nexport const GameRugbyPositionLocalization = {\n [GameRugbyPosition.front_line]: 'Надающий первой линии',\n [GameRugbyPosition.second_line]: 'Нападающий второй линии',\n [GameRugbyPosition.back_line]: 'Нападающий задней линии',\n [GameRugbyPosition.halfback]: 'Полузащитник',\n [GameRugbyPosition.three_quarter]: 'Трехчетвертный',\n [GameRugbyPosition.fullback]: 'Замыкающий'\n};\n\nexport const GameWaterpoloPositionLocalization = {\n [GameWaterpoloPosition.defensemen]: 'Защитник',\n [GameWaterpoloPosition.goalkeeper]: 'Вратарь',\n [GameWaterpoloPosition.center_forward]: 'Центральный нападающий',\n [GameWaterpoloPosition.mobile_forward]: 'Подвижный нападающий',\n};\n\nexport const GameWaterpoloPositionShortRuLocalization = {\n [GameWaterpoloPosition.defensemen]: 'З',\n [GameWaterpoloPosition.goalkeeper]: 'Вр',\n [GameWaterpoloPosition.center_forward]: 'ЦН',\n [GameWaterpoloPosition.mobile_forward]: 'ПН',\n};\n\nexport const WaterpoloWorkHandLocalization = {\n [WaterpoloWorkHand.left]: 'Левая',\n [WaterpoloWorkHand.right]: 'Правая'\n};\n\n","import { VolleyballGameLogType } from '../models/volleyball-game-log';\n\nexport const VolleyballGameLogTypeLocalization = {\n [VolleyballGameLogType.enter_game]: 'Выход на площадку',\n [VolleyballGameLogType.exit_game]: 'Уход с площадки',\n [VolleyballGameLogType.remove_game]: 'Удаление с площадки',\n [VolleyballGameLogType.serve_ace]: 'Эйс',\n [VolleyballGameLogType.serve_hit]: 'Подача',\n [VolleyballGameLogType.serve_fault]: 'Ошибка на подаче',\n [VolleyballGameLogType.good_serve]: 'Усложнённая подача',\n [VolleyballGameLogType.attack_spike]: 'Результативная атака',\n [VolleyballGameLogType.attack_shot]: 'Атака',\n [VolleyballGameLogType.attack_fault]: 'Ошибка атаки',\n [VolleyballGameLogType.stuff_block]: 'Результативный блок',\n [VolleyballGameLogType.block_rebound]: 'Блок',\n [VolleyballGameLogType.block_fault]: 'Ошибка на блоке',\n [VolleyballGameLogType.excellent_receive]: 'Отличный прием',\n [VolleyballGameLogType.receive]: 'Прием',\n [VolleyballGameLogType.receive_fault]: 'Ошибка на приеме',\n [VolleyballGameLogType.serve_receive]: 'Прием подачи',\n [VolleyballGameLogType.excellent_serve_receive]: 'Отличный прием подачи',\n [VolleyballGameLogType.serve_receive_fault]: 'Ошибка приема подачи',\n [VolleyballGameLogType.point]: 'Очко',\n [VolleyballGameLogType.fault]: 'Ошибка',\n [VolleyballGameLogType.timeout]: 'Таймаут',\n [VolleyballGameLogType.yellow_card]: 'Предупреждение',\n [VolleyballGameLogType.tie_ball]: 'Спорный мяч',\n};\n","import { OrganizationStatuses } from '../models/organization';\n\nexport const OrganizationStatusesLocalization = {\n [OrganizationStatuses.active]: 'Активен',\n [OrganizationStatuses.blocked]: 'Заблокирован',\n [OrganizationStatuses.not_confirmed]: 'Не подтвержден'\n};\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum DeviceTheme {\n light = 1,\n dark,\n}\n\n@Model({\n relation: {\n theme: enumField(DeviceTheme),\n }\n})\nexport class DeviceInfo extends BaseModel {\n deviceId: string;\n osName: string;\n osVersion: string;\n browserName: string;\n browserVersion: string;\n device: string;\n theme: DeviceTheme;\n language: string;\n}\n","import { BaseModel, Model, enumField, dateTimeField, nestedModel } from './util';\nimport { Organization } from './organization';\n\n\nexport enum OrganizationBillStatuses {\n pending = 1,\n paid,\n canceled,\n}\n\nexport const OrganizationBillStatusLocalization = {\n [OrganizationBillStatuses.pending]: 'Новый',\n [OrganizationBillStatuses.paid]: 'Оплачен',\n [OrganizationBillStatuses.canceled]: 'Отменен',\n};\n\n@Model({\n relation: {\n organization: nestedModel(Organization),\n status: enumField(OrganizationBillStatuses),\n paymentDate: dateTimeField,\n payTillDate: dateTimeField,\n dateFrom: dateTimeField,\n dateTo: dateTimeField,\n createdAt: dateTimeField,\n }\n})\nexport class OrganizationBill extends BaseModel {\n id: number;\n organization: Organization;\n status: OrganizationBillStatuses;\n sum: number;\n paymentDate: Date;\n payTillDate: Date;\n dateFrom: Date;\n dateTo: Date;\n createdAt: Date;\n}\n","import { BaseModel, Model, enumField, dateTimeField, nestedModel } from './util';\nimport { Game } from './game';\nimport { OrganizationBill } from './organization-bill';\n\n\nexport enum GameBillStatuses {\n pending = 1,\n paid,\n canceled,\n}\n\nexport const GameBillStatusLocalization = {\n [GameBillStatuses.pending]: 'Новый',\n [GameBillStatuses.paid]: 'Оплачен',\n [GameBillStatuses.canceled]: 'Отменен',\n};\n\n@Model({\n relation: {\n game: nestedModel(Game),\n organizationBill: nestedModel(OrganizationBill),\n status: enumField(GameBillStatuses),\n paidDate: dateTimeField,\n createdAt: dateTimeField,\n }\n})\nexport class GameBill extends BaseModel {\n id: number;\n game: Game;\n organizationBill: OrganizationBill;\n status: GameBillStatuses;\n price: number;\n paidDate: Date;\n createdAt: Date;\n}\n","import { Model, BaseModel, listField, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n files: listField(nestedModel(File))\n }\n})\nexport class LeaguePlaylist extends BaseModel {\n id: number;\n name: string;\n files: File[];\n keyCode: string;\n}\n","import { BaseModel, Model, nestedModel } from './util';\nimport { Organization } from './organization';\nimport { Sport } from './sport';\n\n\n@Model({\n relation: {\n organization: nestedModel(Organization),\n sport: nestedModel(Sport),\n }\n})\nexport class OrganizationTariff extends BaseModel {\n id: number;\n organization: Organization;\n sport: Sport;\n price: number;\n}\n","import { BaseModel, Model } from './util';\n\n\n@Model()\nexport class OrganizationStatistic extends BaseModel {\n id: number;\n playersCount: number;\n teamsCount: number;\n gamesCount: number;\n paidSum: number;\n debtSum: number;\n}\n","import { BaseModel, dateField, enumField, Model } from './util';\nimport { UserGender } from './user';\n\n@Model({\n relation: {\n birthDate: dateField,\n gender: enumField(UserGender),\n }\n})\nexport class TournamentJoin1x1Data extends BaseModel {\n email: string;\n phone: string;\n gender: string;\n birthDate: Date;\n size: string;\n nickname: string;\n city: string;\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { of, ReplaySubject, Subject } from 'rxjs';\n\nimport { Centrifuge } from 'centrifuge';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ConfigService } from './config.service';\nimport { Subscription } from 'centrifuge/build/subscription';\nimport { filter, take, tap } from 'rxjs/operators';\nimport { isPlatformBrowser } from '@angular/common';\n\ninterface CentrifugoConfig {\n token: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class CentrifugoService {\n private channels$: { [key: string]: Subject<any> } = {};\n private subscriptions: { [key: string]: Subscription } = {};\n private centrifuge: Centrifuge;\n private initializeEngineSubject: ReplaySubject<boolean>;\n private connectedSubject = new BehaviorSubject<boolean>(false);\n\n get connected$(): Observable<boolean> {\n return this.connectedSubject;\n }\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) { }\n\n listen<T>(channel): Observable<T> {\n if (!isPlatformBrowser(this.platformId)) {\n return new Observable(observer => {\n observer.error('Centrifugo is not available in ssr mode');\n });\n }\n\n if (channel in this.channels$) {\n return this.channels$[channel];\n }\n\n this.channels$[channel] = new Subject<T>();\n this.connect().subscribe(connected => {\n this.subscriptions[channel] = this.addEngineSubscription(channel);\n });\n\n return this.channels$[channel];\n }\n\n unsubscribe(channel): void {\n if (this.subscriptions[channel]) {\n this.subscriptions[channel].unsubscribe();\n this.centrifuge.removeSubscription(this.subscriptions[channel]);\n delete this.subscriptions[channel];\n }\n if (this.channels$[channel]) {\n this.channels$[channel].complete();\n delete this.channels$[channel];\n }\n }\n\n connect(): Observable<boolean> {\n if (!isPlatformBrowser(this.platformId)) {\n return new Observable(observer => {\n observer.error('Centrifugo is not available in ssr mode');\n });\n }\n\n if (!this.initializeEngineSubject) {\n this.initializeEngineSubject = new ReplaySubject(1);\n\n this.httpClient.get<CentrifugoConfig>(`${this.configService.get('apiUrl')}/api/v1/centrifugo_v2/`)\n .subscribe(config => {\n this.initializeEngine({\n url: this.configService.get('centrifugoUrl'),\n token: config.token,\n transports: ['websocket']\n });\n this.centrifuge.on('connected', () => {\n this.initializeEngineSubject.next(true);\n this.connectedSubject.next(true);\n });\n this.centrifuge.on('disconnected', () => {\n this.connectedSubject.next(false);\n this.initializeEngineSubject.next(false);\n });\n this.centrifuge.connect();\n });\n }\n\n return this.initializeEngineSubject.pipe(filter(item => Boolean(item)), take(1));\n }\n\n async publish(channel: string, message: any): Promise<any> {\n if (!isPlatformBrowser(this.platformId)) {\n throw new Error('Centrifugo is not available in ssr mode');\n }\n\n const connected = await this.connect().pipe(filter(item => Boolean(item)), take(1)).toPromise();\n if (!connected) {\n throw new Error('Centrifuge connection error');\n }\n return await this.centrifuge.publish(channel, message);\n }\n\n disconnect(): void {\n this.centrifuge.disconnect();\n this.initializeEngineSubject = undefined;\n for (const channel of Object.keys(this.channels$)) {\n this.unsubscribe(channel);\n }\n this.channels$ = {};\n this.subscriptions = {};\n }\n\n private initializeEngine(config: {\n url: string,\n token: string,\n transports: string[]\n }): void {\n this.centrifuge = new Centrifuge(config.url, {\n token: config.token,\n debug: true,\n });\n // @ts-ignore\n this.centrifuge._debugEnabled = false;\n }\n\n private addEngineSubscription(channel: string): Subscription {\n let sub = this.centrifuge.getSubscription(channel);\n if (!sub) {\n sub = this.centrifuge.newSubscription(channel);\n sub.on('publication', ctx => {\n this.resolveMessage(channel, ctx.data);\n });\n }\n sub.subscribe();\n return sub;\n }\n\n private resolveMessage(channel: string, message: any): void {\n if (!this.channels$[channel]) {\n return;\n }\n\n this.channels$[channel].next(message);\n }\n}\n","import { Observable, Subject } from 'rxjs';\nimport { OnDestroy } from '@angular/core';\nimport { Storage } from '../storage/new';\nimport { takeUntil } from 'rxjs/operators';\n\nexport type ComponentType = any & OnDestroy;\n\nexport abstract class BaseController<T> {\n protected abstract store: Storage<T>;\n protected destroyed$ = new Subject();\n\n storeData$<K extends keyof T>(keys: K[]): Observable<{[P in K]: T[P]}> {\n return this.store.byKeys$(keys).pipe(takeUntil(this.destroyed$));\n }\n\n dispose(clearData = true): void {\n this.destroyed$.next(true);\n this.destroyed$.complete();\n this.destroyed$ = new Subject();\n if (clearData) {\n this.store.reset();\n }\n }\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { DeviceInfo, DeviceTheme } from '../models/device-info';\nimport { UAParser } from \"ua-parser-js\"\nimport * as FingerPrint from '@fingerprintjs/fingerprintjs';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable({providedIn: 'root'})\nexport class DeviceInfoService {\n constructor(\n @Inject(PLATFORM_ID) protected platform: any\n ) {\n }\n\n async get(): Promise<DeviceInfo> {\n const fp = await FingerPrint.load();\n const fingerprint = await fp.get();\n const parser = new UAParser(window.navigator.userAgent);\n return new DeviceInfo({\n deviceId: fingerprint.visitorId,\n osName: parser.getOS().name,\n osVersion: parser.getOS().version,\n browserName: parser.getBrowser().name,\n browserVersion: parser.getBrowser().version,\n device: null,\n ...(\n isPlatformBrowser(this.platform)\n ? {\n language: window.navigator.language,\n theme: window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n ? DeviceTheme.dark\n : window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches\n ? DeviceTheme.light\n : null,\n }\n : {}\n )\n });\n }\n}\n","import { ModelRelation } from '../models/util';\n\nexport class OldStorageEngineField<T> {\n defaultValue: any;\n\n constructor(\n defaultValue?: any,\n protected model?: ModelRelation<T>\n ) {\n this.defaultValue = defaultValue;\n }\n\n create(value: any): T {\n if (value === null || value === undefined) {\n value = this.defaultValue;\n }\n if (this.model) {\n return this.model.create(value);\n }\n return value;\n }\n\n json(value: T): any {\n if (this.model) {\n this.model.json(value);\n }\n return value;\n }\n}\n\nexport abstract class OldStorageEngine<T> {\n constructor(protected name: string, protected fields: {[Property in keyof T]: OldStorageEngineField<T[Property]>}) {\n }\n\n addField(key: keyof T, field: OldStorageEngineField<T[typeof key]>): void {\n this.fields[key] = field;\n }\n\n save(key: keyof T, value: T[typeof key]): void {\n if (!this.fields[key]) {\n return;\n }\n this.setItem(`${this.name}_${key.toString()}`, this.fields[key].json(value));\n }\n\n get(key: keyof T): T[typeof key] {\n if (!this.fields[key]) {\n return;\n }\n const value = this.getItem(`${this.name}_${key.toString()}`);\n return this.fields[key].create(value);\n }\n\n clear(): void {\n for (const field of Object.keys(this.fields)) {\n this.removeItem(field);\n }\n }\n\n protected abstract getItem(key: string);\n protected abstract setItem(key: string, value: any);\n protected abstract removeItem(key: string);\n}\n","import { OldStorageEngine } from './old-storage-engine';\n\nexport class OldLocalStorageEngine<T> extends OldStorageEngine<T> {\n protected setItem(key: string, value: any) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n protected getItem(key: string): any {\n try {\n return JSON.parse(localStorage.getItem(key));\n } catch (e) {\n return;\n }\n }\n\n protected removeItem(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { StorageEngine } from './storage-engine';\n\nexport class Storage<T> {\n private readonly initial: T;\n private readonly subject: BehaviorSubject<T>;\n protected readonly engine: StorageEngine<Partial<T>>;\n\n get data$(): Observable<T> {\n return this.subject.asObservable().pipe(\n distinctUntilChanged((oldValue, newValue) =>\n Object.keys(newValue).filter(key => newValue[key] !== oldValue[key]).length === 0 &&\n Object.keys(newValue).length === Object.keys(oldValue).length\n )\n );\n }\n\n byKey$<K extends keyof T>(key: K): Observable<T[K]> {\n return this.subject.asObservable().pipe(\n map(data => data[key]),\n distinctUntilChanged(),\n );\n }\n\n byKeys$<K extends keyof T>(keys: K[]): Observable<{[P in K]: T[P]}> {\n return this.subject.asObservable().pipe(\n map(data => keys.reduce((acc, key) => ({\n ...acc,\n [key]: data[key]\n }), {} as {[P in K]: T[P]})),\n distinctUntilChanged((oldValue, newValue) =>\n Object.keys(newValue).filter(key => newValue[key] !== oldValue[key]).length === 0 &&\n Object.keys(newValue).length === Object.keys(oldValue).length\n )\n );\n }\n\n get data(): T {\n return this.subject.getValue();\n }\n\n constructor(initial: Required<T>, engine?: StorageEngine<Partial<T>>) {\n this.initial = initial;\n this.subject = new BehaviorSubject<T>({\n ...initial,\n ...(engine ? engine.getAll() : {}),\n });\n this.engine = engine;\n }\n\n update(data: Partial<T>): void {\n this.subject.next({\n ...this.subject.value,\n ...data,\n });\n if (this.engine) {\n this.engine.save(data);\n }\n }\n\n reset(): void {\n this.subject.next({...this.initial});\n }\n\n mergeWith<M>(data$: Observable<M>, mapper: (M) => Partial<T> = data => data) {\n data$.subscribe(data => this.update(mapper(data)));\n return this;\n }\n}\n","import { BaseModel, ModelRelation } from '../models/util';\n\nexport type StorageEngineType = number | string | boolean | number[] | string[] | BaseModel | BaseModel[] | { [key: string]: any } | { [key: string]: any }[];\nexport type StorageEngineData = { [key: string]: any };\n\nexport class StorageEngineField<T extends StorageEngineType> {\n constructor(protected model?: ModelRelation<T>) {}\n\n create(value: any): T {\n if (this.model) {\n return this.model.create(value);\n }\n return value\n }\n\n json(value: T): any {\n if (this.model) {\n return this.model.json(value);\n }\n return value;\n }\n}\n\nexport abstract class StorageEngine<T extends StorageEngineData> {\n protected readonly name: string;\n protected readonly fields: {[Property in keyof T]: StorageEngineField<T[Property]>};\n\n constructor(name: string, fields: {[Property in keyof T]: StorageEngineField<T[Property]>}) {\n this.name = name;\n this.fields = fields;\n }\n\n save(value: Partial<T>): void {\n for (const key of Object.keys(value)) {\n if (!this.fields[key]) {\n continue;\n }\n this.setItem(`${this.name}_${key}`, this.fields[key].json(value[key]));\n }\n }\n\n getValue<K extends keyof T>(key: K): T[K] {\n const value = this.getItem(`${this.name}_${key.toString()}`);\n return this.fields[key].create(value);\n }\n\n getAll(): T {\n return Object.keys(this.fields).reduce((acc, key) => ({\n ...acc,\n [key]: this.getValue(key)\n }), {}) as T;\n }\n\n clear(): void {\n for (const key of Object.keys(this.fields)) {\n this.removeItem(`${this.name}_${key}`);\n }\n }\n\n protected abstract getItem(key: string);\n protected abstract setItem(key: string, value: any);\n protected abstract removeItem(key: string);\n}\n","import { StorageEngine, StorageEngineData } from './storage-engine';\n\nexport class LocalStorageEngine<T extends StorageEngineData> extends StorageEngine<T> {\n protected setItem(key: string, value: any) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n protected getItem(key: string): any {\n try {\n return JSON.parse(localStorage.getItem(key));\n } catch (e) {\n return;\n }\n }\n\n protected removeItem(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import {\n ɵComponentType as ComponentType,\n ɵDirectiveType as DirectiveType,\n ɵComponentDef as ComponentDef,\n ɵDirectiveDef as DirectiveDef\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nexport interface OnDestroyLike {\n ngOnDestroy(): void;\n [key: string]: any;\n}\n\nexport function componentDestroyed(component: OnDestroyLike): Observable<void> {\n if (!(component as any).__decoratorApplied) {\n throw new Error('Use @UntilDestroy decorator in class');\n }\n\n if (!(component as any).__componentDestroyed$) {\n (component as any).__componentDestroyed$ = new Subject();\n }\n return (component as any).__componentDestroyed$;\n}\n\nexport function UntilDestroy(cmpType: any) {\n const original = cmpType.prototype.ngOnDestroy;\n cmpType.prototype.__decoratorApplied = true;\n cmpType.prototype.ngOnDestroy = function(this: any) {\n console.log('UntilDestroy');\n original.call(this);\n if (this.__componentDestroyed$) {\n this.__componentDestroyed$.next();\n this.__componentDestroyed$.complete();\n delete this.__componentDestroyed$;\n }\n };\n}\n\nfunction getDef<T>(\n type: DirectiveType<T> | ComponentType<T>\n): DirectiveDef<T> | ComponentDef<T> | unknown {\n return (type as ComponentType<T>).ɵcmp || (type as DirectiveType<T>).ɵdir;\n}\n","export function getCookie(name: string): string {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop().split(';').shift();\n }\n return null;\n}\n","export function parseDate(input: string, format: string = 'yyyy-mm-dd'): Date {\n const parts = input.match(/(\\d+)/g);\n let i = 0;\n const result: {\n yyyy?: number,\n mm?: number,\n dd?: number,\n } = {};\n // extract date-part indexes from the format\n format.replace(/(yyyy|dd|mm)/g, (part: string) => {\n result[part] = +parts[i++];\n return '';\n });\n\n return new Date(result.yyyy, result.mm - 1, result.dd);\n}\n","export function isTouchDevice() {\n const prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n const mq = (q) => {\n return window.matchMedia(q).matches;\n };\n\n if (('ontouchstart' in window) || (window as any).DocumentTouch && document instanceof (window as any).DocumentTouch) {\n return true;\n }\n\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\n // https://git.io/vznFH\n const query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n}\n","export function getEnumOptions(enumClass): number[] {\n return Object.keys(enumClass)\n .map(v => enumClass[v])\n .filter(v => isNaN(+v) === false)\n .map(v => +v);\n}\n\n","import { captureException } from '@sentry/angular';\n\nexport function handleError(error, force = false, production = true) {\n if (!(error && (error.status === 0 || error.status === 404)) || (force && error.status !== 0)) {\n captureException(error);\n }\n\n console.error(error);\n}\n","export interface LinkFavicon {\n rel: string;\n sizes?: string;\n href: string;\n type?: string;\n color?: string;\n}\n\nexport function getIconsData(folder: string): LinkFavicon[] {\n return [\n {rel: 'apple-touch-icon', sizes: '180x180', href: `/assets/favicon/${folder}apple-touch-icon.png`},\n {rel: 'icon', type: 'image/png', sizes: '32x32', href: `/assets/favicon/${folder}favicon-32x32.png`},\n {rel: 'icon', type: 'image/png', sizes: '16x16', href: `/assets/favicon/${folder}favicon-16x16.png`},\n {rel: 'shortcut icon', href: `/assets/favicon/${folder}favicon.ico`},\n {rel: 'manifest', href: `/assets/favicon/${folder}site.webmanifest`},\n {rel: 'mask-icon', href: `/assets/favicon/${folder}safari-pinned-tab.svg`, color: '#ff0000'}\n ];\n}\n\nexport function changeFavicons(document: Document, leagueAlias: string): void {\n let folder = '';\n if (leagueAlias === 'ablmoscow') {\n folder = 'abl/';\n }\n const data = getIconsData(folder);\n for (const item of data) {\n const link = document.createElement('link');\n for (const key of Object.keys(item)) {\n link.setAttribute(key, item[key]);\n }\n document.head.appendChild(link);\n }\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function markFormGroupTouched(formGroup: FormGroup) {\n (Object as any).values(formGroup.controls).forEach(control => {\n control.markAsTouched();\n control.markAsDirty();\n\n if (control instanceof FormGroup) {\n markFormGroupTouched(control);\n } else if (control.controls) {\n control.controls.forEach(c => {\n if (c instanceof FormGroup) {\n markFormGroupTouched(c);\n } else {\n c.markAsTouched();\n c.markAsDirty();\n }\n });\n }\n });\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\nimport { debounceTime, delay, map, switchMap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nexport interface CheckEmailServiceInterface {\n checkEmail(value: string, selfCheck: boolean): Observable<boolean>;\n}\n\nexport const minLengthArrayValidator = (minLength: number) => {\n return (c: AbstractControl) => {\n return c.value.length < minLength\n ? {minLengthArray: {valid: false}}\n : null;\n };\n};\n\nexport const validatePhone = (control: AbstractControl) => {\n if (!control.value) {\n return null;\n }\n const value = `${control.value}`.replace(/\\D/gi, '');\n return value.length === 11 ? null : {invalidPhone: {valid: false}};\n};\n\nexport const validateDate = (control: AbstractControl) => {\n const re = /\\d{2}\\.\\d{2}\\.\\d{4}/gi;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidDate: {valid: false}};\n};\n\nexport const validateEmail = (authService: CheckEmailServiceInterface, selfCheck = true, ignore = []) => {\n const subject = of(null).pipe(\n delay(500)\n );\n return (control: AbstractControl) => {\n if (ignore.indexOf(control.value) > -1) {\n return of(null);\n }\n return subject.pipe(\n switchMap(() => authService.checkEmail(control.value, selfCheck).pipe(\n map(valid => valid ? null : {emailTaken: true})\n ))\n );\n };\n};\n\nexport const validateUrl = (control: AbstractControl) => {\n const re = /^(?:http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidUrl: true};\n};\n\nexport function fileSizeValidator(maxFileSize: number): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n };\n}\n","import { Inject, Injectable, Injector, PLATFORM_ID } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { getCookie } from './utils/cookie';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ConfigService } from './services/config.service';\n\n@Injectable()\nexport class HttpCookieInterceptor implements HttpInterceptor {\n private isBrowser = isPlatformBrowser(this.platformId);\n\n constructor(\n private injector: Injector,\n private configService: ConfigService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) {\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (!this.isBrowser) {\n return next.handle(req);\n }\n const apiUrl = this.configService.get('apiUrl');\n if (apiUrl === req.url.substr(0, apiUrl.length)) {\n req = req.clone({withCredentials: true});\n }\n const csrf = getCookie('csrftoken');\n if (csrf) {\n req = req.clone({\n setHeaders: {'X-CSRFToken': csrf}\n });\n }\n return next.handle(req);\n }\n}\n","import { Game } from '../models/game';\nimport { GameInvite } from '../models/game-invite';\nimport { GameUser } from '../models/game-user';\nimport { CentrifugoService } from '../services/centrifugo.service';\nimport { filter, map } from 'rxjs/operators';\nimport { Observable, Subscription } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\nenum GameWebsocketEvents {\n GAME_UPDATED = 'GAME_UPDATED',\n GAME_CLOSED = 'GAME_CLOSED',\n GAME_ARCHIVED = 'GAME_ARCHIVED',\n GAME_DELETED = 'GAME_DELETED',\n GAME_SCORE_UPDATED = 'GAME_SCORE_UPDATED',\n GAME_INVITE_SENT = 'GAME_INVITE_SENT',\n GAME_INVITE_ACCEPTED = 'GAME_INVITE_ACCEPTED',\n GAME_INVITE_DECLINED = 'GAME_INVITE_DECLINED',\n GAME_USER_ADDED = 'GAME_USER_ADDED',\n GAME_USER_DELETED = 'GAME_USER_DELETED',\n GAME_STATISTIC_UPDATED = 'GAME_STATISTIC_UPDATED',\n}\n\ninterface WebsocketEvent {\n action: GameWebsocketEvents;\n data: {[key: string]: any};\n}\n\n@Injectable({providedIn: 'root'})\nexport class GameWebsocket {\n protected subscriptions: {[key: number]: Subscription} = {};\n\n constructor(\n protected centrifugoService: CentrifugoService,\n ) {\n }\n\n onGameUpdated$(gameId: number): Observable<Game> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_UPDATED),\n map(item => new Game(item.data)),\n );\n }\n\n onGameClosed$(gameId: number): Observable<Game> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_CLOSED),\n map(item => new Game(item.data)),\n );\n }\n\n onGameDeleted$(gameId: number): Observable<Game> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_DELETED),\n map(item => new Game(item.data)),\n );\n }\n\n onGameScoreUpdated$(gameId: number): Observable<Game> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_SCORE_UPDATED),\n map(item => new Game(item.data)),\n );\n }\n\n onGameInviteSent(gameId: number): Observable<GameInvite> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_INVITE_SENT),\n map(item => new GameInvite(item.data)),\n );\n }\n\n onGameInviteAccepted(gameId: number): Observable<GameInvite> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_INVITE_ACCEPTED),\n map(item => new GameInvite(item.data)),\n );\n }\n\n onGameInviteDeclined(gameId: number): Observable<GameInvite> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_INVITE_DECLINED),\n map(item => new GameInvite(item.data)),\n );\n }\n\n onGameUserAdded(gameId: number): Observable<GameUser> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_USER_ADDED),\n map(item => new GameUser(item.data)),\n );\n }\n\n onGameUserDeleted(gameId: number): Observable<GameUser> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_USER_DELETED),\n map(item => new GameUser(item.data)),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ConfigService","i1.CentrifugoService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mtgame-core.mjs","sources":["../../../projects/core/src/models/util.ts","../../../projects/core/src/models/file.ts","../../../projects/core/src/models/sport.ts","../../../projects/core/src/models/user-profile.ts","../../../projects/core/src/models/city.ts","../../../projects/core/src/models/basketball-profile.ts","../../../projects/core/src/models/volleyball-profile.ts","../../../projects/core/src/models/hockey-profile.ts","../../../projects/core/src/models/football-profile.ts","../../../projects/core/src/models/handball-profile.ts","../../../projects/core/src/models/rugby-profile.ts","../../../projects/core/src/models/waterpolo-profile.ts","../../../projects/core/src/models/user.ts","../../../projects/core/src/models/team.ts","../../../projects/core/src/models/organization.ts","../../../projects/core/src/models/league.ts","../../../projects/core/src/models/tournament-season.ts","../../../projects/core/src/models/tournament-group.ts","../../../projects/core/src/models/tournament-division.ts","../../../projects/core/src/models/league-field-base-value.ts","../../../projects/core/src/models/league-field-base.ts","../../../projects/core/src/models/league-team-field.ts","../../../projects/core/src/models/tournament-team-field-value.ts","../../../projects/core/src/models/tournament-team.ts","../../../projects/core/src/models/tournament.ts","../../../projects/core/src/models/game-config-base.ts","../../../projects/core/src/models/basketball-game-config.ts","../../../projects/core/src/models/volleyball-game-config.ts","../../../projects/core/src/models/league-court.ts","../../../projects/core/src/models/media-item.ts","../../../projects/core/src/models/hockey-game-config.ts","../../../projects/core/src/models/football-game-config.ts","../../../projects/core/src/models/handball-game-config.ts","../../../projects/core/src/utils/array.ts","../../../projects/core/src/models/playoff.ts","../../../projects/core/src/models/rugby-game-config.ts","../../../projects/core/src/models/waterpolo-game-config.ts","../../../projects/core/src/models/game.ts","../../../projects/core/src/models/team-user.ts","../../../projects/core/src/models/tournament-disqualification.ts","../../../projects/core/src/models/league-player-field.ts","../../../projects/core/src/models/league-player-field-value.ts","../../../projects/core/src/models/league-player.ts","../../../projects/core/src/models/tournament-team-user.ts","../../../projects/core/src/models/base-statistic.ts","../../../projects/core/src/models/basketball-statistic.ts","../../../projects/core/src/models/basketball-game-team-statistic.ts","../../../projects/core/src/models/game-statistic-base.ts","../../../projects/core/src/models/basketball-game-statistic.ts","../../../projects/core/src/models/game-log-base.ts","../../../projects/core/src/models/basketball-game-log.ts","../../../projects/core/src/models/game-user.ts","../../../projects/core/src/models/game-user-limitation.ts","../../../projects/core/src/models/game-user-disqualification.ts","../../../projects/core/src/utils/data.ts","../../../projects/core/src/storage/store.ts","../../../projects/core/src/services/base.service.ts","../../../projects/core/src/services/config.service.ts","../../../projects/core/src/api/game-base-api.ts","../../../projects/core/src/api/basketball-game-api.ts","../../../projects/core/src/models/feedback.ts","../../../projects/core/src/api/feedback-api.ts","../../../projects/core/src/api/file-api.ts","../../../projects/core/src/localization/hockey-penalty-types.ts","../../../projects/core/src/models/hockey-penalty-types.ts","../../../projects/core/src/models/hockey-game-log.ts","../../../projects/core/src/models/hockey-game-statistic.ts","../../../projects/core/src/models/hockey-statistic.ts","../../../projects/core/src/models/hockey-game-team-statistic.ts","../../../projects/core/src/api/hockey-game-api.ts","../../../projects/core/src/models/football-game-log.ts","../../../projects/core/src/models/football-game-statistic.ts","../../../projects/core/src/models/football-statistic.ts","../../../projects/core/src/models/football-game-team-statistic.ts","../../../projects/core/src/api/football-game-api.ts","../../../projects/core/src/models/handball-game-log.ts","../../../projects/core/src/models/handball-game-statistic.ts","../../../projects/core/src/models/handball-statistic.ts","../../../projects/core/src/models/handball-game-team-statistic.ts","../../../projects/core/src/api/handball-game-api.ts","../../../projects/core/src/models/tournament-news.ts","../../../projects/core/src/models/game-timeline-stages.ts","../../../projects/core/src/models/tournament-stage.ts","../../../projects/core/src/models/volleyball-statistic.ts","../../../projects/core/src/models/tournament-stage-team.ts","../../../projects/core/src/models/league-news.ts","../../../projects/core/src/models/tournament-event.ts","../../../projects/core/src/models/league-user.ts","../../../projects/core/src/models/rugby-statistic.ts","../../../projects/core/src/models/achievement.ts","../../../projects/core/src/models/team-achievement.ts","../../../projects/core/src/models/waterpolo-statistic.ts","../../../projects/core/src/models/tournament-round.ts","../../../projects/core/src/api/tournament-api.ts","../../../projects/core/src/models/league-partner.ts","../../../projects/core/src/models/league-banner.ts","../../../projects/core/src/models/league-document.ts","../../../projects/core/src/models/teams-and-users.ts","../../../projects/core/src/models/season-tournament.ts","../../../projects/core/src/api/league-api.ts","../../../projects/core/src/api/league-news-api.ts","../../../projects/core/src/api/league-player-api.ts","../../../projects/core/src/api/media-api.ts","../../../projects/core/src/models/poll.ts","../../../projects/core/src/models/team-invite.ts","../../../projects/core/src/models/game-invite.ts","../../../projects/core/src/models/team-event-type.ts","../../../projects/core/src/localization/team-event-type.ts","../../../projects/core/src/models/team-event.ts","../../../projects/core/src/models/team-event-invite.ts","../../../projects/core/src/models/tournament-team-user-invite.ts","../../../projects/core/src/models/tournament-invite.ts","../../../projects/core/src/models/notification.ts","../../../projects/core/src/models/notification-settings.ts","../../../projects/core/src/api/notification-base-api.ts","../../../projects/core/src/api/notification-api.ts","../../../projects/core/src/api/org-notification-api.ts","../../../projects/core/src/api/reference-api.ts","../../../projects/core/src/models/rugby-game-team-statistic.ts","../../../projects/core/src/models/rugby-game-statistic.ts","../../../projects/core/src/models/rugby-foul-type.ts","../../../projects/core/src/models/rugby-game-log.ts","../../../projects/core/src/api/rugby-game-api.ts","../../../projects/core/src/models/team-invite-external.ts","../../../projects/core/src/models/team-permission.ts","../../../projects/core/src/models/team-access.ts","../../../projects/core/src/api/team-api.ts","../../../projects/core/src/api/team-event-api.ts","../../../projects/core/src/models/tournament-join-team.ts","../../../projects/core/src/api/tournament-join-api.ts","../../../projects/core/src/models/tournament-round-team.ts","../../../projects/core/src/api/tournament-round-api.ts","../../../projects/core/src/api/tournament-season-api.ts","../../../projects/core/src/api/tournament-stage-api.ts","../../../projects/core/src/models/user-access.ts","../../../projects/core/src/models/user-permission.ts","../../../projects/core/src/api/user-api.ts","../../../projects/core/src/models/volleyball-game-team-statistic.ts","../../../projects/core/src/models/volleyball-game-statistic.ts","../../../projects/core/src/models/volleyball-game-log.ts","../../../projects/core/src/api/volleyball-game-api.ts","../../../projects/core/src/models/waterpolo-game-log.ts","../../../projects/core/src/models/waterpolo-game-statistic.ts","../../../projects/core/src/models/waterpolo-game-team-statistic.ts","../../../projects/core/src/api/waterpolo-game-api.ts","../../../projects/core/src/api/public-team-api.ts","../../../projects/core/src/api/public-user-api.ts","../../../projects/core/src/localization/basketball-game-log-types.ts","../../../projects/core/src/localization/basketball-game-sub-log-types.ts","../../../projects/core/src/localization/hockey-game-log-types.ts","../../../projects/core/src/localization/football-game-log-types.ts","../../../projects/core/src/localization/handball-game-log-types.ts","../../../projects/core/src/localization/waterpolo-game-log-types.ts","../../../projects/core/src/localization/overtime-types.ts","../../../projects/core/src/localization/rugby-foul-sanction.ts","../../../projects/core/src/localization/rugby-foul-game-stage.ts","../../../projects/core/src/localization/rugby-game-log-types.ts","../../../projects/core/src/localization/team-user-role.ts","../../../projects/core/src/localization/user-profile.ts","../../../projects/core/src/localization/volleyball-game-log-types.ts","../../../projects/core/src/localization/organization-statuses.ts","../../../projects/core/src/models/device-info.ts","../../../projects/core/src/models/organization-bill.ts","../../../projects/core/src/models/game-bill.ts","../../../projects/core/src/models/league-playlist.ts","../../../projects/core/src/models/organization-tariff.ts","../../../projects/core/src/models/organization-statistic.ts","../../../projects/core/src/models/tournament-join1x1-data.ts","../../../projects/core/src/services/centrifugo.service.ts","../../../projects/core/src/services/base.controller.ts","../../../projects/core/src/services/device-info.service.ts","../../../projects/core/src/storage/old-storage-engine.ts","../../../projects/core/src/storage/old-local-storage-engine.ts","../../../projects/core/src/storage/new.ts","../../../projects/core/src/storage/storage-engine.ts","../../../projects/core/src/storage/local-storage-engine.ts","../../../projects/core/src/utils/component-destroyed.ts","../../../projects/core/src/utils/cookie.ts","../../../projects/core/src/utils/date.ts","../../../projects/core/src/utils/device.ts","../../../projects/core/src/utils/enum.ts","../../../projects/core/src/utils/errors.ts","../../../projects/core/src/utils/favicon.ts","../../../projects/core/src/utils/form.ts","../../../projects/core/src/utils/validators.ts","../../../projects/core/src/http-cookie.interceptor.ts","../../../projects/core/src/websocket/game.websocket.ts","../../../projects/core/src/mtgame-core.ts"],"sourcesContent":["export abstract class BaseModel {\n constructor(data?: any, fields?: string[]) {\n }\n\n json(fields?: any[]): { [key: string]: any } {\n throw new Error('Add decorator @Model')\n }\n\n update<T>(data: {[Property in keyof T]?: T[Property]}): T {\n return Object.assign(Object.create(this), this, data) as T;\n }\n}\n\nexport function toJson(data: any, fields?: any[]): object {\n const jsonData = {};\n const keys = fields && fields.length > 0 ? fields : Object.keys(data);\n for (const key of keys) {\n let value = null;\n let relationKeys = null;\n let relationKey = null;\n let backKey = null;\n if (key instanceof Object) {\n [relationKey, relationKeys] = Object.entries(key)[0];\n backKey = toUnderscore(relationKey);\n value = data[relationKey];\n } else {\n backKey = toUnderscore(key);\n value = data[key];\n }\n if (Array.isArray(value)) {\n jsonData[backKey] = value.map(v => toJson(v, relationKeys));\n } else if (value instanceof BaseModel) {\n jsonData[backKey] = value.json(relationKeys);\n } else if (value instanceof Date) {\n jsonData[backKey] = value.toISOString();\n } else if (!(value instanceof Object)) {\n jsonData[backKey] = value;\n }\n }\n return jsonData;\n}\n\nexport interface ModelRelation<T> {\n create(data: any): T;\n json(data: T): any;\n}\n\nexport function listField<R, T extends ModelRelation<R>>(relation: ModelRelation<R>): ModelRelation<R[]> {\n return {\n create: (data: any[]) => (data || []).map(item => relation.create(item)),\n json: (data: any[]) => (data || []).map(item => relation.json(item)),\n };\n}\n\nexport function nestedModel<T extends BaseModel>(model: new(data, fields) => T, fields?: string[]): ModelRelation<T> {\n return {\n create: (data: object): T => data ? new model(data, fields) as T : null,\n json: (data: T): object => data ? data.json() : null,\n };\n}\n\nexport function enumField(enumClass: any) {\n return {\n create: (value) => {\n if (value === null || value === undefined) {\n return value;\n }\n if (isNaN(+value)) {\n return enumClass[value];\n } else {\n return value;\n }\n },\n json: (value) => {\n if (value === null || value === undefined) {\n return value;\n }\n if (isNaN(+value)) {\n return value;\n } else {\n return enumClass[value];\n }\n }\n };\n}\n\nexport const dateTimeField: ModelRelation<Date> = {\n create: (data: string): Date => data ? new Date(data) : null,\n json: (data: Date): string => data ? data.toISOString() : null,\n};\n\nexport const dateField: ModelRelation<Date> = {\n create: (data: string): Date => data ? new Date(data) : null,\n json: (data: Date): string => data\n ? new Date(Date.UTC(\n data.getFullYear(),\n data.getMonth(),\n data.getDate(),\n )).toISOString().slice(0, 10)\n : null,\n};\n\nexport function toCamelCase(key: string): string {\n return key.replace(/([a-z])_([a-z])/g, g => g[0] + g[2].toUpperCase());\n}\n\nexport function toUnderscore(key: string): string {\n return key.replace(/.([A-Z])/g, g => `${g[0]}_${g[1]}`).toLowerCase();\n}\n\nexport function Model<T>(config: {\n relation?: {[key: string]: ModelRelation<any>},\n} = {}) {\n const relations = config.relation || {};\n\n return (target: typeof BaseModel) => {\n return new Proxy(target, {\n construct(cls: any, argArray: any[]) {\n const instance = new cls();\n const data = argArray[0] || {};\n const fields = argArray[1] || [];\n for (const key of Object.keys(data)) {\n if (fields.length > 0 && !fields.includes(key)) {\n continue;\n }\n const modelKey = toCamelCase(key);\n const relation = relations[modelKey];\n if (relation) {\n instance[modelKey] = relation.create(data[key]);\n } else {\n const descriptor = Object.getOwnPropertyDescriptor(instance.constructor.prototype, modelKey);\n if (!descriptor || descriptor.set) {\n instance[modelKey] = data[key];\n }\n }\n }\n\n Object.defineProperty(instance, 'json', {\n value() {\n const json = {};\n for (const key of Object.getOwnPropertyNames(this)) {\n const relation = relations[key];\n if (this[key] instanceof Object && !relation) {\n continue;\n }\n const backKey = toUnderscore(key);\n if (relation) {\n json[backKey] = relation.json(this[key]);\n } else {\n json[backKey] = this[key];\n }\n }\n return json;\n },\n writable: false,\n });\n\n return instance;\n }\n });\n };\n}\n","import { Model, enumField, dateTimeField, BaseModel } from './util';\n\nexport enum FileEngine {\n django = 1,\n s3\n}\n\n@Model({\n relation: {\n engine: enumField(FileEngine),\n createdAt: dateTimeField,\n }\n})\nexport class File extends BaseModel {\n id: number;\n name: string;\n _originalName: string;\n _path: string;\n resizedPath: string;\n mimeType: string;\n size: number;\n engine: FileEngine;\n createdAt: Date;\n\n set originalName(name: string) {\n this._originalName = name;\n }\n\n get originalName(): string {\n return this._originalName || this.name;\n }\n\n set path(filePath: string) {\n this._path = filePath;\n }\n\n get path(): string {\n return this.resizedPath || this._path;\n }\n}\n","import { Model, BaseModel } from './util';\n\nexport enum SportTypes {\n basketball = 1,\n volleyball = 2,\n classic_basketball = 3,\n streetball = 4,\n classic_volleyball = 5,\n beach_volleyball = 6,\n hockey = 7,\n ice_hockey = 8,\n ball_hockey = 9,\n football = 10,\n classic_football = 11,\n mini_football = 12,\n handball = 13,\n handball_classic = 14,\n rugby = 15,\n rugby7 = 16,\n rugby15 = 17,\n basketball_1x1 = 18,\n waterpolo = 19,\n classic_waterpolo = 20,\n mini_waterpolo = 21,\n media_basket = 22\n}\n\n@Model()\nexport class Sport extends BaseModel {\n id: number;\n name: string;\n parentId: number;\n subSports: Sport[];\n\n isBasketball() {\n return this.id === SportTypes.basketball || this.parentId === SportTypes.basketball;\n }\n\n isClassicBasketball() {\n return this.id === SportTypes.classic_basketball;\n }\n\n isStreetball() {\n return this.id === SportTypes.streetball;\n }\n\n isBasketball1x1() {\n return this.id === SportTypes.basketball_1x1;\n }\n\n isMediaBasket() {\n return this.id === SportTypes.media_basket;\n }\n\n isVolleyball() {\n return this.id === SportTypes.volleyball || this.parentId === SportTypes.volleyball;\n }\n\n isClassicVolleyball() {\n return this.id === SportTypes.classic_volleyball;\n }\n\n isBeachVolleyball() {\n return this.id === SportTypes.beach_volleyball;\n }\n\n isHockey(): boolean {\n return this.id === SportTypes.hockey || this.parentId === SportTypes.hockey;\n }\n\n isIceHockey(): boolean {\n return this.id === SportTypes.ice_hockey;\n }\n\n isBallHockey(): boolean {\n return this.id === SportTypes.ball_hockey;\n }\n\n isFootball() {\n return this.id === SportTypes.football || this.parentId === SportTypes.football;\n }\n\n isClassicFootball() {\n return this.id === SportTypes.classic_football;\n }\n\n isMiniFootball() {\n return this.id === SportTypes.mini_football;\n }\n\n isHandball() {\n return this.id === SportTypes.handball || this.parentId === SportTypes.handball;\n }\n\n isHandballClassic() {\n return this.id === SportTypes.handball_classic;\n }\n\n isRugby() {\n return this.id === SportTypes.rugby || this.parentId === SportTypes.rugby;\n }\n\n isRugby15() {\n return this.id === SportTypes.rugby15;\n }\n\n isRugby7() {\n return this.id === SportTypes.rugby7;\n }\n\n isWaterpolo() {\n return this.id === SportTypes.waterpolo || this.parentId === SportTypes.waterpolo;\n }\n\n isClassicWaterpolo() {\n return this.id === SportTypes.classic_waterpolo;\n }\n\n isMiniWaterpolo() {\n return this.id === SportTypes.mini_waterpolo;\n }\n}\n","import { BaseModel, Model } from './util';\n\n@Model()\nexport class UserProfile extends BaseModel {\n id: number;\n userId: number;\n height: number;\n weight: number;\n}\n","import { BaseModel, Model } from './util';\n\n@Model()\nexport class City extends BaseModel {\n id: number;\n name: string;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameBasketballPosition {\n point_guard = 1,\n shooting_guard,\n small_forward,\n power_forward,\n center\n}\n\nexport enum WorkHand {\n left = 1,\n right\n}\n\n@Model({\n relation: {\n position: enumField(GameBasketballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class BasketballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameBasketballPosition;\n workHand: WorkHand;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameVolleyballPosition {\n setter = 1,\n libero,\n middle_player,\n receiver_attacker,\n dioganal\n}\n\nexport enum VolleyballWorkHand {\n left = 1,\n right\n}\n\n@Model({\n relation: {\n position: enumField(GameVolleyballPosition),\n workHand: enumField(VolleyballWorkHand)\n }\n})\nexport class VolleyballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameVolleyballPosition;\n workHand: VolleyballWorkHand;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameHockeyPosition {\n defensemen = 1,\n forward,\n goaltender\n}\n\nexport enum HockeyWorkHand {\n left = 1,\n right\n}\n\n@Model({\n relation: {\n position: enumField(GameHockeyPosition),\n workHand: enumField(HockeyWorkHand)\n }\n})\nexport class HockeyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHockeyPosition;\n workHand: HockeyWorkHand;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameFootballPosition {\n defensemen = 1,\n midfielder,\n forward,\n goalkeeper\n}\n\nexport enum FootballWorkFoot {\n left = 1,\n right,\n both\n}\n\n@Model({\n relation: {\n position: enumField(GameFootballPosition),\n workFoot: enumField(FootballWorkFoot)\n }\n})\nexport class FootballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameFootballPosition;\n workFoot: FootballWorkFoot;\n}\n","import { BaseModel, enumField, Model } from './util';\nimport { WorkHand } from './basketball-profile';\n\nexport enum GameHandballPosition {\n goalkeeper = 1,\n winger,\n pivot,\n centre_back,\n fullback\n}\n\n@Model({\n relation: {\n position: enumField(GameHandballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class HandballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHandballPosition;\n workHand: WorkHand;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameRugbyPosition {\n front_line = 1,\n second_line,\n back_line,\n halfback,\n three_quarter,\n fullback,\n}\n\n@Model({\n relation: {\n position: enumField(GameRugbyPosition),\n }\n})\nexport class RugbyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameRugbyPosition;\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum GameWaterpoloPosition {\n goalkeeper = 1,\n defensemen,\n center_forward,\n mobile_forward\n}\n\nexport enum WaterpoloWorkHand {\n left = 1,\n right\n}\n\n@Model({\n relation: {\n position: enumField(GameWaterpoloPosition),\n workHand: enumField(WaterpoloWorkHand)\n }\n})\nexport class WaterpoloProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameWaterpoloPosition;\n workHand: WaterpoloWorkHand;\n}\n","import { BaseModel, dateField, enumField, Model, nestedModel } from './util';\nimport { UserProfile } from './user-profile';\nimport { File } from './file';\nimport { City } from './city';\nimport { BasketballProfile } from './basketball-profile';\nimport { VolleyballProfile } from './volleyball-profile';\nimport { HockeyProfile } from './hockey-profile';\nimport { FootballProfile } from './football-profile';\nimport { HandballProfile } from './handball-profile';\nimport { RugbyProfile } from './rugby-profile';\nimport { WaterpoloProfile } from './waterpolo-profile';\n\nexport enum UserGender {\n male = 'male',\n female = 'female',\n}\n\n@Model({\n relation: {\n birthDate: dateField,\n photo: nestedModel(File),\n profile: nestedModel(UserProfile),\n basketballProfile: nestedModel(BasketballProfile),\n volleyballProfile: nestedModel(VolleyballProfile),\n hockeyProfile: nestedModel(HockeyProfile),\n footballProfile: nestedModel(FootballProfile),\n handballProfile: nestedModel(HandballProfile),\n rugbyProfile: nestedModel(RugbyProfile),\n waterpoloProfile: nestedModel(WaterpoloProfile),\n city: nestedModel(City),\n gender: enumField(UserGender),\n }\n})\nexport class User extends BaseModel {\n id: number;\n lastName: string;\n firstName: string;\n middleName: string;\n email: string;\n phone: string;\n birthDate: Date;\n profile: UserProfile;\n basketballProfile: BasketballProfile;\n volleyballProfile: VolleyballProfile;\n hockeyProfile: HockeyProfile;\n footballProfile: FootballProfile;\n handballProfile: HandballProfile;\n rugbyProfile: RugbyProfile;\n waterpoloProfile: WaterpoloProfile;\n photo: File;\n wizards: string[];\n city: City;\n gender: UserGender;\n isActive: boolean;\n uniqueCode: string;\n createdByLeagueId: number;\n\n get fullName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (365 * 86400 * 1000));\n }\n}\n","import { Model, BaseModel, dateField, nestedModel } from './util';\nimport { File } from './file';\nimport { Sport } from './sport';\nimport { User } from './user';\nimport { City } from './city';\n\n@Model({\n relation: {\n sport: nestedModel(Sport),\n logo: nestedModel(File),\n owner: nestedModel(User),\n city: nestedModel(City),\n closestGameDatetime: dateField,\n }\n})\nexport class Team extends BaseModel {\n id: number;\n name: string;\n sport: Sport;\n logo: File;\n owner: User;\n city: City;\n usersCount: number;\n wonGamesCount: number;\n gamesCount: number;\n scoreSum: number;\n closestGameDatetime: Date;\n createdByLeagueId: number;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n if (this.sport.isHandball()) {\n classList.push('empty-logo-handball');\n }\n if (this.sport.isRugby()) {\n classList.push('empty-logo-rugby');\n }\n if (this.sport.isWaterpolo()) {\n classList.push('empty-logo-waterpolo');\n }\n return classList.join(' ');\n }\n}\n","import { BaseModel, Model, enumField, nestedModel } from './util';\nimport { User } from './user';\n\n\nexport enum OrganizationStatuses {\n active = 1,\n blocked,\n not_confirmed\n}\n\n@Model({\n relation: {\n owner: nestedModel(User),\n status: enumField(OrganizationStatuses)\n }\n})\nexport class Organization extends BaseModel {\n id: number;\n ownerId: number;\n owner: User;\n status: OrganizationStatuses;\n name: string;\n phone: string;\n email: string;\n unpaidBillsSum: number;\n unpaidGameBillsSum: number;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { Organization } from './organization';\nimport { File } from './file';\nimport { Sport } from './sport';\n\n@Model({\n relation: {\n organization: nestedModel(Organization),\n logo: nestedModel(File),\n cover: nestedModel(File),\n coverMobile: nestedModel(File),\n sport: nestedModel(Sport),\n }\n})\nexport class League extends BaseModel {\n id: number;\n logo: File;\n contactEmail: string;\n contactPhone: string;\n readonly name: string;\n alias: string;\n domain: string;\n sport: Sport;\n description: string;\n socialLinks: string[];\n links: string[];\n organization: Organization;\n tournamentsCount: number;\n documentsCount: number;\n closestGameDatetime: string;\n cover: File;\n coverMobile: File;\n about: string;\n\n get vkLink(): string {\n return this.socialLinks.find(link => link.indexOf('vk.com/') > -1);\n }\n\n get fbLink(): string {\n return this.socialLinks.find(link => link.indexOf('facebook.com/') > -1);\n }\n\n get instaLink(): string {\n return this.socialLinks.find(link => link.indexOf('instagram.com/') > -1);\n }\n\n get youtubeLink(): string {\n return this.socialLinks.find(link => link.indexOf('youtube.com/') > -1);\n }\n\n get telegramLink(): string {\n return this.socialLinks.find(link =>\n link.substr(0, 13) === 'https://t.me/' ||\n link.substr(0, 17) === 'https://www.t.me/'\n );\n }\n\n get tiktokLink(): string {\n return this.socialLinks.find(link => link.indexOf('tiktok.com/') > -1);\n }\n\n checkRuDomain(): boolean {\n const domainSplit = this.domain.split('.');\n return domainSplit[(domainSplit.length - 1)] === 'ru';\n }\n}\n","import { BaseModel, Model, enumField, dateField, nestedModel } from './util';\nimport { File } from './file';\n\nexport enum TournamentSeasonStatuses {\n open,\n in_progress,\n closed,\n}\n\n@Model({\n relation: {\n logo: nestedModel(File),\n cover: nestedModel(File),\n previewImage: nestedModel(File),\n status: enumField(TournamentSeasonStatuses),\n startDate: dateField,\n closedDate: dateField,\n }\n})\nexport class TournamentSeason extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n previewImage: File;\n status: TournamentSeasonStatuses;\n startDate: Date;\n closedDate: Date;\n}\n","import { Model, BaseModel } from './util';\nimport { TournamentTeam } from './tournament-team';\n\n@Model()\nexport class TournamentGroup extends BaseModel {\n id: number;\n name: string;\n sort: number;\n tournamentStageId: number;\n tournamentRoundId: number;\n divisionId: number;\n teams: TournamentTeam[];\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n cover: nestedModel(File),\n }\n})\nexport class TournamentDivision extends BaseModel {\n id: number;\n name: string;\n cover: File;\n}\n","import { BaseModel } from './util';\nimport { File } from './file';\n\nexport class LeagueFieldBaseValue extends BaseModel {\n id: number;\n value: string;\n file: File;\n}\n","import { BaseModel } from './util';\n\nexport enum LeagueFieldTypes {\n text = 1,\n select,\n file,\n}\n\nexport class LeagueFieldBase extends BaseModel {\n private _variantsMapping = {};\n private _variants = [];\n\n id: number;\n leagueId: number;\n name: string;\n type: LeagueFieldTypes;\n isMultiple: boolean;\n\n set variants(value: { uuid: string, name: string }[]) {\n this._variants = value;\n this._variantsMapping = value.reduce((acc, item) => ({\n ...acc,\n [item.uuid]: item.name\n }), {});\n }\n\n get variants(): {uuid: string, name: string}[] {\n return this._variants;\n }\n\n getName(uuid: string): string {\n return this._variantsMapping[uuid];\n }\n}\n","import { LeagueFieldBase, LeagueFieldTypes } from './league-field-base';\nimport { enumField, Model } from './util';\n\n@Model({\n relation: {\n type: enumField(LeagueFieldTypes)\n }\n})\nexport class LeagueTeamField extends LeagueFieldBase {\n}\n","import { LeagueFieldBaseValue } from './league-field-base-value';\nimport { Model, nestedModel } from './util';\nimport { File } from './file';\nimport { LeagueTeamField } from './league-team-field';\n\n@Model({\n relation: {\n file: nestedModel(File),\n leagueTeamField: nestedModel(LeagueTeamField),\n }\n})\nexport class TournamentTeamFieldValue extends LeagueFieldBaseValue {\n leagueTeamFieldId: number;\n leagueTeamField: LeagueTeamField;\n}\n","import { Model, BaseModel, nestedModel, listField } from './util';\nimport { Team } from './team';\nimport { TournamentGroup } from './tournament-group';\nimport { File } from './file';\nimport { TournamentDivision } from './tournament-division';\nimport { TournamentTeamFieldValue } from './tournament-team-field-value';\n\n@Model()\nexport class TeamAdditionalData extends BaseModel {\n nickname: string;\n color: string;\n}\n\n@Model({\n relation: {\n logo: nestedModel(File),\n teamPhoto: nestedModel(File),\n teamUniform: nestedModel(File),\n team: nestedModel(Team),\n group: nestedModel(TournamentGroup),\n division: nestedModel(TournamentDivision),\n additionalData: nestedModel(TeamAdditionalData),\n fieldValues: listField(nestedModel(TournamentTeamFieldValue)),\n }\n})\nexport class TournamentTeam extends BaseModel {\n id: number;\n name: string;\n logo: File;\n teamPhoto: File;\n teamUniform: File;\n teamId: number;\n tournamentId: number;\n team: Team;\n group: TournamentGroup;\n division: TournamentDivision;\n additionalData: TeamAdditionalData;\n finalStanding: number;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n lastGamesCount: number;\n lastGamesWon: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n points: number;\n mtPoints: number;\n usersCount: number;\n notificationsCount: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n fieldValues: TournamentTeamFieldValue[];\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n}\n","import { BaseModel, enumField, Model, dateTimeField, nestedModel } from './util';\nimport { City } from './city';\nimport { File } from './file';\nimport { League } from './league';\nimport { Sport } from './sport';\nimport { Team } from './team';\nimport { TournamentSeason } from './tournament-season';\nimport { TournamentTeam } from './tournament-team';\n\nexport enum TournamentTypes {\n group = 'group',\n elimination = 'elimination',\n fiba = 'fiba'\n}\n\nexport enum TournamentStatuses {\n open,\n in_progress,\n closed,\n}\n\nexport enum TournamentGender {\n male= 1,\n female,\n all\n}\n\nexport enum BasketballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum VolleyballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum RugbyStatisticTypes {\n light = 1,\n standard,\n}\n\nexport enum GameTimeTypes {\n clean = 1,\n dirty,\n}\n\nexport enum OvertimeTypes {\n to_score_total = 1,\n to_score_diff,\n time,\n without_overtime,\n to_first_goal,\n to_first_goal_and_bullitts,\n bullitts,\n penalties,\n time_and_penalties\n}\n\n\nexport enum TimerTypes {\n backward = 1,\n forward,\n}\n\n@Model({\n relation: {\n type: enumField(TournamentTypes),\n gender: enumField(TournamentGender),\n basketballStatisticType: enumField(BasketballStatisticTypes),\n volleyballStatisticType: enumField(VolleyballStatisticTypes),\n rugbyStatisticType: enumField(RugbyStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n overtimeType: enumField(OvertimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class TournamentSettings extends BaseModel {\n id: number;\n gender: TournamentGender;\n birthYearFrom: number;\n birthYearTo: number;\n maxTeamPlayers: number;\n maxGamePlayers: number;\n type: TournamentTypes;\n toursCount: number;\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n gameType: string;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n gameUpToScore: number;\n volleyballScoreInSet: number;\n volleyballScoreInLastSet: number;\n manageTeamApplication: boolean;\n recruitmentIsOpen: boolean;\n transferIsOpen: boolean;\n basketballStatisticType: BasketballStatisticTypes;\n volleyballStatisticType: VolleyballStatisticTypes;\n rugbyStatisticType: RugbyStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n withResultTable: boolean;\n freeSubstituteEnabled: boolean;\n bonusPointsEnabled: boolean;\n substituteManageEnabled: boolean;\n minorPenaltyTime: number;\n majorPenaltyTime: number;\n misconductPenaltyTime: number;\n gameMisconductPenaltyTime: number;\n timerType: TimerTypes;\n hideOnLeagueMainPage: boolean;\n\n get genderTitle(): string {\n const yearDiff = new Date().getFullYear() - this.birthYearFrom;\n if (this.gender === TournamentGender.male) {\n if (yearDiff < 15) {\n return 'Мальчики';\n }\n if (yearDiff < 21) {\n return 'Юноши';\n }\n return 'Мужчины';\n }\n if (this.gender === TournamentGender.female) {\n if (yearDiff < 15) {\n return 'Девочки';\n }\n if (yearDiff < 21) {\n return 'Девушки';\n }\n return 'Женщины';\n }\n return 'Смешанный';\n }\n}\n\n@Model({\n relation: {\n logo: nestedModel(File),\n cover: nestedModel(File),\n coverMobile: nestedModel(File),\n previewImage: nestedModel(File),\n city: nestedModel(City),\n sport: nestedModel(Sport),\n regulationFile: nestedModel(File),\n settings: nestedModel(TournamentSettings),\n date: dateTimeField,\n league: nestedModel(League),\n status: enumField(TournamentStatuses),\n teamWinner: nestedModel(TournamentTeam, ['id', 'teamId', 'tournamentId', 'name', 'logo', 'team', 'points']),\n teamSecond: nestedModel(TournamentTeam, ['id', 'teamId', 'tournamentId', 'name', 'logo', 'team', 'points']),\n teamThird: nestedModel(TournamentTeam, ['id', 'teamId', 'tournamentId', 'name', 'logo', 'team', 'points']),\n season: nestedModel(TournamentSeason),\n }\n})\nexport class Tournament extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n coverMobile: File;\n previewImage: File;\n city: City;\n sport: Sport;\n location: string;\n description: string;\n date: Date;\n price: number;\n regulationFiles: File[];\n settings: TournamentSettings;\n league: League;\n teamsCount: number;\n closestGameDatetime: string;\n status: TournamentStatuses;\n teamWinner: TournamentTeam;\n teamSecond: TournamentTeam;\n teamThird: TournamentTeam;\n season: TournamentSeason;\n seasonId: number;\n gamePrice: number;\n seasonTournamentId: number;\n leagueId: number;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n if (this.sport.isHandball()) {\n classList.push('empty-logo-handball');\n }\n if (this.sport.isRugby()) {\n classList.push('empty-logo-rugby');\n }\n if (this.sport.isWaterpolo()) {\n classList.push('empty-logo-waterpolo');\n }\n return classList.join(' ');\n }\n}\n","import { BaseModel } from './util';\n\nexport abstract class GameConfigBase extends BaseModel {}\n","import { Model, enumField } from './util';\nimport { BasketballStatisticTypes, GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n statisticType: enumField(BasketballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class BasketballGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n gameUpToScore: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n statisticType: BasketballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n timerType: TimerTypes;\n}\n","import { Model, enumField } from './util';\nimport { VolleyballStatisticTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\nexport enum VolleyballGameTypes {\n best_of_five = 1,\n best_of_three\n}\n\n@Model({\n relation: {\n gameType: enumField(VolleyballGameTypes),\n statisticType: enumField(VolleyballStatisticTypes),\n }\n})\nexport class VolleyballGameConfig extends GameConfigBase {\n gameType: VolleyballGameTypes;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n scoreInSet: number;\n scoreInLastSet: number;\n statisticType: VolleyballStatisticTypes;\n liberoUserIds: number[];\n\n get setsCount(): number {\n return this.gameType === VolleyballGameTypes.best_of_three ? 3 : 5;\n }\n\n getSetMaxScore(set: number) {\n return set === this.setsCount ? this.scoreInLastSet : this.scoreInSet;\n }\n}\n","import { Model, BaseModel } from './util';\n\n@Model()\nexport class LeagueCourt extends BaseModel {\n id: number;\n name: string;\n address: string;\n leagueId: number;\n activeGamesCount: number;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n originalPhoto: nestedModel(File),\n listPhoto: nestedModel(File),\n detailPhoto: nestedModel(File),\n videoPreview: nestedModel(File),\n }\n})\nexport class MediaItem extends BaseModel {\n id: number;\n originalPhoto: File;\n listPhoto: File;\n detailPhoto: File;\n gameId: number;\n tournamentId: number;\n videoUrl: string;\n videoPreview: File;\n isLive: boolean;\n\n get isVideo(): boolean {\n return Boolean(this.videoUrl);\n }\n}\n","import { Model, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class HockeyGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n minorPenaltyTime: number;\n majorPenaltyTime: number;\n misconductPenaltyTime: number;\n gameMisconductPenaltyTime: number;\n\n get overtimePeriod(): number {\n return this.periodsCount + 1;\n }\n\n get bullitsPeriod(): number {\n return this.periodsCount + 2;\n }\n\n get playoffBullitsPeriod(): number {\n return this.periodsCount + 3;\n }\n}\n\n","import { Model, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class FootballGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimePeriods: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteCount: number;\n freeSubstituteEnabled: boolean;\n substituteManageEnabled: boolean;\n\n get penaltyPeriod(): number {\n if (this.overtimeType !== OvertimeTypes.time_and_penalties) {\n return +this.periodsCount + 1;\n }\n return +this.periodsCount + this.overtimePeriods + 1;\n }\n}\n","import { Model, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class HandballGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n}\n","export function generateArray(length: number): number[] {\n if (+length <= 0) {\n return [];\n }\n return Array.apply(null, Array(length)).map((_, i) => i + 1);\n}\n\nexport function getArrayChunks(array: any[], length: number): any[][] {\n const chunks = [];\n const chunkLength = Math.ceil(array.length / length);\n if (chunkLength === 0) {\n return [array];\n }\n for (let i = 0; i < chunkLength; i++) {\n chunks.push(array.slice(i * length, (i + 1) * length));\n }\n return chunks;\n}\n","import { Model, BaseModel, enumField, nestedModel } from './util';\nimport { generateArray } from '../utils/array';\n\nexport enum PlayoffTypes {\n double_elimination = 'double_elimination',\n elimination = 'elimination'\n}\n\n@Model({\n relation: {\n type: enumField(PlayoffTypes)\n }\n})\nexport class PlayoffSettings extends BaseModel {\n rounds: number;\n finalRounds: number;\n thirdPlaceRounds: number;\n teamsCount: number;\n type: PlayoffTypes;\n minPlayerGamesCount: number;\n minPlayerTime: number;\n}\n\n@Model({\n relation: {\n settings: nestedModel(PlayoffSettings)\n }\n})\nexport class Playoff extends BaseModel {\n id: number;\n name: string;\n settings: PlayoffSettings;\n tournamentId: number;\n tournamentStageId: number;\n isOfficial: boolean;\n tournamentRoundId: number;\n divisionId: number;\n winnerPlace: number;\n private stages: {title: string, value: number}[] = [];\n\n get stagesCount(): number {\n return Math.log(this.settings.teamsCount) / Math.log(2);\n }\n\n getPlayoffStages() {\n if (this.stages.length === 0 && this.settings.teamsCount) {\n const stagesCount = Math.log(this.settings.teamsCount) / Math.log(2);\n this.stages = generateArray(stagesCount).map(stage => {\n const playoffStage = this.settings.teamsCount / 2 ** stage;\n let title = '';\n if (playoffStage === 1) {\n if (this.winnerPlace > 1) {\n title = `${this.winnerPlace} место`;\n }\n title = 'Финал';\n } else {\n title = `1 / ${playoffStage}`;\n }\n return {\n value: stage,\n title\n };\n });\n }\n return this.stages;\n }\n}\n","import { enumField, Model } from './util';\nimport { GameTimeTypes, OvertimeTypes, RugbyStatisticTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n statisticType: enumField(RugbyStatisticTypes),\n }\n})\nexport class RugbyGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimePeriods: number;\n maxGamePlayers: number;\n gameTimeType: GameTimeTypes;\n substituteCount: number;\n freeSubstituteEnabled: boolean;\n statisticType: RugbyStatisticTypes;\n\n get penaltyPeriod(): number {\n if (this.overtimeType !== OvertimeTypes.time_and_penalties) {\n return +this.periodsCount + 1;\n }\n return +this.periodsCount + this.overtimePeriods + 1;\n }\n}\n\n","import { Model, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\nimport { GameConfigBase } from './game-config-base';\n\n@Model({\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class WaterpoloGameConfig extends GameConfigBase {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n shotClockEnabled: boolean;\n\n get overtimePeriod(): number {\n return this.periodsCount + 1;\n }\n\n get bullitsPeriod(): number {\n return this.periodsCount + 2;\n }\n\n get playoffBullitsPeriod(): number {\n return this.periodsCount + 3;\n }\n}\n\n","import { Model, BaseModel, dateTimeField, enumField, listField, nestedModel } from './util';\nimport { Team } from './team';\nimport { BasketballGameConfig } from './basketball-game-config';\nimport { VolleyballGameConfig } from './volleyball-game-config';\nimport { LeagueCourt } from './league-court';\nimport { MediaItem } from './media-item';\nimport { HockeyGameConfig } from './hockey-game-config';\nimport { Tournament } from './tournament';\nimport { FootballGameConfig } from './football-game-config';\nimport { HandballGameConfig } from './handball-game-config';\nimport { Playoff } from './playoff';\nimport { TournamentGroup } from './tournament-group';\nimport { RugbyGameConfig } from './rugby-game-config';\nimport { WaterpoloGameConfig } from './waterpolo-game-config';\nimport { TournamentTeam } from './tournament-team';\nimport { Sport } from './sport';\n\nexport enum GameStatuses {\n open = 1,\n in_progress,\n closed,\n archived,\n draft\n}\n\nexport enum GameResultTypes {\n team_won = 1,\n competitor_team_won,\n team_technical_defeat,\n competitor_team_technical_defeat,\n draw\n}\n\nexport type ScoreByPeriod = {[key: string]: [number, number]};\n\n@Model()\nexport class GameAdditionalData extends BaseModel {\n teamBet: number;\n competitorTeamBet: number;\n betLink: string;\n}\n\n@Model({\n relation: {\n status: enumField(GameStatuses),\n team: nestedModel(Team),\n tournamentTeam: nestedModel(TournamentTeam, ['id', 'name', 'logo', 'additional_data']),\n competitorTeam: nestedModel(Team),\n competitorTournamentTeam: nestedModel(TournamentTeam, ['id', 'name', 'logo', 'additional_data']),\n datetime: dateTimeField,\n resultType: enumField(GameResultTypes),\n basketballGameConfig: nestedModel(BasketballGameConfig),\n volleyballGameConfig: nestedModel(VolleyballGameConfig),\n hockeyGameConfig: nestedModel(HockeyGameConfig),\n footballGameConfig: nestedModel(FootballGameConfig),\n handballGameConfig: nestedModel(HandballGameConfig),\n rugbyGameConfig: nestedModel(RugbyGameConfig),\n waterpoloGameConfig: nestedModel(WaterpoloGameConfig),\n tournamentPlayoff: nestedModel(Playoff),\n tournamentCourt: nestedModel(LeagueCourt),\n media: listField(nestedModel(MediaItem)),\n tournament: nestedModel(Tournament),\n tournamentGroup: nestedModel(TournamentGroup),\n additionalData: nestedModel(GameAdditionalData),\n }\n})\nexport class Game extends BaseModel {\n private _basketballGameConfig: BasketballGameConfig;\n private _volleyballGameConfig: VolleyballGameConfig;\n private _hockeyGameConfig: HockeyGameConfig;\n private _footballGameConfig: FootballGameConfig;\n private _handballGameConfig: HandballGameConfig;\n private _rugbyGameConfig: RugbyGameConfig;\n private _waterpoloGameConfig: WaterpoloGameConfig;\n\n id: number;\n status: GameStatuses;\n team: Team;\n tournamentTeam: TournamentTeam;\n teamId: number;\n tournamentTeamId: number;\n competitorTeam: Team;\n competitorTournamentTeam: TournamentTeam;\n competitorTeamId: number;\n competitorTournamentTeamId: number;\n competitorTeamName: string;\n gameConfig: { [key: string]: any };\n datetime: Date;\n location: string;\n teamScore: number;\n competitorTeamScore: number;\n resultType: GameResultTypes;\n playoffNumber: string;\n tournamentId: number;\n tournamentTour: number;\n scoreByPeriod: ScoreByPeriod;\n playoffStage: string;\n playoffRound: number;\n tournamentStageId: number;\n tournamentPlayoffId: number;\n tournamentPlayoff: Playoff;\n tournamentCourt: LeagueCourt;\n mediaCount: number;\n mediaLiveCount: number;\n media: MediaItem[];\n tournament: Tournament;\n tournamentGroup: TournamentGroup;\n additionalData: GameAdditionalData;\n\n get basketballGameConfig(): BasketballGameConfig {\n if (this._basketballGameConfig && this._basketballGameConfig.periodsCount) {\n return this._basketballGameConfig;\n }\n if (this.gameConfig) {\n this._basketballGameConfig = new BasketballGameConfig(this.gameConfig);\n }\n return this._basketballGameConfig;\n }\n\n set basketballGameConfig(value) {\n this._basketballGameConfig = value;\n }\n\n get volleyballGameConfig(): VolleyballGameConfig {\n if (this._volleyballGameConfig && this._volleyballGameConfig.setsCount) {\n return this._volleyballGameConfig;\n }\n if (this.gameConfig) {\n this._volleyballGameConfig = new VolleyballGameConfig(this.gameConfig);\n }\n return this._volleyballGameConfig;\n }\n\n set volleyballGameConfig(value) {\n this._volleyballGameConfig = value;\n }\n\n get hockeyGameConfig(): HockeyGameConfig {\n if (this._hockeyGameConfig && this._hockeyGameConfig.periodsCount) {\n return this._hockeyGameConfig;\n }\n if (this.gameConfig) {\n this._hockeyGameConfig = new HockeyGameConfig(this.gameConfig);\n }\n return this._hockeyGameConfig;\n }\n\n set hockeyGameConfig(value) {\n this._hockeyGameConfig = value;\n }\n\n get handballGameConfig(): HandballGameConfig {\n if (this._handballGameConfig && this._handballGameConfig.periodsCount) {\n return this._handballGameConfig;\n }\n if (this.gameConfig) {\n this._handballGameConfig = new HandballGameConfig(this.gameConfig);\n }\n return this._handballGameConfig;\n }\n\n set handballGameConfig(value) {\n this._handballGameConfig = value;\n }\n\n get footballGameConfig(): FootballGameConfig {\n if (this._footballGameConfig && this._footballGameConfig.periodsCount) {\n return this._footballGameConfig;\n }\n if (this.gameConfig) {\n this._footballGameConfig = new FootballGameConfig(this.gameConfig);\n }\n return this._footballGameConfig;\n }\n\n set footballGameConfig(value) {\n this._footballGameConfig = value;\n }\n\n get rugbyGameConfig(): RugbyGameConfig {\n if (this._rugbyGameConfig && this._rugbyGameConfig.periodsCount) {\n return this._rugbyGameConfig;\n }\n if (this.gameConfig) {\n this._rugbyGameConfig = new RugbyGameConfig(this.gameConfig);\n }\n return this._rugbyGameConfig;\n }\n\n set rugbyGameConfig(value) {\n this._rugbyGameConfig = value;\n }\n\n get waterpoloGameConfig(): WaterpoloGameConfig {\n if (this._waterpoloGameConfig && this._waterpoloGameConfig.periodsCount) {\n return this._waterpoloGameConfig;\n }\n if (this.gameConfig) {\n this._waterpoloGameConfig = new WaterpoloGameConfig(this.gameConfig);\n }\n return this._waterpoloGameConfig;\n }\n\n set waterpoloGameConfig(value) {\n this._waterpoloGameConfig = value;\n }\n\n get scoreByPeriodList(): {period: number, teamScore: number, competitorTeamScore: number}[] {\n if (!this.scoreByPeriod) {\n return [];\n }\n return Object.keys(this.scoreByPeriod).map(period => ({\n period: +period,\n teamScore: this.scoreByPeriod[period][0],\n competitorTeamScore: this.scoreByPeriod[period][1]\n }));\n }\n\n get isClosed(): boolean {\n return this.status === GameStatuses.closed;\n }\n\n get isTeamWon() {\n return [GameResultTypes.team_won, GameResultTypes.competitor_team_technical_defeat].includes(this.resultType);\n }\n\n get isCompetitorTeamWon() {\n return [GameResultTypes.competitor_team_won, GameResultTypes.team_technical_defeat].includes(this.resultType);\n }\n\n get teamWinnerId() {\n if (!this.isClosed) {\n return null;\n }\n if (this.isTeamWon) {\n return this.team.id || this.teamId;\n }\n if (this.isCompetitorTeamWon) {\n return this.competitorTeam.id || this.competitorTeamId;\n }\n return null;\n }\n\n get teamLoserId() {\n if (!this.isClosed) {\n return null;\n }\n if (this.isTeamWon) {\n return this.competitorTeam.id || this.competitorTeamId;\n }\n if (this.isCompetitorTeamWon) {\n return this.team.id || this.teamId;\n }\n return null;\n }\n\n get sport(): Sport {\n if (this.tournament?.sport?.id) {\n return this.tournament.sport;\n }\n if (this.team?.sport?.id) {\n return this.team.sport;\n }\n if (this.competitorTeam?.sport?.id) {\n return this.competitorTeam.sport;\n }\n }\n}\n","import { BaseModel, enumField, Model, nestedModel } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\nexport enum TeamUserRole {\n member = 1,\n moderator,\n admin,\n coach,\n head_coach,\n playing_coach,\n manager,\n head_manager,\n captain,\n assistant,\n}\n\n@Model({\n relation: {\n user: nestedModel(User),\n team: nestedModel(Team),\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamUser extends BaseModel {\n id: number;\n teamId: number;\n user: User;\n team: Team;\n number: number;\n role: TeamUserRole;\n}\n","import { Model, BaseModel, dateField } from './util';\n\n@Model({\n relation: {\n dateFrom: dateField,\n dateTo: dateField,\n }\n})\nexport class TournamentDisqualification extends BaseModel {\n id: number;\n tournamentTeamUserId: number;\n dateFrom: Date;\n dateTo: Date;\n matchesCount: number;\n reason: string;\n}\n","import { LeagueFieldBase, LeagueFieldTypes } from './league-field-base';\nimport { enumField, Model } from './util';\n\n@Model({\n relation: {\n type: enumField(LeagueFieldTypes)\n }\n})\nexport class LeaguePlayerField extends LeagueFieldBase {\n}\n","import { LeagueFieldBaseValue } from './league-field-base-value';\nimport { Model, nestedModel } from './util';\nimport { File } from './file';\nimport { LeaguePlayerField } from './league-player-field';\n\n@Model({\n relation: {\n file: nestedModel(File),\n leaguePlayerField: nestedModel(LeaguePlayerField),\n }\n})\nexport class LeaguePlayerFieldValue extends LeagueFieldBaseValue {\n leaguePlayerFieldId: number;\n leaguePlayerField: LeaguePlayerField;\n}\n","import { Model, BaseModel, dateField, enumField, nestedModel, listField } from './util';\nimport { File } from './file';\nimport { User, UserGender } from './user';\nimport { LeaguePlayerFieldValue } from './league-player-field-value';\n\nexport enum Qualification {\n practician = 1,\n amateur,\n practician2,\n practician3,\n amateur2,\n theorist,\n theorist2,\n theorist3,\n sportsman,\n lider,\n master,\n profi,\n goalkeeper,\n goalkeeper2,\n goalkeeper_sh,\n goalkeeper_ul,\n goalkeeper_mhl,\n goalkeeper_vhl,\n goalkeeper_khl,\n beginner,\n junior,\n debutant,\n schoolchild,\n preschool_child\n}\n\nexport const QualificationLocalization = {\n [Qualification.practician]: 'Практик',\n [Qualification.practician2]: 'Практик 2',\n [Qualification.practician3]: 'Практик 3',\n [Qualification.amateur]: 'Любитель',\n [Qualification.amateur2]: 'Любитель 2',\n [Qualification.theorist]: 'Теоретик',\n [Qualification.theorist2]: 'Теоретик 2',\n [Qualification.theorist3]: 'Теоретик 3',\n [Qualification.sportsman]: 'Спортсмен',\n [Qualification.lider]: 'Лидер',\n [Qualification.master]: 'Мастер',\n [Qualification.profi]: 'Профи',\n [Qualification.goalkeeper]: 'Вратарь',\n [Qualification.goalkeeper2]: 'Вратарь 2',\n [Qualification.goalkeeper_sh]: 'Вратарь СШ',\n [Qualification.goalkeeper_ul]: 'Вратарь ЮЛ',\n [Qualification.goalkeeper_mhl]: 'Вратарь МХЛ',\n [Qualification.goalkeeper_vhl]: 'Вратарь ВХЛ',\n [Qualification.goalkeeper_khl]: 'Вратарь КХЛ',\n [Qualification.beginner]: 'Новичок',\n [Qualification.junior]: 'Юниор',\n [Qualification.debutant]: 'Дебютант',\n [Qualification.schoolchild]: 'Школьник',\n [Qualification.preschool_child]: 'Дошкольник',\n};\n\n@Model({\n relation: {\n birthDate: dateField,\n photo: nestedModel(File),\n user: nestedModel(User),\n qualification: enumField(Qualification),\n fieldValues: listField(nestedModel(LeaguePlayerFieldValue)),\n gender: enumField(UserGender),\n }\n})\nexport class LeaguePlayer extends BaseModel {\n id: number;\n userId: number;\n leagueId: number;\n firstName: string;\n lastName: string;\n middleName: string;\n birthDate: Date;\n photo: File;\n user: User;\n gender: UserGender;\n hasChanges: boolean;\n rating: number;\n qualification: Qualification;\n fieldValues: LeaguePlayerFieldValue[];\n\n get fullName(): string {\n return [this.lastName, this.firstName, this.middleName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (365 * 86400 * 1000));\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TeamUser } from './team-user';\nimport { TournamentDisqualification } from './tournament-disqualification';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n tournamentTeam: nestedModel(TournamentTeam),\n teamUser: nestedModel(TeamUser),\n disqualification: nestedModel(TournamentDisqualification),\n leaguePlayer: nestedModel(LeaguePlayer),\n }\n})\nexport class TournamentTeamUser extends BaseModel {\n id: number;\n active: boolean;\n tournamentTeam: TournamentTeam;\n teamUser: TeamUser;\n disqualified: boolean;\n disqualification: TournamentDisqualification;\n leaguePlayer: LeaguePlayer;\n gamesCount: number;\n mvpCount: number;\n}\n","import { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { LeaguePlayer } from './league-player';\nimport { BaseModel } from './util';\n\nexport type WinLoseType = 'win' | 'lose' | 'draw';\n\nexport abstract class BaseStatistic extends BaseModel {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField,\n }\n})\nexport class BasketballStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n twoPointsMade: number;\n threePointsMade: number;\n freeThrowsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n twoPointPercent: number;\n threePointPercent: number;\n freeThrowPercent: number;\n onePointPercent: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n playerEfficiency: number;\n shotsBlocked: number;\n fourPointAttempts: number;\n fourPointsMade: number;\n fourPointPercent: number;\n dunkAttempts: number;\n dunksMade: number;\n shootoutsWon: number;\n shootoutsLost: number;\n shootoutsTotal: number;\n shootoutWonPercent: number;\n gameTime: number;\n newbie: boolean;\n rank: number;\n\n get totalFouls() {\n return Math.floor(10 * (\n (this.personalFouls || 0) +\n (this.technicalFouls || 0) +\n (this.unsportsmanlikeFouls || 0) +\n (this.disqualificationFouls || 0)\n )) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { BasketballStatistic } from './basketball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(BasketballStatistic),\n competitorTeam: nestedModel(BasketballStatistic)\n }\n})\nexport class BasketballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: BasketballStatistic;\n competitorTeam: BasketballStatistic;\n}\n","import { BaseModel } from './util';\n\nexport abstract class GameStatisticBase extends BaseModel {\n gameUserId: number;\n\n get id(): number {\n return this.gameUserId;\n }\n}\n","import { Model, dateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model({\n relation: {\n updatedAt: dateTimeField,\n }\n})\nexport class BasketballGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n freeThrowsMade: number;\n twoPointsMade: number;\n threePointsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n playerEfficiency: number;\n shotsBlocked: number;\n fourPointAttempts: number;\n fourPointsMade: number;\n dunkAttempts: number;\n dunksMade: number;\n shootoutsWon: number;\n shootoutsLost: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get totalFouls(): number {\n return (this.personalFouls || 0) + (this.technicalFouls || 0) + (this.unsportsmanlikeFouls || 0) + (this.disqualificationFouls || 0);\n }\n\n set onePointPercent(v: number) {}\n\n get onePointPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n /**\n * @deprecated Use onePointPercent instead\n */\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n set twoPointPercent(v: number) {}\n\n get twoPointPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n /**\n * @deprecated Use twoPointPercent instead\n */\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n set threePointPercent(v: number) {}\n\n get threePointPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n /**\n * @deprecated Use threePointPercent instead\n */\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n set freeThrowPercent(v: number) {}\n\n get freeThrowPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n /**\n * @deprecated Use freeThrowPercent instead\n */\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n set fourPointPercent(v: number) {}\n\n get fourPointPercent(): number {\n if (!this.fourPointAttempts || !this.fourPointsMade) {\n return 0;\n }\n return Math.round(1000 * this.fourPointsMade / this.fourPointAttempts) / 10;\n }\n\n set shootoutsTotal(v: number) {}\n\n get shootoutsTotal(): number {\n return (this.shootoutsLost || 0) + (this.shootoutsWon || 0);\n }\n\n set shootoutWonPercent(v: number) {}\n\n get shootoutWonPercent(): number {\n if (!this.shootoutsTotal || !this.shootoutsWon) {\n return 0;\n }\n return Math.round(1000 * this.shootoutsWon / this.shootoutsTotal) / 10;\n }\n}\n","import { BaseModel } from './util';\n\nexport abstract class GameLogBase extends BaseModel {\n id: number;\n uniqueId: string;\n active: boolean;\n gameId: number;\n teamId: number;\n gameUserId: number;\n logType: any;\n abstract compare(model: GameLogBase): number;\n}\n","import { enumField, Model, BaseModel, dateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum BasketballGameLogTypes {\n enter_game = 1,\n exit_game,\n remove_game,\n two_point_made,\n three_point_made,\n free_throw_made,\n two_point_attempt,\n three_point_attempt,\n free_throw_attempt,\n assist,\n block,\n rebound,\n offensive_rebound,\n defensive_rebound,\n steal,\n turnover,\n personal_foul,\n technical_foul,\n unsportsmanlike_foul,\n disqualification_foul,\n one_point_attempt,\n one_point_made,\n timeout,\n team_rebound,\n four_point_attempt,\n four_point_made,\n dunk_attempt,\n dunk_made,\n shootout,\n shootout_won,\n shootout_lost,\n}\n\nexport enum BasketballSubLogTypes {\n // Miss, Made\n jump_shot = 1,\n step_back_jump_shot,\n floating_jump_shot,\n fade_away_jump_shot,\n pull_up_jump_shot,\n turnaround_jump_shot,\n dunk,\n layup,\n driving_layup,\n alley_oop,\n hook_shot,\n\n // foul\n offensive_foul,\n shot_foul,\n mutual_foul,\n\n // Turnover\n bad_pass,\n ball_handling,\n travel,\n double_dribble,\n out_of_bounds,\n three_seconds,\n five_seconds,\n eight_seconds,\n twenty_four_seconds,\n back_court,\n offensive_goal_tending,\n other_turnover,\n}\n\nexport enum BasketballCourtZones {\n paint = 1,\n left_short_corner,\n right_short_corner,\n left_middle_post,\n right_middle_post,\n high_post,\n left_corner,\n right_corner,\n left_wing,\n right_wing,\n top,\n}\n\nexport enum BasketballCourtSides {\n front = 1,\n back,\n}\n\nexport enum BasketballPenaltyTypes {\n one_shot = 1,\n two_shots,\n three_shots,\n possession,\n one_shot_and_possession,\n two_shots_and_possession,\n three_shots_and_possession,\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(BasketballGameLogTypes),\n subLogType: enumField(BasketballSubLogTypes),\n penaltyType: enumField(BasketballPenaltyTypes),\n zone: enumField(BasketballCourtZones),\n courtSide: enumField(BasketballCourtSides),\n }\n})\nexport class BasketballGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: BasketballGameLogTypes;\n subLogType: BasketballSubLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n combined: BasketballGameLog;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n zone: BasketballCourtZones;\n courtSide: BasketballCourtSides;\n penaltyType: BasketballPenaltyTypes;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n fastBreak: boolean;\n isCoach: boolean;\n isBench: boolean;\n group: string;\n marked: boolean;\n coords: [number, number];\n shootoutPoints: number;\n\n isPointsType() {\n return [\n BasketballGameLogTypes.two_point_made,\n BasketballGameLogTypes.three_point_made,\n BasketballGameLogTypes.free_throw_made,\n BasketballGameLogTypes.one_point_made,\n BasketballGameLogTypes.four_point_made,\n BasketballGameLogTypes.dunk_made,\n BasketballGameLogTypes.shootout_won,\n ].indexOf(this.logType) > -1;\n }\n\n isReboundType() {\n return [\n BasketballGameLogTypes.rebound,\n BasketballGameLogTypes.offensive_rebound,\n BasketballGameLogTypes.defensive_rebound,\n BasketballGameLogTypes.team_rebound,\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType() {\n return [\n BasketballGameLogTypes.personal_foul,\n BasketballGameLogTypes.technical_foul,\n BasketballGameLogTypes.unsportsmanlike_foul,\n BasketballGameLogTypes.disqualification_foul,\n ].indexOf(this.logType) > -1;\n }\n\n getScore() {\n const scoreMapping = {\n [BasketballGameLogTypes.one_point_made]: 1,\n [BasketballGameLogTypes.free_throw_made]: 1,\n [BasketballGameLogTypes.two_point_made]: 2,\n [BasketballGameLogTypes.three_point_made]: 3,\n [BasketballGameLogTypes.four_point_made]: 4,\n [BasketballGameLogTypes.dunk_made]: 3,\n };\n if (this.logType === BasketballGameLogTypes.shootout_won) {\n return this.shootoutPoints;\n }\n return scoreMapping[this.logType] || 0;\n }\n\n compare(model: BasketballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n if (this.datetime.getTime() === model.datetime.getTime()) {\n return this.id > model.id ? 1 : -1;\n }\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n}\n","import { Model, BaseModel, dateTimeField, nestedModel } from './util';\nimport { TeamUser } from './team-user';\nimport { TournamentTeamUser } from './tournament-team-user';\n\n@Model({\n relation: {\n teamUser: nestedModel(TeamUser),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n updatedAt: dateTimeField,\n }\n})\nexport class GameUser extends BaseModel {\n id: number;\n gameId: number;\n teamUser: TeamUser;\n tournamentTeamUser: TournamentTeamUser;\n isMvp: boolean;\n number: number;\n updatedAt: Date;\n\n get gameUserNumber(): number {\n return (this.number || this.number === 0) ? this.number : this.teamUser.number;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\n\ninterface LimitationValue {\n current: number;\n required: number;\n}\n\n@Model()\nexport class GameUserLimitationTypes extends BaseModel {\n minUserGamesCount: LimitationValue;\n minUserTime: LimitationValue;\n minGoalkeeperUserGamesCount: LimitationValue;\n minGoalkeeperUserTime: LimitationValue;\n manual: boolean;\n}\n\n\n@Model({\n relation: {\n limitations: nestedModel(GameUserLimitationTypes)\n }\n})\nexport class GameUserLimitations extends BaseModel {\n tournamentTeamUserId: number;\n limitations: GameUserLimitationTypes;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { TournamentDisqualification } from './tournament-disqualification';\n\n@Model({\n relation: {\n disqualification: nestedModel(TournamentDisqualification)\n }\n})\nexport class GameUserDisqualification extends BaseModel {\n tournamentTeamUserId: number;\n disqualification: TournamentDisqualification;\n}\n","import { BaseModel } from '../models/util';\n\nclass BaseModelWithId extends BaseModel {\n id: number;\n}\n\nclass BaseModelWithUpdatedAt extends BaseModelWithId {\n updatedAt: Date;\n}\n\ntype Model = BaseModelWithId | BaseModelWithUpdatedAt;\ntype checkFunctionType<T> = (item: T) => boolean;\ntype MappedModel<T> = {[key: string]: T};\ntype KeysMatching<T, V> = {[K in keyof T]-?: T[K] extends V ? K : never}[keyof T];\n\nexport function updateItemInArray<T extends Model>(\n data: T[],\n item: T,\n force = false,\n checkFunction?: checkFunctionType<T>\n): T[] {\n const index = data.findIndex(v =>\n checkFunction ? checkFunction(v) : v.id === item.id\n );\n if (index < 0) {\n return data;\n }\n const oldItem = data[index];\n if (oldItem instanceof BaseModelWithUpdatedAt && item instanceof BaseModelWithUpdatedAt &&\n !force && item.updatedAt && oldItem.updatedAt && oldItem.updatedAt > item.updatedAt\n ) {\n return data;\n }\n return [\n ...data.slice(0, index),\n item,\n ...data.slice(index + 1),\n ];\n}\n\nexport function updateItemsInArray<T extends Model>(\n data: T[],\n items: T[],\n force: boolean = false,\n checkFunction?: checkFunctionType<T>\n): T[] {\n items.forEach(item => {\n data = updateItemInArray(data, item, force, checkFunction);\n });\n return data;\n}\n\nexport function patchItemInArray<T extends Model>(\n data: T[],\n item: T,\n checkFunction?: checkFunctionType<T>\n): T[] {\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n return Object.assign(v, item);\n });\n}\n\nexport function addItemInArray<T extends Model>(\n data: T[],\n item: T,\n atEnd: boolean = false,\n checkFunction?: checkFunctionType<T>\n): T[] {\n if (data.find(i => isFunction(checkFunction) ? checkFunction(i) : i.id === item.id)) {\n return data;\n }\n\n return atEnd\n ? [...data, item]\n : [item, ...data];\n}\n\nexport function addItemsInArray<T extends Model>(\n data: T[],\n items: T[],\n atEnd: boolean = false,\n checkFunction?: (item: T) => boolean\n): T[] {\n (!atEnd\n ? Object.assign([], items).reverse()\n : items\n ).forEach(item => {\n data = addItemInArray(data, item, atEnd, checkFunction);\n });\n return data;\n}\n\nexport function deleteItemFromArray<T extends Model>(\n data: T[],\n item: T | checkFunctionType<T>\n): T[] {\n if (item instanceof BaseModelWithId) {\n return data.filter(v => v.id !== item.id);\n } else {\n return data.filter(i => !item(i));\n }\n}\n\nfunction isFunction(functionToCheck) {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\n\nexport const _ = {\n insert: <T extends Model>(\n data: T[], item: T, atEnd = false,\n indexKey: KeysMatching<T, string | number> = null,\n ) => {\n if (_.index(data, item, indexKey) > -1) {\n return data;\n }\n if (atEnd) {\n return [\n ...data,\n item,\n ];\n } else {\n return [\n item,\n ...data,\n ];\n }\n },\n update: <T extends Model>(\n data: T[], item: T, force = false, partial = false,\n indexKey: KeysMatching<T, string | number> = null\n ) => {\n const index = _.index(data, item, indexKey);\n if (index < 0) {\n return data;\n }\n const oldItem = data[index];\n if (!force && item instanceof BaseModelWithUpdatedAt && oldItem instanceof BaseModelWithUpdatedAt &&\n item.updatedAt && oldItem.updatedAt && oldItem.updatedAt > item.updatedAt\n ) {\n return data;\n }\n if (partial) {\n data[index] = _.modify(oldItem, item);\n } else {\n data[index] = item;\n }\n return [...data];\n },\n index: <T extends Model>(\n data: T[], item: T,\n indexKey: KeysMatching<T, string | number> = null,\n ): number => {\n if (!indexKey) {\n indexKey = 'id' as KeysMatching<T, string | number>;\n }\n return data.findIndex(v => v[indexKey] === item[indexKey]);\n },\n delete: <T extends Model>(\n data: T[], item: T,\n indexKey: KeysMatching<T, string | number> = null,\n ): T[] => {\n const index = _.index(data, item, indexKey);\n if (index < 0) {\n return data;\n }\n data.splice(index, 1);\n return [...data];\n },\n deleteBy: <T extends Model>(data: T[], checkFunction: checkFunctionType<T>): T[] => {\n data = data.filter(checkFunction);\n return [...data];\n },\n includes: <T extends Model>(data: T[], item: T, indexKey: KeysMatching<T, string | number> = null,): boolean => {\n return _.index(data, item, indexKey) > -1;\n },\n upsert: <T extends Model>(\n data: T[], item: T, atEnd = false, force = false,\n indexKey: KeysMatching<T, string | number> = null,\n ): T[] => {\n if (_.includes(data, item, indexKey)) {\n return _.update(data, item, force, false, indexKey);\n } else {\n return _.insert(data, item, atEnd, indexKey);\n }\n },\n insertMany: <T extends Model>(\n data: T[], items: T[], atEnd = false,\n indexKey: KeysMatching<T, string | number> = null,\n ): T[] => {\n if (!atEnd) {\n data = Object.assign([], data).reverse();\n }\n for (const item of items) {\n data = _.insert(data, item, atEnd, indexKey);\n }\n return [...data];\n },\n upsertMany: <T extends Model>(\n data: T[], items: T[], atEnd = false, force = false,\n indexKey: KeysMatching<T, string | number> = null,\n ): T[] => {\n if (!atEnd) {\n data = Object.assign([], data).reverse();\n }\n for (const item of items) {\n data = _.upsert(data, item, atEnd, force, indexKey);\n }\n return [...data];\n },\n groupBy: <T extends BaseModel>(data: T[], key: KeysMatching<T, string | number>): MappedModel<T> => {\n return data.reduce((acc, item) => ({\n ...acc,\n [item[key].toString()]: item,\n }), {});\n },\n flatten: <T extends BaseModel>(data: T[][]): T[] => {\n return data.reduce((acc, items) => ([\n ...acc,\n ...items,\n ]), []);\n },\n modify: <T extends BaseModel>(instance: T, data: {[Property in keyof T]?: T[Property]}) => {\n return Object.assign(Object.create(instance), instance, data);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { addItemInArray, addItemsInArray, deleteItemFromArray, updateItemInArray, updateItemsInArray } from '../utils/data';\nimport { OldStorageEngine } from './old-storage-engine';\n\nexport class Store {\n private data: {[key: string]: BehaviorSubject<any>} = {};\n\n constructor(private engine?: OldStorageEngine<any>) {\n }\n\n get(key: string, defaultValue?: any): Observable<any> {\n return this.getSubject(key).pipe(\n map(item => item === undefined ? defaultValue : item),\n filter(item => item !== undefined)\n );\n }\n\n value(key: string, defaultValue?: any): any {\n return this.getSubject(key).value === undefined ? defaultValue : this.getSubject(key).value;\n }\n\n save(key: string, value: any): void {\n this.getSubject(key).next(value);\n if (this.engine) {\n this.engine.save(key, value);\n }\n }\n\n appendItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, true, checkFunction));\n }\n\n appendItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, true));\n }\n\n prependItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n prependItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n updateItem(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n updateItems(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemsInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n deleteItem(key: string, value: any): void {\n this.save(key, deleteItemFromArray(this.value(key) || [], value));\n }\n\n dispose(): void {\n for (const key of Object.keys(this.data)) {\n this.data[key].complete();\n delete this.data[key];\n }\n }\n\n clearStorageData(): void {\n if (this.engine) {\n this.engine.clear();\n }\n }\n\n getEngine(): OldStorageEngine<any> {\n return this.engine;\n }\n\n private getSubject(key: string): BehaviorSubject<any> {\n if (!this.data[key]) {\n this.data[key] = new BehaviorSubject<any>(this.engine ? this.engine.get(key) : undefined);\n }\n return this.data[key];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '../storage/store';\n\n@Injectable({providedIn: 'root'})\nexport class BaseService {\n protected store = new Store();\n\n dispose(): void {\n this.store.dispose();\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { BaseService } from './base.service';\n\nconst CONFIG_STORE_KEY = 'config';\n\nexport const CONFIG_DATA = 'mtg-core-config-data';\n\n@Injectable({providedIn: 'root'})\nexport class ConfigService extends BaseService {\n constructor(\n @Optional() @Inject(CONFIG_DATA) private configData: any\n ) {\n super();\n if (configData) {\n this.initialize(configData);\n }\n }\n\n get config$() {\n return this.store.get(CONFIG_STORE_KEY);\n }\n\n get config() {\n return this.store.value(CONFIG_STORE_KEY) || {};\n }\n\n initialize(data: any): void {\n this.store.save(CONFIG_STORE_KEY, data);\n }\n\n set(key: string, value: any): void {\n this.store.save(CONFIG_STORE_KEY, {\n ...this.config,\n [key]: value\n });\n }\n\n get(key: string): any {\n return this.store.value(CONFIG_STORE_KEY) && this.store.value(CONFIG_STORE_KEY)[key];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { GameUser } from '../models/game-user';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { GameUserLimitations } from '../models/game-user-limitation';\nimport { GameUserDisqualification } from '../models/game-user-disqualification';\n\n@Injectable({providedIn: 'root'})\nexport class GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService,\n ) {\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => result.map(item => new GameUser(item))),\n ).toPromise();\n }\n\n async getMvp(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/mvp/`).pipe(\n map(result => result.map(item => new GameUser(item))),\n ).toPromise();\n }\n\n async getUsersLimitation(gameId: number): Promise<GameUserLimitations[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users_limitation/`).pipe(\n map(result => result.map(item => new GameUserLimitations(item))),\n ).toPromise();\n }\n\n async getUsersDisqualification(gameId: number): Promise<GameUserDisqualification[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users_disqualification/`\n ).pipe(\n map(result => result.map(item => new GameUserDisqualification(item))),\n ).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/game_application/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { BasketballGameTeamStatistic } from '../models/basketball-game-team-statistic';\nimport { BasketballGameStatistic } from '../models/basketball-game-statistic';\nimport { BasketballGameLog } from '../models/basketball-game-log';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class BasketballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get<object>(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<BasketballGameTeamStatistic> {\n return this.httpClient.get<object>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/team_statistic/`\n ).pipe(\n map(result => new BasketballGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<BasketballGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new BasketballGameStatistic(item)))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<BasketballGameLog[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/logs/`).pipe(\n map(result => result.map(item => new BasketballGameLog(item)))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n\n async downloadFibaProtocol(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol_fiba/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n files: nestedModel(File)\n }\n})\nexport class Feedback extends BaseModel {\n id: number;\n theme: string;\n message: string;\n email: string;\n captcha: string;\n files: File[];\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Feedback } from '../models/feedback';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class FeedbackApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async sendFeedback(data: Feedback): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/feedback/`, data.json())\n .pipe(map(response => new Feedback(response)))\n .toPromise();\n }\n\n async sendLeagueFeedback(leagueId: number, data: Feedback): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/feedback/`, data.json())\n .pipe(map(response => new Feedback(response)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { File } from '../models/file';\n\n@Injectable({providedIn: 'root'})\nexport class FileApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async upload(fileData: any, filename?: string, width?: number, height?: number): Promise<File> {\n let params = new HttpParams();\n if (width && height) {\n params = params.set('width', width.toString()).set('height', height.toString());\n }\n\n const formData = new FormData();\n formData.append('file', fileData, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/`, formData, {params})\n .pipe(map(data => new File(data)))\n .toPromise();\n }\n\n async createZipArchive(files: {file: any, filename: string}[]): Promise<any> {\n const formData = new FormData();\n for (const file of files) {\n formData.append('files', file.file, file.filename);\n }\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/zip_archive/`, formData, {responseType: 'blob'})\n .toPromise();\n }\n}\n","import { HockeyPenaltyType } from '../models/hockey-penalty-types';\n\nexport const HockeyPenaltyTypes: HockeyPenaltyType[] = [\n {id: 1, code: 'АГРЕС', title: 'Агрессор в драке'},\n {id: 2, code: 'АТ-В-ГОЛ', title: 'Атака в голову или шею'},\n {id: 3, code: 'АТ-ВР', title: 'Атака вратаря'},\n {id: 4, code: 'АТ-СЗ', title: 'Атака сзади'},\n {id: 5, code: 'БЛОК', title: 'Блокировка'},\n {id: 6, code: 'БР-КЛ', title: 'Бросок клюшки'},\n {id: 7, code: 'ВБ-ШБ', title: 'Выброс шайбы'},\n {id: 8, code: 'ГРУБ', title: 'Грубость'},\n {id: 9, code: 'ДИСЦ', title: 'Дисциплинарный штраф'},\n {id: 10, code: 'ДИС-КН', title: 'Дисциплинарный до конца матча'},\n {id: 11, code: 'ДРАКА', title: 'Драка'},\n {id: 12, code: 'ЗАЧИН', title: 'Зачинщик драки'},\n {id: 13, code: 'ЗД-ИГ', title: 'Задержка игры'},\n {id: 14, code: 'ЗД-КЛ-СП', title: 'Задержка клюшки соперника'},\n {id: 15, code: 'ЗД-КЛ', title: 'Задержка клюшкой'},\n {id: 16, code: 'ЗД-СП', title: 'Задержка соперника'},\n {id: 17, code: 'ЗД-ШБ', title: 'Задержка шайбы руками'},\n {id: 18, code: 'СЛ-КЛ', title: 'Игра со сломанной клюшкой'},\n {id: 19, code: 'ВП-КЛ', title: 'Игра высоко поднятой клюшкой'},\n {id: 20, code: 'КЛ-УД', title: 'Колющий удар'},\n {id: 21, code: 'СК-ШТ', title: 'Малый скамеечный штраф'},\n {id: 22, code: 'МШ', title: 'Матч-штраф'},\n {id: 23, code: 'НП-АТ', title: 'Неправильная атака'},\n {id: 24, code: 'ЧС-СТ', title: 'Нарушение численного состава'},\n {id: 25, code: 'НС-КЛ', title: 'Нестандартная клюшка'},\n {id: 26, code: 'НАР-ЭК', title: 'Опасное снаряжение'},\n {id: 27, code: 'НС-ПВ', title: 'Оскорбление судей и неспортивное поведение'},\n {id: 28, code: 'ОТ-ИГ', title: 'Отказ начать игру'},\n {id: 29, code: 'ОТСЧ', title: 'Отсечение'},\n {id: 30, code: 'ПЛЕВОК', title: 'Плевок'},\n {id: 31, code: 'ПОДН', title: 'Подножка'},\n {id: 32, code: 'ПОДС', title: 'Подсечка'},\n {id: 33, code: 'ПР-ИН', title: 'Предупреждение инфекций'},\n {id: 34, code: 'ПК-СК', title: 'Покидание скамейки во время конфликта'},\n {id: 35, code: 'СД-ВР', title: 'Сдвиг ворот'},\n {id: 36, code: 'СИМ', title: 'Симуляция'},\n {id: 37, code: 'ТЛ-БР', title: 'Толчок на борт'},\n {id: 38, code: 'ТЛ-КЛ', title: 'Толчок клюшкой'},\n {id: 39, code: 'УД-ГОЛ', title: 'Удар головой'},\n {id: 40, code: 'УД-КЛ', title: 'Удар клюшкой'},\n {id: 41, code: 'УД-К-КЛ', title: 'Удар концом клюшки'},\n {id: 42, code: 'УД-КОЛ', title: 'Удар коленом'},\n {id: 43, code: 'УД-ЛОК', title: 'Удар локтем'},\n {id: 44, code: 'УД-НГ', title: 'Удар ногой'},\n {id: 45, code: 'УКУС', title: 'Укус'},\n {id: 46, code: 'КН-ЗР', title: 'Физический контакт со зрителем'},\n {id: 47, code: 'ШТ-ВР', title: 'Штраф вратаря'}\n];\n","import { ModelRelation } from './util';\nimport { HockeyPenaltyTypes } from '../localization/hockey-penalty-types';\n\nexport interface HockeyPenaltyType {\n id: number;\n code: string;\n title: string;\n}\n\nexport const penaltyTypeField: ModelRelation<HockeyPenaltyType> = {\n create: (data: number): HockeyPenaltyType => HockeyPenaltyTypes.find(item => item.id === data),\n json: (data: HockeyPenaltyType): number => data ? data.id : null,\n};\n","import { enumField, Model, dateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\nimport { penaltyTypeField, HockeyPenaltyType } from './hockey-penalty-types';\n\nexport enum HockeyGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n minor_penalty ,\n major_penalty ,\n misconduct_penalty ,\n game_misconduct_penalty ,\n match_penalty ,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n after_game_shootout_attempt,\n after_game_shootout_goal,\n after_game_shootout_save,\n shootout_save,\n steal,\n loss,\n sharp_pass,\n}\n\nexport enum HockeyAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(HockeyGameLogTypes),\n advantage: enumField(HockeyAdvantageTypes),\n penaltyType: penaltyTypeField\n }\n})\nexport class HockeyGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HockeyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: HockeyAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n penaltyType: HockeyPenaltyType;\n _penalizedGameUserId: number;\n mutualPenalty: boolean;\n foulOnGameUserId: number;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: HockeyGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [\n HockeyGameLogTypes.goal, HockeyGameLogTypes.shootout_goal,\n HockeyGameLogTypes.after_game_shootout_goal\n ].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n HockeyGameLogTypes.minor_penalty, HockeyGameLogTypes.major_penalty,\n HockeyGameLogTypes.misconduct_penalty, HockeyGameLogTypes.game_misconduct_penalty,\n HockeyGameLogTypes.penalty_shot, HockeyGameLogTypes.match_penalty\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HockeyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n}\n","import { Model, dateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model({\n relation: {\n updatedAt: dateTimeField,\n }\n})\nexport class HockeyGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n saves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n goalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n steals: number;\n ppSteals: number;\n evSteals: number;\n shSteals: number;\n losses: number;\n ppLosses: number;\n evLosses: number;\n shLosses: number;\n sharpPasses: number;\n ppSharpPasses: number;\n evSharpPasses: number;\n shSharpPasses: number;\n drawnFouls: number;\n efficiency: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shotsOnGoal(): number {\n return (this.evShotsOnGoal || 0) + (this.ppShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get shotsBlocked(): number {\n return (this.evShotsBlocked || 0) + (this.ppShotsBlocked || 0) + (this.shShotsBlocked || 0);\n }\n\n get shotMisses(): number {\n return (this.evShotMisses || 0) + (this.ppShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0);\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0);\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0);\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots + (this.shootoutAttempts || 0);\n }\n\n get totalShots(): number {\n return this.shots + (this.shootoutAttempts || 0);\n }\n\n get goals(): number {\n return (this.ppGoals || 0) + (this.shGoals || 0) + (this.evGoals || 0);\n }\n\n get totalGoals(): number {\n return this.goals + (this.shootoutGoals || 0);\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.evAssists || 0) + (this.shAssists || 0);\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get shootOuts(): number {\n return (this.shootoutAttempts || 0) + (this.shootoutGoals || 0);\n }\n\n get shotsAgainst(): number {\n return (this.saves || 0) + (this.goalsAgainst || 0);\n }\n\n get shootoutShotsAgainst(): number {\n return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get totalShotsAgainst(): number {\n return this.shotsAgainst + this.shootoutShotsAgainst;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get totalSaves(): number {\n return (this.saves || 0) + (this.shootoutSaves || 0);\n }\n\n get totalSavesPercent(): number {\n if (!this.totalShotsAgainst || !this.totalSaves) {\n return 0;\n }\n return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get goalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get faceOffPercent(): number {\n if (!this.faceOffWins || !this.faceOffs) {\n return 0;\n }\n return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField\n }\n})\nexport class HockeyStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n ppShots: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShots: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShots: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoalsPercent: number;\n ppGoals: number;\n evGoalsPercent: number;\n evGoals: number;\n shGoalsPercent: number;\n shGoals: number;\n goals: number;\n totalGoals: number;\n totalGoalsPercent;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n totalShots: number;\n goalsPercent: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n faceOffs: number;\n faceOffPercent: number;\n savesPercent: number;\n totalSavesPercent: number;\n saves: number;\n shootoutSaves: number;\n totalSaves: number;\n shotsAgainst: number;\n shootoutShotsAgainst: number;\n totalShotsAgainst: number;\n goalsAgainst: number;\n shootoutGoalsAgainst: number;\n totalGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n steals: number;\n ppSteals: number;\n evSteals: number;\n shSteals: number;\n losses: number;\n ppLosses: number;\n evLosses: number;\n shLosses: number;\n sharpPasses: number;\n ppSharpPasses: number;\n evSharpPasses: number;\n shSharpPasses: number;\n drawnFouls: number;\n efficiency: number;\n newbie: boolean;\n rank: number;\n shutout: number;\n shutoutPercent: number;\n mvpCount: number;\n\n get assists(): number {\n return Math.floor(10 * ((this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { HockeyStatistic } from './hockey-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(HockeyStatistic),\n competitorTeam: nestedModel(HockeyStatistic),\n }\n})\nexport class HockeyGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: HockeyStatistic;\n competitorTeam: HockeyStatistic;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyGameLog } from '../models/hockey-game-log';\nimport { HockeyGameStatistic } from '../models/hockey-game-statistic';\nimport { HockeyGameTeamStatistic } from '../models/hockey-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class HockeyGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HockeyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/team_statistic/`).pipe(\n map(result => new HockeyGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HockeyGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new HockeyGameStatistic(item))),\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HockeyGameLog[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/logs/`).pipe(\n map(result => result.map(item => new HockeyGameLog(item))),\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { enumField, Model, dateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum FootballGameLogTypes {\n enter_game = 'enter_game',\n exit_game = 'exit_game',\n shot_miss = 'shot_miss',\n shot_on_goal = 'shot_on_goal',\n shot_blocked = 'shot_blocked',\n goal = 'goal',\n penalty_attempt = 'penalty_attempt',\n penalty_goal = 'penalty_goal',\n penalty_save = 'penalty_save',\n small_penalty_attempt = 'small_penalty_attempt',\n small_penalty_goal = 'small_penalty_goal',\n small_penalty_save = 'small_penalty_save',\n assist = 'assist',\n block_shot = 'block_shot',\n corner = 'corner',\n free_kick = 'free_kick',\n foul = 'foul',\n save = 'save',\n yellow_card = 'yellow_card',\n red_card = 'red_card',\n perfect_pass = 'perfect_pass',\n loss = 'loss',\n steal = 'steal',\n out = 'out',\n timeout = 'timeout',\n auto_goal = 'auto_goal',\n end_game_penalty_miss = 'end_game_penalty_miss',\n end_game_penalty_goal = 'end_game_penalty_goal',\n end_game_penalty_save = 'end_game_penalty_save',\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(FootballGameLogTypes)\n }\n})\nexport class FootballGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: FootballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: FootballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [\n FootballGameLogTypes.goal,\n FootballGameLogTypes.penalty_goal,\n FootballGameLogTypes.small_penalty_goal,\n FootballGameLogTypes.auto_goal,\n FootballGameLogTypes.end_game_penalty_goal,\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: FootballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n}\n","import { Model, dateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model({\n relation: {\n updatedAt: dateTimeField,\n }\n})\nexport class FootballGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsAgainst: number;\n penaltySaves: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltySaves: number;\n saves: number;\n goalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n autoGoals: number;\n autoGoalsAgainst: number;\n endGamePenaltyGoals: number;\n endGamePenaltyMisses: number;\n endGamePenaltySaves: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return Math.floor(10 * ((this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0))) / 10;\n }\n\n\n get totalGoals(): number {\n return Math.floor(10 * ((this.goals || 0) + (this.penaltyGoals || 0) + (this.smallPenaltyGoals || 0))) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penalties(): number {\n return Math.floor(10 * ((this.penaltyGoals || 0) + (this.penaltyAttempts || 0))) / 10;\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penalties || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penalties) / 10;\n }\n\n get smallPenalties(): number {\n return Math.floor(10 * ((this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0))) / 10;\n }\n\n get smallPenaltyGoalsPercent(): number {\n if (!this.smallPenalties || !this.smallPenaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltyGoals / this.smallPenalties) / 10;\n }\n\n get shotsAgainst(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.goalsAgainst || 0))) / 10;\n }\n\n get penaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get smallPenaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.smallPenaltySaves || 0) + (this.smallPenaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return Math.floor(10 * (\n (this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0) +\n (this.smallPenaltyGoalsAgainst || 0) + (this.autoGoalsAgainst || 0)\n )) / 10;\n }\n\n\n get totalSaves(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.penaltySaves || 0) + (this.smallPenaltySaves || 0))) / 10;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get smallPenaltySavesPercent(): number {\n if (!this.smallPenaltyShotsAgainst || !this.smallPenaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltySaves / this.smallPenaltyShotsAgainst) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField,\n }\n})\nexport class FootballStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shotsOnGoalPercent: number;\n shots: number;\n goals: number;\n totalGoals: number;\n goalsPercent: number;\n assists: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsPercent: number;\n penaltySaves: number;\n penaltyGoalsAgainst: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsPercent: number;\n smallPenaltySaves: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltyShotsAgainst: number;\n smallPenaltySavesPercent: number;\n saves: number;\n savesPercent: number;\n totalSaves: number;\n goalsAgainst: number;\n totalGoalsAgainst: number;\n shotsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n newbie: boolean;\n rank: number;\n autoGoals: number;\n autoGoalsAgainst: number;\n endGamePenaltyGoals: number;\n endGamePenaltyMisses: number;\n endGamePenaltySaves: number;\n shutout: number;\n shutoutPercent: number;\n\n get teamPlusMinus(): number {\n return (this.teamScoreSum || 0) - (this.teamMissedSum || 0);\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get penalties(): number {\n return Math.floor(10 * ((this.penaltyGoals || 0) + (this.penaltyAttempts || 0))) / 10;\n }\n\n get smallPenalties(): number {\n return Math.floor(10 * ((this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get tournamentTeamGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.gamesCount;\n }\n\n get tournamentTeamWonGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.wonGamesCount;\n }\n\n get tournamentTeamDrawGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.drawGamesCount;\n }\n\n get tournamentTeamLostGamesCount(): number {\n if (!this.tournamentTeam) {\n return null;\n }\n return this.tournamentTeam.gamesCount - this.tournamentTeam.drawGamesCount - this.tournamentTeam.wonGamesCount;\n }\n\n get tournamentTeamScoreSum(): number {\n return this.tournamentTeam && this.tournamentTeam.scoreSum;\n }\n\n get tournamentTeamMissedSum(): number {\n return this.tournamentTeam && this.tournamentTeam.missedSum;\n }\n\n get tournamentTeamPlusMinus(): number {\n if (!this.tournamentTeam) {\n return null;\n }\n return this.tournamentTeam.scoreSum - this.tournamentTeam.missedSum;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { FootballStatistic } from './football-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(FootballStatistic),\n competitorTeam: nestedModel(FootballStatistic),\n }\n})\nexport class FootballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: FootballStatistic;\n competitorTeam: FootballStatistic;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { FootballGameLog } from '../models/football-game-log';\nimport { FootballGameStatistic } from '../models/football-game-statistic';\nimport { FootballGameTeamStatistic } from '../models/football-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class FootballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<FootballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/team_statistic/`).pipe(\n map(result => new FootballGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<FootballGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new FootballGameStatistic(item))),\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<FootballGameLog[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/logs/`).pipe(\n map(result => result.map(item => new FootballGameLog(result))),\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Model, dateTimeField, enumField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum HandballGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n assist,\n penalty_miss,\n penalty_shot_on_goal,\n penalty_goal,\n save,\n penalty_save,\n foul,\n yellow_card,\n red_card,\n two_minute_foul,\n turnover,\n steal,\n block_shot,\n timeout\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(HandballGameLogTypes)\n }\n})\nexport class HandballGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HandballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: HandballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [HandballGameLogTypes.goal, HandballGameLogTypes.penalty_goal].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HandballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n isFoulType(): boolean {\n return [HandballGameLogTypes.foul, HandballGameLogTypes.yellow_card, HandballGameLogTypes.red_card].indexOf(this.logType) > -1;\n }\n}\n","import { Model } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model()\nexport class HandballGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n penaltyGoals: number;\n penaltyMisses: number;\n penaltyShotsOnGoal: number;\n saves: number;\n penaltySaves: number;\n goalsAgainst: number;\n penaltyGoalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n twoMinuteFouls: number;\n turnovers: number;\n steals: number;\n blockShots: number;\n gameTime: number;\n plusMinus: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return Math.floor(10 * ((this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0))) / 10;\n }\n\n\n get totalGoals(): number {\n return Math.floor(10 * ((this.goals || 0) + (this.penaltyGoals || 0))) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penaltyShots(): number {\n return Math.floor(10 * ((this.penaltyShotsOnGoal || 0) + (this.penaltyMisses || 0))) / 10;\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyShots || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penaltyShots) / 10;\n }\n\n get shotsAgainst(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.goalsAgainst || 0))) / 10;\n }\n\n get penaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return Math.floor(10 * ((this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalSaves(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.penaltySaves || 0))) / 10;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField\n }\n})\nexport class HandballStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n penaltyGoals: number;\n penaltyMisses: number;\n penaltyShotsOnGoal: number;\n saves: number;\n penaltySaves: number;\n goalsAgainst: number;\n penaltyGoalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n twoMinuteFouls: number;\n turnovers: number;\n steals: number;\n blockShots: number;\n gameTime: number;\n plusMinus: number;\n shots: number;\n goalsPercent: number;\n penaltyShots: number;\n penaltyGoalsPercent: number;\n shotsAgainst: number;\n savesPercent: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n totalGoals: number;\n totalSaves: number;\n totalGoalsAgainst: number;\n newbie: boolean;\n rank: number;\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { HandballStatistic } from './handball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(HandballStatistic),\n competitorTeam: nestedModel(HandballStatistic),\n }\n})\nexport class HandballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: HandballStatistic;\n competitorTeam: HandballStatistic;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { HandballGameLog } from '../models/handball-game-log';\nimport { HandballGameStatistic } from '../models/handball-game-statistic';\nimport { HandballGameTeamStatistic } from '../models/handball-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class HandballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HandballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/team_statistic/`).pipe(\n map(result => new HandballGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HandballGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new HandballGameStatistic(item))),\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HandballGameLog[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/logs/`).pipe(\n map(result => result.map(item => new HandballGameLog(item))),\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { BaseModel, Model, dateTimeField, nestedModel } from './util';\nimport { File } from './file';\nimport { User } from './user';\n\n@Model({\n relation: {\n picture: nestedModel(File),\n author: nestedModel(User),\n createdAt: dateTimeField,\n }\n})\nexport class TournamentNews extends BaseModel {\n id: number;\n title: string;\n picture: File;\n text: string;\n author: User;\n createdAt: Date;\n}\n","import { Model, BaseModel, listField, nestedModel } from './util';\n\n@Model()\nexport class GameTimelineStageItem extends BaseModel {\n stageId: number;\n toursCount: number;\n playoffStagesCount: number;\n playoffTeamsCount: number;\n}\n\n@Model({\n relation: {\n stages: listField(nestedModel(GameTimelineStageItem))\n }\n})\nexport class GameTimelineStages extends BaseModel {\n toursCount: number;\n playoffStagesCount: number;\n playoffTeamsCount: number;\n currentTour: number;\n currentPlayoffStage: number;\n currentPlayoffRound: number;\n stages: GameTimelineStageItem[];\n tournamentStageId: number;\n tournamentRoundId: number;\n}\n","import { Model, BaseModel, enumField, dateField } from './util';\n\nexport enum TournamentStageStatuses {\n open,\n in_progress,\n closed\n}\n\n@Model({\n relation: {\n date: dateField,\n status: enumField(TournamentStageStatuses)\n }\n})\nexport class TournamentStage extends BaseModel {\n id: number;\n name: string;\n date: Date;\n tournamentId: number;\n status: TournamentStageStatuses;\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { Team } from './team';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { TeamUser } from './team-user';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n tournamentTeam: nestedModel(TournamentTeam),\n user: nestedModel(User),\n month: dateField,\n }\n})\nexport class VolleyballStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n goodServes: number;\n servePercent: number;\n acePercent: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n blockPercent: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n attackPercent: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n receivePercent: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n serveReceivePercent: number;\n points: number;\n faults: number;\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get totalReceives(): number {\n return Math.floor(10 * (this.receives + this.excellentReceives + this.receiveFaults)) / 10;\n }\n\n get totalServeReceives(): number {\n return Math.floor(10 * (this.serveReceives + this.excellentServeReceives + this.serveReceiveFaults)) / 10;\n }\n\n get totalServes(): number {\n return Math.floor(10 * (this.serveAces + this.serveHits + this.serveFaults + this.goodServes)) / 10;\n }\n\n get totalAttacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots + this.attackFaults)) / 10;\n }\n\n get totalBlocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds + this.blockFaults)) / 10;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TournamentGroup } from './tournament-group';\n\n@Model({\n relation: {\n tournamentTeam: nestedModel(TournamentTeam),\n group: nestedModel(TournamentGroup),\n }\n})\nexport class TournamentStageTeam extends BaseModel {\n id: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n tournamentStageId: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n missedSum: number;\n lastGamesCount: number;\n lastGamesWon: number;\n points: number;\n mtPoints: number;\n finalStanding: number;\n receivedPoints: number;\n receivedMtPoints: number;\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n}\n","import { Model, BaseModel, listField, dateTimeField, enumField, nestedModel } from './util';\nimport { File } from './file';\nimport { Tournament } from './tournament';\n\nexport enum LeagueNewsType {\n text = 1,\n video\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n picture: nestedModel(File),\n cover: nestedModel(File),\n mobilePicture: nestedModel(File),\n tournaments: listField(nestedModel(Tournament)),\n type: enumField(LeagueNewsType),\n }\n})\nexport class LeagueNews extends BaseModel {\n id: number;\n title: string;\n datetime: Date;\n previewText: string;\n detailText: string;\n picture: File;\n cover: File;\n mobilePicture: File;\n isMain: boolean;\n tournaments: Tournament[];\n type: LeagueNewsType;\n videoLink: string;\n tag: string;\n}\n","import { Model, BaseModel, dateField, enumField, listField, nestedModel } from './util';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\nimport { League } from './league';\nimport { LeagueNews } from './league-news';\n\nexport enum TournamentEventTypes {\n game_closed = 1,\n media_added,\n news\n}\n\n@Model({\n relation: {\n game: nestedModel(Game),\n news: nestedModel(LeagueNews),\n league: nestedModel(League),\n tournaments: listField(nestedModel(Tournament)),\n datetime: dateField,\n event: enumField(TournamentEventTypes)\n }\n})\nexport class TournamentEvent extends BaseModel {\n id: number;\n game: Game;\n news: LeagueNews;\n tournaments: Tournament[];\n event: TournamentEventTypes;\n datetime: Date;\n}\n","import { User } from './user';\nimport { BaseModel, enumField, listField, Model, nestedModel } from './util';\n\n\nexport enum LeagueUserRoles {\n admin = 1,\n moderator,\n game_manager\n}\n\nexport enum LeagueUserPermissions {\n settings = 1,\n users,\n teams,\n media,\n news,\n game_export,\n schedule,\n game_management\n}\n\n@Model({\n relation: {\n user: nestedModel(User),\n permissions: listField(enumField(LeagueUserPermissions))\n }\n})\nexport class LeagueUser extends BaseModel {\n id: number;\n user: User;\n _role: LeagueUserRoles;\n permissions: LeagueUserPermissions[];\n\n set role(value: LeagueUserRoles|string) {\n this._role = LeagueUserRoles[value];\n }\n\n get role(): LeagueUserRoles|string {\n return this._role;\n }\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField\n }\n})\nexport class RugbyStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n points: number;\n tries: number;\n penaltyTries: number;\n conversionKicks: number;\n conversionGoals: number;\n conversionMisses: number;\n conversionGoalsPercent: number;\n penalties: number;\n penaltyKicksOnGoal: number;\n penaltyMisses: number;\n penaltyGoals: number;\n penaltyGoalsPercent: number;\n tapPenalties: number;\n penaltyKicksToTouch: number;\n dropGoalKicks: number;\n dropGoals: number;\n dropGoalMisses: number;\n dropGoalsPercent: number;\n totalGoals: number;\n freeKicks: number;\n yellowCards: number;\n redCards: number;\n offloads: number;\n tackles: number;\n handlingErrors: number;\n carriesOverGainline: number;\n footFieldShots: number;\n footOutShots: number;\n footKicks5022: number;\n footShots: number;\n plusMinus: number;\n gameTime: number;\n\n scrums: number;\n scrumsWon: number;\n scrumsLost: number;\n scrumsWonPercent: number;\n scrumsWonFree: number;\n opponentScrumsWon: number;\n opponentScrumsLost: number;\n lineouts: number;\n lineoutsWon: number;\n lineoutsLost: number;\n lineoutsSteal: number;\n lineoutsWonPercent: number;\n opponentLineoutsLost: number;\n quickThrows: number;\n rucks: number;\n rucksWon: number;\n rucksLost: number;\n rucksWonPercent: number;\n opponentRucksWon: number;\n opponentRucksLost: number;\n mauls: number;\n maulsWon: number;\n maulsLost: number;\n maulWonPercent: number;\n opponentMaulsWon: number;\n opponentMaulsLost: number;\n fouls: number;\n teamFouls: number;\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get totalFouls(): number {\n return Math.floor(10 * ((this.fouls || 0) + (this.teamFouls || 0))) / 10;\n }\n}\n","import { Model, BaseModel, enumField } from './util';\n\nexport enum AchievementTypes {\n by_game = 1,\n by_stage\n}\n\n@Model({\n relation: {\n type: enumField(AchievementTypes),\n }\n})\nexport class Achievement extends BaseModel {\n id: number;\n name: string;\n alias: string;\n type: AchievementTypes;\n value: number;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { Achievement } from './achievement';\nimport { Game } from './game';\nimport { TournamentStage } from './tournament-stage';\n\n@Model({\n relation: {\n achievement: nestedModel(Achievement),\n tournamentStage: nestedModel(TournamentStage),\n game: nestedModel(Game),\n }\n})\nexport class TeamAchievement extends BaseModel {\n id: number;\n teamId: number;\n achievement: Achievement;\n game: Game;\n tournamentStage: TournamentStage;\n mtPoints: number;\n}\n","import { Model, dateField, nestedModel } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n leaguePlayer: nestedModel(LeaguePlayer),\n tournamentTeamUser: nestedModel(TournamentTeamUser),\n team: nestedModel(Team),\n teamUser: nestedModel(TeamUser),\n user: nestedModel(User),\n tournamentTeam: nestedModel(TournamentTeam),\n month: dateField\n }\n})\nexport class WaterpoloStatistic extends BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppTotalShotsOnGoal: number;\n evTotalShotsOnGoal: number;\n shTotalShotsOnGoal: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppCounterAttackGoals: number;\n ppCounterAttackOnGoals: number;\n ppCounterAttackMisses: number;\n ppCounterAttackShotsBlocked: number;\n evCounterAttackGoals: number;\n evCounterAttackOnGoals: number;\n evCounterAttackMisses: number;\n evCounterAttackShotsBlocked: number;\n shCounterAttackGoals: number;\n shCounterAttackOnGoals: number;\n shCounterAttackMisses: number;\n shCounterAttackShotsBlocked: number;\n ppManeuverGoals: number;\n ppManeuverOnGoals: number;\n ppManeuverMisses: number;\n ppManeuverShotsBlocked: number;\n evManeuverGoals: number;\n evManeuverOnGoals: number;\n evManeuverMisses: number;\n evManeuverShotsBlocked: number;\n shManeuverGoals: number;\n shManeuverOnGoals: number;\n shManeuverMisses: number;\n shManeuverShotsBlocked: number;\n ppCenterForwardGoals: number;\n ppCenterForwardOnGoals: number;\n ppCenterForwardMisses: number;\n ppCenterForwardShotsBlocked: number;\n evCenterForwardGoals: number;\n evCenterForwardOnGoals: number;\n evCenterForwardMisses: number;\n evCenterForwardShotsBlocked: number;\n shCenterForwardGoals: number;\n shCenterForwardOnGoals: number;\n shCenterForwardMisses: number;\n shCenterForwardShotsBlocked: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n shSaves: number;\n evSaves: number;\n ppCounterAttackSaves: number;\n shCounterAttackSaves: number;\n evCounterAttackSaves: number;\n ppManeuverSaves: number;\n shManeuverSaves: number;\n evManeuverSaves: number;\n ppCenterForwardSaves: number;\n shCenterForwardSaves: number;\n evCenterForwardSaves: number;\n ppFreeKickSaves: number;\n shFreeKickSaves: number;\n evFreeKickSaves: number;\n ppCornerSaves: number;\n shCornerSaves: number;\n evCornerSaves: number;\n ppTotalGameSaves: number;\n shTotalGameSaves: number;\n evTotalGameSaves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n ppCounterAttackGoalsAgainst: number;\n shCounterAttackGoalsAgainst: number;\n evCounterAttackGoalsAgainst: number;\n counterAttackGoalsAgainst: number;\n ppManeuverGoalsAgainst: number;\n shManeuverGoalsAgainst: number;\n evManeuverGoalsAgainst: number;\n maneuverGoalsAgainst: number;\n ppCenterForwardGoalsAgainst: number;\n shCenterForwardGoalsAgainst: number;\n evCenterForwardGoalsAgainst: number;\n centerForwardGoalsAgainst: number;\n ppFreeKickGoalsAgainst: number;\n shFreeKickGoalsAgainst: number;\n evFreeKickGoalsAgainst: number;\n freeKickGoalsAgainst: number;\n ppCornerGoalsAgainst: number;\n shCornerGoalsAgainst: number;\n evCornerGoalsAgainst: number;\n cornerGoalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n fouls: number;\n minorPenalties: number;\n majorPenalties: number;\n matchPenalties: number;\n penaltyFouls: number;\n turnovers: number;\n attackFouls: number;\n personalFouls: number;\n drawnFouls: number;\n drawnTurnovers: number;\n yellowCards: number;\n redCards: number;\n losses: number;\n steals: number;\n ppFreeKickGoals: number;\n ppFreeKickOnGoals: number;\n ppFreeKickMisses: number;\n ppFreeKickShotsBlocked: number;\n shFreeKickGoals: number;\n shFreeKickOnGoals: number;\n shFreeKickMisses: number;\n shFreeKickShotsBlocked: number;\n evFreeKickGoals: number;\n evFreeKickOnGoals: number;\n evFreeKickMisses: number;\n evFreeKickShotsBlocked: number;\n freeKickPasses: number;\n freeKickSelfs: number;\n ppCornerGoals: number;\n ppCornerOnGoals: number;\n ppCornerMisses: number;\n ppCornerShotsBlocked: number;\n shCornerGoals: number;\n shCornerOnGoals: number;\n shCornerMisses: number;\n shCornerShotsBlocked: number;\n evCornerGoals: number;\n evCornerOnGoals: number;\n evCornerMisses: number;\n evCornerShotsBlocked: number;\n cornerPasses: number;\n cornerSelfs: number;\n tackles: number;\n playerEfficiency: number;\n\n /*additional statistic*/\n ppShots: number;\n shShots: number;\n evShots: number;\n ppGoalsPercent: number;\n shGoalsPercent: number;\n evGoalsPercent: number;\n totalPpGoals: number;\n totalShGoals: number;\n totalEvGoals: number;\n goals: number;\n totalGoals: number;\n positionAttackGoals: number;\n positionAttackShotsOnGoal: number;\n positionAttackShotsMiss: number;\n positionAttackShots: number;\n positionAttackGoalsPercent: number;\n totalCounterAttackGoals: number;\n counterAttackShotOnGoals: number;\n counterAttackShotMisses: number;\n counterAttackShots: number;\n counterAttackGoalsPercent: number;\n totalManeuverGoals: number;\n maneuverShotMisses: number;\n maneuverShotOnGoals: number;\n maneuverShots: number;\n maneuverGoalsPercent: number;\n totalCenterForwardGoals: number;\n centerForwardShotOnGoals: number;\n centerForwardShotMisses: number;\n centerForwardShots: number;\n centerForwardGoalsPercent: number;\n totalFreeKickGoals: number;\n freeKickShotMisses: number;\n freeKickOnGoals: number;\n totalFreeKicks: number;\n freeKickGoalsPercent: number;\n totalCornerGoals: number;\n totalCorners: number;\n totalInGameGoals: number;\n inGameShotMisses: number;\n totalPpShotMisses: number;\n shotMisses: number;\n totalPpShotsOnGoal: number;\n inGameShotsOnGoals: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n shotsOnGoalPercent: number;\n totalShots: number;\n goalsPercent: number;\n totalGoalsPercent: number;\n faceOffs: number;\n faceOffPercent: number;\n totalFouls: number;\n totalPenalties: number;\n shootoutShots: number;\n shootoutGoalsPercent: number;\n\n /*goalie stat*/\n positionAttackSaves: number;\n positionAttackShotsAgainst: number;\n positionAttackSavesPercent: number;\n counterAttackSaves: number;\n counterAttackShotsAgainst: number;\n counterAttackSavesPercent: number;\n centerForwardSaves: number;\n centerForwardShotsAgainst: number;\n centerForwardSavesPercent: number;\n maneuverSaves: number;\n maneuverShotsAgainst: number;\n maneuverSavesPercent: number;\n freeKickSaves: number;\n freeKickShotsAgainst: number;\n freeKickSavesPercent: number;\n cornerSaves: number;\n cornerShotsAgainst: number;\n cornerSavesPercent: number;\n inGameSaves: number;\n saves: number;\n totalSaves: number;\n shootoutShotsAgainst: number;\n shootoutSavesPercent: number;\n gameShotsAgainst: number;\n savesPercent: number;\n totalShotsAgainst: number;\n totalSavesPercent: number;\n inGameGoalsAgainst: number;\n totalGoalsAgainst: number;\n totalShSaves: number;\n totalShGoalsAgainst: number;\n totalShShotsAgainst: number;\n totalShSavesPercent: number;\n totalEvSaves: number;\n totalEvGoalsAgainst: number;\n totalEvShotsAgainst: number;\n totalEvSavesPercent: number;\n\n newbie: boolean;\n rank: number;\n\n get assists(): number {\n return Math.floor(10 * ((this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get penaltyTime(): string {\n if (!this.penaltyMinutes) {\n return '00:00';\n }\n const minutes = Math.floor(this.penaltyMinutes / 60);\n const seconds = Math.floor(this.penaltyMinutes - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n}\n","import { BaseModel, Model, enumField, listField, nestedModel } from './util';\nimport { TournamentDivision } from './tournament-division';\n\nexport enum TournamentRoundTypes {\n group = 1,\n playoff,\n}\n\nexport class TournamentRoundSettings extends BaseModel {\n toursCount: number;\n}\n\n@Model({\n relation: {\n type: enumField(TournamentRoundTypes),\n divisions: listField(nestedModel(TournamentDivision)),\n }\n})\nexport class TournamentRound extends BaseModel {\n id: number;\n name: string;\n type: TournamentRoundTypes;\n divisions: TournamentDivision[];\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Tournament } from '../models/tournament';\nimport { map } from 'rxjs/operators';\nimport { TournamentNews } from '../models/tournament-news';\nimport { Game, GameStatuses } from '../models/game';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { Playoff } from '../models/playoff';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyStatistic } from '../models/hockey-statistic';\nimport { FootballStatistic } from '../models/football-statistic';\nimport { LeagueUserPermissions } from '../models/league-user';\nimport { HandballStatistic } from '../models/handball-statistic';\nimport { RugbyStatistic } from '../models/rugby-statistic';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { TeamAchievement } from '../models/team-achievement';\nimport { WaterpoloStatistic } from '../models/waterpolo-statistic';\nimport { TournamentRound } from '../models/tournament-round';\nimport { TournamentDivision } from '../models/tournament-division';\nimport { UserGender } from '../models/user';\n\nexport interface TournamentGamesFilters {\n tournamentIds?: number[];\n tournamentSeasonId?: number;\n tournamentStageId?: number;\n tournamentRoundId?: number;\n tournamentGroupId?: number;\n divisionId?: number;\n tournamentTour?: number;\n teamId?: number;\n playoffStage?: number;\n playoffRound?: number;\n playoffId?: number;\n isPlayoff?: boolean;\n status?: GameStatuses;\n statuses?: GameStatuses[];\n tournamentCourtId?: number;\n leaguePlayerId?: number;\n userId?: number;\n query?: string;\n}\n\nexport type StatisticGroupByTypes = 'team' | 'user' | 'team_user' | 'tournament_team' | 'league_player' | 'tournament_team_user'\n | 'month' | 'win_loses';\n\nexport interface StatisticFilters {\n league_id?: number;\n tournament_id?: number;\n tournament_ids?: number[];\n tournament_season_id?: number;\n tournament_team_id?: number;\n league_player_id?: number;\n tournament_team_user_id?: number;\n team_id?: number;\n team_user_id?: number;\n user_id?: number;\n tournament_stage_id?: number;\n tournament_round_id?: number;\n division_id?: number;\n tournament_group_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_round?: number;\n playoff_id?: number;\n is_playoff?: boolean;\n date_from?: string;\n date_to?: string;\n query?: string;\n gender?: UserGender;\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n order_by?: string;\n page?: number;\n size?: number;\n}\n\nexport interface StatisticLeadersFilters {\n tournament_id?: number;\n tournament_ids?: number[];\n tournament_season_id?: number;\n tournament_team_id?: number;\n team_id?: number;\n tournament_stage_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_id?: number;\n date_from?: string;\n date_to?: string;\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n size?: number;\n fields: string[];\n}\n\nexport interface TournamentEventsListFilter {\n event?: TournamentEventTypes;\n search?: string;\n tournamentTour?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentId: number): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/`)\n .pipe(map(result => new Tournament(result)))\n .toPromise();\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/${alias}/`)\n .pipe(map(result => new Tournament(result)))\n .toPromise();\n }\n\n async getSeasonTournaments(seasonTournamentId: number): Promise<Tournament[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/season_tournament/${seasonTournamentId}/tournaments/`\n )\n .pipe(map(result => result.map(item => new Tournament(item))))\n .toPromise();\n }\n\n async getNews(tournamentId: number): Promise<TournamentNews[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`)\n .pipe(map(result => result.map(item => new TournamentNews(item))))\n .toPromise();\n }\n\n async getEvents(\n tournamentId: number, page: number, size: number,\n filters?: TournamentEventsListFilter\n ): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/events/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new TournamentEvent(item))\n })))\n .toPromise();\n }\n\n async getTournamentStages(tournamentId: number): Promise<TournamentStage[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stages/`).pipe(\n map(data => data.map(item => new TournamentStage(item)))\n ).toPromise();\n }\n\n async getTournamentRounds(tournamentId: number): Promise<TournamentRound[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/rounds/`).pipe(\n map(data => data.map(item => new TournamentRound(item))),\n ).toPromise();\n }\n\n async getTournamentDivisions(tournamentId: number): Promise<TournamentDivision[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/divisions/`).pipe(\n map(data => data.map(item => new TournamentDivision(item))),\n ).toPromise();\n }\n\n async getPlayoff(tournamentId: number): Promise<Playoff[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/playoff/`).pipe(\n map(result => result.map(item => new Playoff(item)))\n ).toPromise();\n }\n\n async getPlayoffGames(playoffId: number, playoffNumber?: string): Promise<Game[]> {\n let params = new HttpParams();\n if (playoffNumber) {\n params = params.set('playoff_number', playoffNumber);\n }\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_playoff/${playoffId}/games/`,\n {params}\n ).pipe(\n map(result => result.map(item => new Game(item)))\n ).toPromise();\n }\n\n async getGamesStages(tournamentId: number, roundId?: number): Promise<GameTimelineStages> {\n let params = new HttpParams();\n if (roundId) {\n params = params.set('tournament_round_id', roundId.toString());\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_stages/`,\n {params}\n )\n .pipe(map(data => new GameTimelineStages(data)))\n .toPromise();\n }\n\n async getGames(\n tournamentId: number, page: number, size: number,\n filters: TournamentGamesFilters = {}\n ): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games/`,\n {params, observe: 'response'}\n )\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Game(item)),\n }))).toPromise();\n }\n\n async getGamesDates(tournamentId: number): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_dates/`,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body\n }))\n ).toPromise();\n }\n\n async getGroups(tournamentId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/groups/`)\n .pipe(map(result => result.map(item => new TournamentGroup(item))))\n .toPromise();\n }\n\n async getTeams(tournamentId: number, groupId?: number, short?: boolean): Promise<TournamentTeam[]> {\n let params = new HttpParams();\n if (groupId) {\n params = params.set('group_id', groupId.toString());\n }\n if (short) {\n params = params.set('short', '1');\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams/`,\n {params}\n )\n .pipe(map(result => result.map(item => new TournamentTeam(item))))\n .toPromise();\n }\n\n async getStageTeams(tournamentId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stage_teams/`)\n .pipe(map(result => result.map(item => new TournamentStageTeam(item))))\n .toPromise();\n }\n\n async getTeamsAchievements(tournamentId: number): Promise<TeamAchievement[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/achievements/`)\n .pipe(map(result => result.map(item => new TeamAchievement(item))))\n .toPromise();\n }\n\n async getTeamById(tournamentTeamId: number): Promise<TournamentTeam> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/`)\n .pipe(map(result => new TournamentTeam(result)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<TournamentTeamUser> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${userId}/`)\n .pipe(map(result => new TournamentTeamUser(result)))\n .toPromise();\n }\n\n async getUserGames(tournamentUserId: number): Promise<Game[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentUserId}/games/`)\n .pipe(map(result => result.map(item => new Game(item))))\n .toPromise();\n }\n\n async downloadTable(tournamentId: number, format: 'pdf' | 'xlsx', isChess?: boolean): Promise<any> {\n let httpParams = new HttpParams().set('file_type', format);\n if (isChess) {\n httpParams = httpParams.set('isChess', true);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/table_file/`, {\n params: httpParams,\n responseType: 'blob'\n }).toPromise();\n }\n\n async getBasketballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: BasketballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/basketball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new BasketballStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getVolleyballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: VolleyballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/volleyball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new VolleyballStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getHockeyStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: HockeyStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/hockey_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new HockeyStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getFootballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: FootballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/football_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new FootballStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getHandballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: HandballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/handball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new HandballStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getWaterpoloStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: WaterpoloStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/waterpolo_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = result[key].map(item => new WaterpoloStatistic(item));\n }\n return result;\n })\n ).toPromise();\n }\n\n async getBasketballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<BasketballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/basketball_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new BasketballStatistic(item))\n }))\n ).toPromise();\n }\n\n async getVolleyballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<VolleyballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/volleyball_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new VolleyballStatistic(item)),\n }))\n ).toPromise();\n }\n\n async getHockeyStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<HockeyStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/hockey_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new HockeyStatistic(item)),\n }))\n ).toPromise();\n }\n\n async getFootballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<FootballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/football_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new FootballStatistic(item)),\n }))\n ).toPromise();\n }\n\n async getHandballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<HandballStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/handball_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new HandballStatistic(item)),\n }))\n ).toPromise();\n }\n\n async getRugbyStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<RugbyStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/rugby_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new RugbyStatistic(item))\n }))\n ).toPromise();\n }\n\n async getWaterpoloStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<WaterpoloStatistic[]>> {\n let params = new HttpParams();\n params = applyStatisticFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/waterpolo_statistic/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new WaterpoloStatistic(item)),\n }))\n ).toPromise();\n }\n\n async getTournamentTeamUsers(tournamentTeamId: number): Promise<TournamentTeamUser[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users/`\n ).pipe(\n map(result => result.map(item => new TournamentTeamUser(item))),\n ).toPromise();\n }\n\n async myPermission(tournamentId: number): Promise<LeagueUserPermissions[]> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/permission/`\n ).pipe(\n map((data: any) => (data.permissions || []).map(item => LeagueUserPermissions[item]))\n ).toPromise();\n }\n\n async getTournamentTeamTournaments(tournamentTeamId: number): Promise<Tournament[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/tournaments/`\n ).pipe(\n map(result => result.map(item => new Tournament(item)))\n ).toPromise();\n }\n\n async getTournamentUserTournaments(tournamentTeamUserId: number): Promise<Tournament[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentTeamUserId}/tournaments/`\n ).pipe(\n map(result => result.map(item => new Tournament(item)))\n ).toPromise();\n }\n}\n\nexport function applyGamesFilters(filters: TournamentGamesFilters, params: HttpParams): HttpParams {\n if (filters.tournamentIds) {\n params = params.set('tournament_ids', filters.tournamentIds.join(','));\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentRoundId) {\n params = params.set('tournament_round_id', filters.tournamentRoundId.toString());\n }\n if (filters.tournamentGroupId) {\n params = params.set('tournament_group_id', filters.tournamentGroupId.toString());\n }\n if (filters.divisionId) {\n params = params.set('division_id', filters.divisionId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.playoffRound) {\n params = params.set('playoff_round', filters.playoffRound.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n if (filters.leaguePlayerId) {\n params = params.set('league_player_id', filters.leaguePlayerId.toString());\n }\n if (filters.userId) {\n params = params.set('user_id', filters.userId.toString());\n }\n if (filters.query) {\n params = params.set('query', filters.query);\n }\n if (filters.isPlayoff !== undefined && filters.isPlayoff !== null) {\n params = params.set('is_playoff', filters.isPlayoff ? '1' : '0');\n }\n return params;\n}\n\nexport function applyStatisticFilters(filters: StatisticFilters, params: HttpParams): HttpParams {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n\n if (filters.tournament_ids) {\n params = params.set('tournament_ids', filters.tournament_ids.join(','));\n }\n\n if (filters.is_playoff !== undefined && filters.is_playoff !== null) {\n params = params.set('is_playoff', filters.is_playoff ? '1' : '0');\n }\n\n return params;\n}\n\nexport function applyStatisticLeadersFilters(filters: StatisticLeadersFilters, params: HttpParams): HttpParams {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n\n if (filters.tournament_ids) {\n params = params.set('tournament_ids', filters.tournament_ids.join(','));\n }\n if (filters.fields) {\n params = params.set('fields', filters.fields.join(','));\n }\n return params;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n picture: nestedModel(File)\n }\n})\nexport class LeaguePartner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n}\n","import { Model, BaseModel, enumField, nestedModel } from './util';\nimport { File } from './file';\n\nexport enum BannerLocation {\n slider = 'slider',\n central = 'central',\n media = 'media',\n}\n\n@Model({\n relation: {\n picture: nestedModel(File),\n location: enumField(BannerLocation),\n }\n})\nexport class LeagueBanner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n location: BannerLocation;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n file: nestedModel(File),\n }\n})\nexport class LeagueDocument extends BaseModel {\n id: number;\n file: File;\n}\n","import { Model, BaseModel, listField, nestedModel } from './util';\nimport { Team } from './team';\nimport { LeaguePlayer } from './league-player';\n\n@Model({\n relation: {\n teams: listField(nestedModel(Team)),\n leaguePlayers: listField(nestedModel(LeaguePlayer)),\n }\n})\nexport class TeamsAndUsers extends BaseModel {\n teams: Team[];\n leaguePlayers: LeaguePlayer[];\n\n get isEmpty(): boolean {\n return (!this.teams || this.teams.length === 0) &&\n (!this.leaguePlayers || this.leaguePlayers.length === 0);\n }\n}\n","import { Model, BaseModel } from './util';\n\n@Model()\nexport class SeasonTournament extends BaseModel {\n id: number;\n name: string;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { League } from '../models/league';\nimport { map } from 'rxjs/operators';\nimport { Tournament, TournamentStatuses } from '../models/tournament';\nimport { ConfigService } from '../services/config.service';\nimport { applyGamesFilters, TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { Game } from '../models/game';\nimport { LeaguePartner } from '../models/league-partner';\nimport { LeagueCourt } from '../models/league-court';\nimport { BannerLocation, LeagueBanner } from '../models/league-banner';\nimport { LeagueDocument } from '../models/league-document';\nimport { TeamsAndUsers } from '../models/teams-and-users';\nimport { SeasonTournament } from '../models/season-tournament';\n\nexport interface TournamentListFilters {\n statuses: TournamentStatuses[];\n}\n\n@Injectable({providedIn: 'root'})\nexport class LeagueApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getByAlias(alias: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${alias}/`).pipe(\n map(result => new League(result))\n ).toPromise();\n }\n\n async getByDomain(domain: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/by_domain/${domain}/`).pipe(\n map(result => new League(result))\n ).toPromise();\n }\n\n async getSeasonTournaments(leagueId: number): Promise<SeasonTournament[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/season_tournaments/`).pipe(\n map(response => response.map(item => new SeasonTournament(item))),\n ).toPromise();\n }\n\n async getTournaments(leagueId: number, filters?: TournamentListFilters): Promise<Tournament[]> {\n let params = new HttpParams();\n if (filters) {\n if (filters.statuses) {\n params = params.set('statuses', filters.statuses.map(s => TournamentStatuses[s]).join(','));\n }\n }\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`, {params}).pipe(\n map(result => result.map(item => new Tournament(item))),\n ).toPromise();\n }\n\n async getTournamentsPaginated(\n leagueId: number,\n filters?: TournamentListFilters,\n page = 1,\n size = 100\n ): Promise<PaginatedResponse<Tournament[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.statuses) {\n params = params.set('statuses', filters.statuses.map(s => TournamentStatuses[s]).join(','));\n }\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Tournament(item))\n })),\n ).toPromise();\n }\n\n async getEvents(\n leagueId: number, page: number, size: number,\n filters?: TournamentEventsListFilter\n ): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/events/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new TournamentEvent(item)),\n }))\n ).toPromise();\n }\n\n async getTournamentSeasons(leagueId: number): Promise<TournamentSeason[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`).pipe(\n map(result => result.map(item => new TournamentSeason(item))),\n ).toPromise();\n }\n\n async getGames(leagueId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/games/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Game(item)),\n }))\n ).toPromise();\n }\n\n async getSeasons(\n leagueId: number, page = 1, size = 20,\n notClosed?: boolean, include?: string[]\n ): Promise<PaginatedResponse<TournamentSeason[]>> {\n const params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString())\n .set('not_closed', notClosed ? '1' : '')\n .set('include', include ? include.join(',') : '');\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`, {\n params,\n observe: 'response'\n })\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new TournamentSeason(item)),\n })))\n .toPromise();\n }\n\n async getPartners(leagueId: number): Promise<LeaguePartner[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/partners/`).pipe(\n map(result => result.map(item => new LeaguePartner(item))),\n ).toPromise();\n }\n\n async getBanners(leagueId: number, location?: BannerLocation): Promise<LeagueBanner[]> {\n const params = location ? new HttpParams().set('location', location) : new HttpParams();\n\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/banners/`, {params}).pipe(\n map(result => result.map(item => new LeagueBanner(item))),\n ).toPromise();\n }\n\n async getCourts(leagueId: number): Promise<LeagueCourt[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/courts/`).pipe(\n map(result => result.map(item => new LeagueCourt(item))),\n ).toPromise();\n }\n\n async getGraphicSettings(leagueId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/graphic_settings/`)\n .toPromise();\n }\n\n async getDocuments(leagueId: number): Promise<LeagueDocument[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/documents/`).pipe(\n map(result => result.map(item => new LeagueDocument(item))),\n ).toPromise();\n }\n\n async searchTeamsAndUsers(leagueId: number, query: string): Promise<TeamsAndUsers> {\n const params = (new HttpParams()).set('query', query);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/team_and_user_search/`, {params}\n ).pipe(\n map(result => new TeamsAndUsers(result))\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { LeagueNews, LeagueNewsType } from '../models/league-news';\nimport { map } from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class LeagueNewsApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getLeagueNewsList(\n leagueId: number, page: number, size: number,\n type: LeagueNewsType = LeagueNewsType.text, seasonId?: number\n ): Promise<PaginatedResponse<LeagueNews[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString())\n .set('type', LeagueNewsType[type]);\n if (seasonId) {\n params = params.set('season', seasonId.toString());\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/`,\n {params, observe: 'response'}\n )\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new LeagueNews(item)),\n })))\n .toPromise();\n }\n\n async getMainLeagueNews(leagueId: number): Promise<LeagueNews> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => response && response.length > 0 ? new LeagueNews(response[0]) : null))\n .toPromise();\n }\n\n async getMainLeagueNewsList(leagueId: number): Promise<LeagueNews[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => response.map(item => new LeagueNews(item))))\n .toPromise();\n }\n\n async getNewsById(newsId: number): Promise<LeagueNews> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_news/${newsId}/`)\n .pipe(map(response => new LeagueNews(response)))\n .toPromise();\n }\n\n async getTournamentNewsList(tournamentId: number): Promise<PaginatedResponse<LeagueNews[]>> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`,\n {observe: 'response'}\n )\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new LeagueNews(item)),\n })))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { LeaguePlayer } from '../models/league-player';\nimport { map } from 'rxjs/operators';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\n\n@Injectable({providedIn: 'root'})\nexport class LeaguePlayerApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(leaguePlayerId: number): Promise<LeaguePlayer> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_player/${leaguePlayerId}/`).pipe(\n map(item => new LeaguePlayer(item))\n ).toPromise();\n }\n\n getTournamentUsers(leaguePlayerId: number, seasonId?: number): Promise<TournamentTeamUser[]> {\n let params = new HttpParams();\n if (seasonId) {\n params = params.set('season_id', seasonId.toString());\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/league_player/${leaguePlayerId}/tournament_users/`,\n {params}\n ).pipe(\n map(response => response.map(item => new TournamentTeamUser(item))),\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { MediaItem } from '../models/media-item';\nimport { Game, GameStatuses } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\nimport { applyGamesFilters, TournamentGamesFilters } from './tournament-api';\n\nexport interface GameMediaFilters extends TournamentGamesFilters {\n mediaCount?: number;\n}\n\nexport interface MediaFilters {\n mediaType?: 'photo' | 'video' | 'live_video';\n sort?: string;\n teamId?: number;\n statuses?: GameStatuses[];\n}\n\n@Injectable({providedIn: 'root'})\nexport class MediaApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getMedia(mediaId: number): Promise<MediaItem> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/`).pipe(\n map(result => new MediaItem(result))\n ).toPromise();\n }\n\n async getTournamentGameMedia(\n tournamentId: number, page: number, size: number,\n filters?: GameMediaFilters\n ): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/game_media/`,\n {observe: 'response', params}\n ).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new Game(item)),\n };\n })\n ).toPromise();\n }\n\n async getLeagueGameMedia(leagueId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/game_media/`,\n {observe: 'response', params}\n ).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new Game(item)),\n };\n })\n ).toPromise();\n }\n\n async getLeagueMedia(leagueId: number, page: number, size: number, filters: MediaFilters = {}): Promise<PaginatedResponse<MediaItem[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters.mediaType) {\n params = params.set('media_type', filters.mediaType);\n }\n if (filters.sort) {\n params = params.set('sort', filters.sort);\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/media/`,\n {params, observe: 'response'}\n )\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new MediaItem(item)),\n }))).toPromise();\n }\n\n async getTournamentMedia(tournamentId: number, page: number, size: number, filters: MediaFilters = {}): Promise<PaginatedResponse<MediaItem[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters.mediaType) {\n params = params.set('media_type', filters.mediaType);\n }\n if (filters.sort) {\n params = params.set('sort', filters.sort);\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/media/`,\n {params, observe: 'response'}\n )\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new MediaItem(item)),\n }))).toPromise();\n }\n\n async getGameMediaById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/game_media/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getGameMedia(gameId: number): Promise<MediaItem[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/media/?size=1000`).pipe(\n map(result => result.map(item => new MediaItem(item))),\n ).toPromise();\n }\n\n async createZip(mediaIds: number[]): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/media/zip/`, mediaIds, { responseType: 'blob' })\n .toPromise();\n }\n\n async downloadMedia(mediaId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/download/`, {responseType: 'blob'})\n .toPromise();\n }\n}\n\nexport function applyGameMediaFilters(filters: GameMediaFilters, params: HttpParams, ): HttpParams {\n if (filters) {\n params = applyGamesFilters(filters, params);\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.playoffRound) {\n params = params.set('playoff_round', filters.playoffRound.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.mediaCount) {\n params = params.set('media_count', filters.mediaCount.toString());\n }\n }\n return params;\n}\n","import { Model, BaseModel, dateTimeField, enumField, nestedModel } from './util';\nimport { User } from './user';\n\nexport enum PollStatuses {\n open = 1,\n closed,\n archived,\n}\n\n@Model()\nexport class PollVariant extends BaseModel {\n uuid: string;\n name: string;\n}\n\n@Model({\n relation: {\n user: nestedModel(User)\n }\n})\nexport class PollAnswer extends BaseModel {\n id: number;\n answerUuid: string;\n user: User;\n pollId: number;\n}\n\n@Model({\n relation: {\n status: enumField(PollStatuses),\n variants: nestedModel(PollVariant),\n author: nestedModel(User),\n answers: nestedModel(PollAnswer),\n createdAt: dateTimeField,\n }\n})\nexport class Poll extends BaseModel {\n id: number;\n active: boolean;\n teamId: number;\n status: PollStatuses;\n name: string;\n description: string;\n _variants: PollVariant[];\n author: User;\n _answers: PollAnswer[];\n multipleAnswer: boolean;\n anonymous: boolean;\n createdAt: Date;\n variantsWithAnswers: {variant: PollVariant, percent: number}[] = [];\n\n set variants(value: PollVariant[]) {\n this._variants = value || [];\n if (this._answers) {\n this.calculateAnswersPercentage();\n }\n }\n get variants(): PollVariant[] {\n return this._variants;\n }\n\n set answers(value: PollAnswer[]) {\n this._answers = value || [];\n if (this._variants) {\n this.calculateAnswersPercentage();\n }\n }\n get answers(): PollAnswer[] {\n return this._answers;\n }\n\n calculateAnswersPercentage() {\n if (!this._answers.length) {\n return;\n }\n\n const variants = this._variants.map(v => v.uuid);\n const answersByVariant = this._answers.reduce((acc, item) => {\n if (variants.indexOf(item.answerUuid) < 0) {\n return acc;\n }\n if (!acc[item.answerUuid]) {\n acc[item.answerUuid] = 0;\n }\n acc[item.answerUuid]++;\n return acc;\n }, {});\n this.variantsWithAnswers = this._variants.map(item => ({\n variant: item,\n percent: answersByVariant[item.uuid] ? Math.round(100 * answersByVariant[item.uuid] / this._answers.length) : 0\n }))\n .sort((a, b) => a.percent > b.percent ? -1 : 1);\n }\n}\n","import { Model, BaseModel, dateTimeField, nestedModel } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\n@Model({\n relation: {\n user: nestedModel(User),\n team: nestedModel(Team),\n createdAt: dateTimeField,\n updateAt: dateTimeField,\n }\n})\nexport class TeamInvite extends BaseModel {\n id: number;\n userId: number;\n user: User;\n teamId: number;\n team: Team;\n userAccept: boolean;\n teamAccept: boolean;\n usersCount: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n createdAt: Date;\n updatedAt: Date;\n}\n","import { Model, BaseModel, enumField, nestedModel } from './util';\nimport { TeamUser } from './team-user';\nimport { Game } from './game';\n\nexport enum GameInviteStatus {\n accepted = 1,\n declined,\n}\n\n@Model({\n relation: {\n game: nestedModel(Game),\n teamUser: nestedModel(TeamUser),\n status: enumField(GameInviteStatus),\n }\n})\nexport class GameInvite extends BaseModel {\n id: number;\n teamUser: TeamUser;\n gameId: number;\n game: Game;\n status: GameInviteStatus;\n}\n","export enum TeamEventTypes {\n training = 1,\n other = 2,\n}\n","import { TeamEventTypes } from '../models/team-event-type';\n\nexport const TeamEventTypeLocalization = {\n [TeamEventTypes.training]: 'Тренировка',\n [TeamEventTypes.other]: 'Другое'\n};\n","import { BaseModel, enumField, Model, dateTimeField, nestedModel } from './util';\nimport { Team } from './team';\nimport { TeamEventTypeLocalization } from '../localization/team-event-type';\nimport { TeamEventTypes } from './team-event-type';\n\n@Model({\n relation: {\n eventType: enumField(TeamEventTypes),\n team: nestedModel(Team),\n datetime: dateTimeField,\n }\n})\nexport class TeamEvent extends BaseModel {\n id: number;\n teamId: number;\n team: Team;\n eventType: TeamEventTypes;\n eventCustomName: string;\n description: string;\n datetime: Date;\n location: string;\n\n get name(): string {\n if (this.eventType === TeamEventTypes.other) {\n return this.eventCustomName;\n }\n return TeamEventTypeLocalization[this.eventType];\n }\n\n get isClosed(): boolean {\n return this.datetime.getTime() < new Date().getTime();\n }\n}\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum TeamEventInviteStatuses {\n accepted = 1,\n declined = 2\n}\n\n@Model({\n relation: {\n status: enumField(TeamEventInviteStatuses)\n }\n})\nexport class TeamEventInvite extends BaseModel {\n id: number;\n teamEventId: number;\n teamUserId: number;\n status: TeamEventInviteStatuses;\n}\n","import { BaseModel, Model, nestedModel } from './util';\nimport { TeamUser } from './team-user';\n\n@Model({\n relation: {\n teamUser: nestedModel(TeamUser),\n }\n})\nexport class TournamentTeamUserInvite extends BaseModel {\n id: number;\n tournamentTeamInviteId: number;\n tournamentTeamId: number;\n teamUser: TeamUser;\n accepted: boolean;\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { Team } from './team';\nimport { Tournament } from './tournament';\nimport { TournamentTeamUserInvite } from './tournament-team-user-invite';\n\n@Model({\n relation: {\n team: nestedModel(Team),\n tournament: nestedModel(Tournament),\n userInvites: nestedModel(TournamentTeamUserInvite),\n }\n})\nexport class TournamentInvite extends BaseModel {\n id: number;\n team: Team;\n tournament: Tournament;\n teamAccept: boolean;\n organizationAccept: boolean;\n userInvitesCount: number;\n userInvites: TournamentTeamUserInvite[];\n notificationsCount: number;\n\n get isOpen(): boolean {\n return (this.teamAccept === null || this.organizationAccept === null) && this.teamAccept !== false && this.organizationAccept !== false;\n }\n}\n","import { Model, BaseModel, dateTimeField, enumField, nestedModel } from './util';\nimport { Team } from './team';\nimport { Poll } from './poll';\nimport { Game } from './game';\nimport { TeamInvite } from './team-invite';\nimport { TeamUser } from './team-user';\nimport { GameInvite } from './game-invite';\nimport { TeamEvent } from './team-event';\nimport { TeamEventInvite } from './team-event-invite';\nimport { Tournament } from './tournament';\nimport { TournamentInvite } from './tournament-invite';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\n\nexport enum NotificationType {\n team_updated = 1,\n team_invited,\n team_join_request,\n team_join_declined_by_team,\n team_join_declined_by_user,\n team_join_canceled_by_team,\n team_join_canceled_by_user,\n team_joined_for_user,\n team_joined_for_team,\n team_user_role_changed_for_user,\n team_user_role_changed_for_team,\n team_user_number_changed,\n team_user_deleted_for_user,\n team_user_deleted_for_team,\n team_user_left,\n\n game_updated,\n game_invited,\n game_invite_accepted,\n game_invite_declined,\n game_remind,\n game_won,\n game_losing,\n game_tech_defeat,\n game_tech_victory,\n\n poll_created,\n poll_closed,\n\n team_event_invited,\n team_event_accepted,\n team_event_declined,\n team_event_remind,\n\n tournament_invited,\n tournament_joined,\n tournament_join_declined,\n tournament_join_canceled,\n tournament_user_invited,\n tournament_user_accepted_for_team,\n tournament_user_accepted_for_user,\n tournament_user_added,\n tournament_user_declined_for_team,\n tournament_user_declined_for_user,\n tournament_user_invite_deleted,\n tournament_user_deleted,\n tournament_user_disqualified_for_team,\n tournament_user_disqualified_for_user,\n tournament_user_disqualification_updated_for_team,\n tournament_user_disqualification_updated_for_user,\n tournament_team_deleted,\n\n org_tournament_invite_created,\n org_tournament_invite_declined,\n org_tournament_invite_deleted,\n org_tournament_invite_changed,\n org_tournament_user_deleted,\n org_tournament_user_invited,\n org_tournament_user_has_changes,\n org_tournament_team_leave,\n}\n\nexport enum NotificationServiceEnum {\n public = 1,\n org\n}\n\n@Model({\n relation: {\n event: enumField(NotificationType),\n initiator: nestedModel(User),\n team: nestedModel(Team),\n teamInvite: nestedModel(TeamInvite),\n teamUser: nestedModel(TeamUser),\n poll: nestedModel(Poll),\n game: nestedModel(Game),\n gameInvite: nestedModel(GameInvite),\n teamEvent: nestedModel(TeamEvent),\n teamEventInvite: nestedModel(TeamEventInvite),\n tournament: nestedModel(Tournament),\n tournamentInvite: nestedModel(TournamentInvite),\n tournamentTeam: nestedModel(TournamentTeam),\n service: enumField(NotificationServiceEnum),\n createdAt: dateTimeField,\n }\n})\nexport class Notification extends BaseModel {\n id: number;\n event: NotificationType;\n data: any;\n initiator: User;\n team: Team;\n teamInvite: TeamInvite;\n teamUser: TeamUser;\n poll: Poll;\n game: Game;\n gameInvite: GameInvite;\n teamEvent: TeamEvent;\n teamEventInvite: TeamEventInvite;\n tournament: Tournament;\n tournamentInvite: TournamentInvite;\n tournamentTeam: TournamentTeam;\n viewed: boolean;\n protected: boolean;\n service: NotificationServiceEnum;\n createdAt: Date;\n\n get important(): boolean {\n return true;\n }\n}\n","import { Model, BaseModel, enumField } from './util';\n\nexport enum NotificationAllowTypes {\n all = 1,\n important,\n none\n}\n\n@Model({\n relation: {\n sound: enumField(NotificationAllowTypes),\n browser: enumField(NotificationAllowTypes),\n }\n})\nexport class NotificationSettings extends BaseModel {\n userId: number;\n popup: boolean;\n sound: NotificationAllowTypes;\n browser: NotificationAllowTypes;\n email: boolean;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Notification } from '../models/notification';\nimport { NotificationSettings } from '../models/notification-settings';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\n\nexport interface NotificationFilters {\n protected?: boolean;\n not_viewed?: boolean;\n important?: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class NotificationBaseApi {\n protected apiUrl: string;\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCount(): Promise<number> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/count/`)\n .pipe(map(data => +data))\n .toPromise();\n }\n\n async getList(page: number, size: number, filters: NotificationFilters = {}): Promise<PaginatedResponse<Notification[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n for (const key of Object.keys(filters)) {\n params = params.set(key, filters[key]);\n }\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}${this.apiUrl}/notification/`,\n {params, observe: 'response'}\n )\n .pipe(\n map(response => ({\n total: +response.headers.get('x-page-count'),\n data: response.body.map(item => new Notification(item)),\n })),\n ).toPromise();\n }\n\n async markViewed(notificationId: number, viewed: boolean): Promise<Notification> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/${notificationId}/viewed/`, {viewed})\n .pipe(map(data => new Notification(data)))\n .toPromise();\n }\n\n async markAllViewed(): Promise<Notification[]> {\n return this.httpClient\n .post<object[]>(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/viewed/`, {})\n .pipe(map(data => data.map(item => new Notification(item))))\n .toPromise();\n }\n\n async getNotificationSettings(): Promise<NotificationSettings> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`)\n .pipe(map(data => new NotificationSettings(data)))\n .toPromise();\n }\n\n async updateNotificationSettings(data: NotificationSettings): Promise<NotificationSettings> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`,\n data.json()\n )\n .pipe(map(result => new NotificationSettings(result)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class NotificationApi extends NotificationBaseApi {\n protected apiUrl = '/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class OrgNotificationApi extends NotificationBaseApi {\n protected apiUrl = '/org/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { City } from '../models/city';\nimport { Sport } from '../models/sport';\n\n@Injectable({providedIn: 'root'})\nexport class ReferenceApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCities(): Promise<City[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/reference/cities/`)\n .pipe(\n map(data => data.map(item => new City(item)))\n ).toPromise();\n }\n\n async getSports(): Promise<Sport[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/sport/`)\n .pipe(\n map(data => data.map(item => new Sport(item)))\n ).toPromise();\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { RugbyStatistic } from './rugby-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(RugbyStatistic),\n competitorTeam: nestedModel(RugbyStatistic),\n }\n})\nexport class RugbyGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: RugbyStatistic;\n competitorTeam: RugbyStatistic;\n}\n","import { Model, dateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model({\n relation: {\n updatedAt: dateTimeField,\n }\n})\nexport class RugbyGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n tries: number;\n penaltyTries: number;\n conversionGoals: number;\n conversionMisses: number;\n penaltyMisses: number;\n penaltyGoals: number;\n dropGoals: number;\n dropGoalMisses: number;\n freeKicks: number;\n yellowCards: number;\n redCards: number;\n offloads: number;\n tackles: number;\n handlingErrors: number;\n carriesOverGainline: number;\n footFieldShots: number;\n footOutShots: number;\n footKicks5022: number;\n fouls: number;\n teamFouls: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get conversionKicks(): number {\n return (this.conversionGoals || 0) + (this.conversionMisses || 0);\n }\n\n get conversionGoalsPercent(): number {\n if (!this.conversionKicks) {\n return 0;\n }\n return Math.floor(1000 * this.conversionGoals / this.conversionKicks) / 10;\n }\n\n get penaltyKicksOnGoal(): number {\n return (this.penaltyGoals || 0) + (this.penaltyMisses || 0);\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyKicksOnGoal) {\n return 0;\n }\n return Math.floor(1000 * this.penaltyGoals / this.penaltyKicksOnGoal) / 10;\n }\n\n get dropGoalKicks(): number {\n return (this.dropGoals || 0) + (this.dropGoalMisses || 0);\n }\n\n get dropGoalsPercent(): number {\n if (!this.dropGoalKicks) {\n return 0;\n }\n return Math.floor(1000 * this.dropGoals / this.dropGoalKicks) / 10;\n }\n\n get totalGoals(): number {\n return (this.conversionGoals || 0) + (this.dropGoals || 0) + (this.penaltyGoals || 0);\n }\n\n get footShots(): number {\n return (this.footFieldShots || 0) + (this.footOutShots || 0) + (this.footKicks5022 || 0);\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.teamFouls || 0);\n }\n}\n","import { BaseModel, Model, listField, enumField } from './util';\n\nexport enum RugbyFoulSanctions {\n scrum = 1,\n lineout,\n free_kick,\n penalty_shot,\n yellow_card,\n red_card,\n start_kick,\n twenty_two_meters_kick,\n conversion_cancel\n}\n\nexport enum RugbyFoulGameStage {\n start_kick= 1,\n open_game,\n tackle,\n ruck_or_maul,\n scrum,\n out_and_lineout,\n scoring_field,\n kick_on_goal,\n free_kick,\n team,\n}\n\n@Model({\n relation: {\n sanction: listField(enumField(RugbyFoulSanctions)),\n gameStage: enumField(RugbyFoulGameStage),\n }\n})\nexport class RugbyFoulType extends BaseModel {\n id: number;\n name: string;\n sanction: RugbyFoulSanctions[];\n gameStage: RugbyFoulGameStage;\n}\n","import { Model, dateTimeField, enumField, nestedModel } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\nimport { RugbyFoulGameStage, RugbyFoulSanctions, RugbyFoulType } from './rugby-foul-type';\n\nexport enum RugbyGameLogTypes {\n enter_game = 1,\n exit_game,\n try,\n penalty_try,\n conversion_goal,\n conversion_miss,\n penalty_miss,\n penalty_goal,\n drop_goal,\n drop_goal_miss,\n free_kick,\n foul,\n yellow_card,\n red_card,\n offload,\n tackle,\n handling_error,\n carries_over_gainline,\n bleeding_injury,\n head_injury,\n end_game_penalty_miss,\n end_game_penalty_goal,\n foot_field_shot,\n foot_out_shot,\n foot_kick_50_22,\n\n // team actions\n timeout,\n tap_penalty,\n penalty_kick_to_touch,\n scrum_won,\n scrum_lost,\n scrum_won_free,\n lineout_won,\n lineout_lost,\n quick_throw,\n ruck_won,\n ruck_lost,\n maul_won,\n maul_lost,\n team_foul,\n start_kick,\n twenty_two_meters_kick,\n goal_kick\n}\n\nexport const RUGBY_GAME_LOG_TYPE_POINTS = {\n [RugbyGameLogTypes.penalty_try]: 7,\n [RugbyGameLogTypes.try]: 5,\n [RugbyGameLogTypes.conversion_goal]: 2,\n [RugbyGameLogTypes.penalty_goal]: 3,\n [RugbyGameLogTypes.drop_goal]: 3,\n [RugbyGameLogTypes.end_game_penalty_goal]: 1, // Не влияет на общий счет\n};\n\nexport const RUGBY_TEAM_LOG_TYPES = [\n RugbyGameLogTypes.timeout, RugbyGameLogTypes.scrum_won, RugbyGameLogTypes.scrum_lost, RugbyGameLogTypes.scrum_won_free,\n RugbyGameLogTypes.lineout_won, RugbyGameLogTypes.lineout_lost,\n RugbyGameLogTypes.quick_throw, RugbyGameLogTypes.ruck_won, RugbyGameLogTypes.ruck_lost,\n RugbyGameLogTypes.maul_won, RugbyGameLogTypes.maul_lost, RugbyGameLogTypes.team_foul,\n RugbyGameLogTypes.penalty_kick_to_touch, RugbyGameLogTypes.tap_penalty,\n RugbyGameLogTypes.start_kick, RugbyGameLogTypes.twenty_two_meters_kick, RugbyGameLogTypes.goal_kick,\n RugbyGameLogTypes.penalty_try\n];\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(RugbyGameLogTypes),\n foulType: nestedModel(RugbyFoulType),\n foulSanction: enumField(RugbyFoulSanctions),\n foulGameStage: enumField(RugbyFoulGameStage),\n }\n})\nexport class RugbyGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n group: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: RugbyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n foulType: RugbyFoulType;\n foulSanction: RugbyFoulSanctions;\n foulGameStage: RugbyFoulGameStage;\n\n compare(model: RugbyGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return RUGBY_GAME_LOG_TYPE_POINTS[this.logType] !== undefined;\n }\n\n scorePoints(): number {\n return RUGBY_GAME_LOG_TYPE_POINTS[this.logType];\n }\n\n isAfter(log: RugbyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n isFoulType(): boolean {\n return [RugbyGameLogTypes.team_foul, RugbyGameLogTypes.foul].indexOf(this.logType) > -1;\n }\n\n isTeamType(): boolean {\n return RUGBY_TEAM_LOG_TYPES.includes(this.logType);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\nimport { RugbyGameTeamStatistic } from '../models/rugby-game-team-statistic';\nimport { RugbyGameStatistic } from '../models/rugby-game-statistic';\nimport { RugbyGameLog } from '../models/rugby-game-log';\nimport { RugbyFoulType } from '../models/rugby-foul-type';\n\n@Injectable({providedIn: 'root'})\nexport class RugbyGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<RugbyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/team_statistic/`).pipe(\n map(result => new RugbyGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<RugbyGameStatistic[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/user_statistic/`).pipe(\n map(result => result.map(item => new RugbyGameStatistic(item)))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<RugbyGameLog[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/logs/`).pipe(\n map(result => result.map(item => new RugbyGameLog(item)))\n ).toPromise();\n }\n\n async getFoulTypes(): Promise<RugbyFoulType> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/foul_types/`).pipe(\n map(result => new RugbyFoulType(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', 'pdf'),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Model, BaseModel } from './util';\n\n@Model()\nexport class TeamInviteExternal extends BaseModel {\n id: number;\n teamId: number;\n email: string;\n firstName: string;\n lastName: string;\n}\n","import { Model, BaseModel, enumField } from './util';\n\nexport enum TeamPermissionTypes {\n for_all = 1,\n for_users,\n for_team\n}\n\n@Model({\n relation: {\n players: enumField(TeamPermissionTypes),\n games: enumField(TeamPermissionTypes),\n statistic: enumField(TeamPermissionTypes),\n polls: enumField(TeamPermissionTypes),\n events: enumField(TeamPermissionTypes)\n }\n})\nexport class TeamPermission extends BaseModel {\n players: TeamPermissionTypes;\n games: TeamPermissionTypes;\n statistic: TeamPermissionTypes;\n polls: TeamPermissionTypes;\n events: TeamPermissionTypes;\n}\n","import { Model, BaseModel, enumField } from './util';\nimport { TeamUserRole } from './team-user';\n\n@Model({\n relation: {\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamAccess extends BaseModel {\n canEdit: boolean;\n canViewUsers: boolean;\n canManagePermission: boolean;\n canChangeOwner: boolean;\n canDelete: boolean;\n canManageInvites: boolean;\n canViewInvites: boolean;\n canManagePolls: boolean;\n canViewPolls: boolean;\n canAnswerPoll: boolean;\n canManageGames: boolean;\n canViewGames: boolean;\n canViewStatistic: boolean;\n canPromoteUsers: boolean;\n canEditUsers: boolean;\n canDeleteUsers: boolean;\n canViewEvents: boolean;\n canManageEvents: boolean;\n canViewTournaments: boolean;\n canManageTournaments: boolean;\n role: TeamUserRole;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser, TeamUserRole } from '../models/team-user';\nimport { User } from '../models/user';\nimport { TeamInvite } from '../models/team-invite';\nimport { TeamInviteExternal } from '../models/team-invite-external';\nimport { Poll } from '../models/poll';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { TeamEvent } from '../models/team-event';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { TeamPermission } from '../models/team-permission';\nimport { TeamAccess } from '../models/team-access';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async search(query: string, sportId?: number): Promise<Team[]> {\n let params = (new HttpParams()).set('search', query);\n if (sportId) {\n params = params.set('sport', sportId.toString());\n }\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/`, {params})\n .pipe(map(data => data.map(item => new Team(item))))\n .toPromise();\n }\n\n async create(team: Team): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/`, team.json())\n .pipe(map(data => new Team(data)))\n .toPromise();\n }\n\n async getById(teamId: number): Promise<Team> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`)\n .pipe(map(data => new Team(data)))\n .toPromise();\n }\n\n async getTeamAccess(teamId: number): Promise<TeamAccess> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/access/`)\n .pipe(map(data => new TeamAccess(data)))\n .toPromise();\n }\n\n async update(teamId: number, team: Team): Promise<Team> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`, team.json())\n .pipe(map(data => new Team(data)))\n .toPromise();\n }\n\n async delete(team: Team): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${team.id}/`)\n .toPromise();\n }\n\n async getPermission(teamId: number): Promise<TeamPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`)\n .pipe(map(data => new TeamPermission(data)))\n .toPromise();\n }\n\n async updatePermission(teamId: number, permission: TeamPermission): Promise<TeamPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`, permission.json())\n .pipe(map(data => new TeamPermission(data)))\n .toPromise();\n }\n\n async getUsers(teamId: number, tournamentId?: number): Promise<TeamUser[]> {\n let params = new HttpParams();\n if (tournamentId) {\n params = params.set('tournament_id', tournamentId.toString());\n }\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`, {params})\n .pipe(map(data => data.map(item => new TeamUser(item))))\n .toPromise();\n }\n\n async updateUserRole(teamId: number, teamUserId: number, role: TeamUserRole): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/role/`, {role: TeamUserRole[role]})\n .pipe(map(data => new TeamUser(data)))\n .toPromise();\n }\n\n async updateUserNumber(teamId: number, teamUserId: number, gameNumber: number): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/number/`, {number: gameNumber.toString()})\n .pipe(map(data => new TeamUser(data)))\n .toPromise();\n }\n\n async deleteUser(teamUser: TeamUser): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${teamUser.teamId}/users/${teamUser.id}/`)\n .toPromise();\n }\n\n async changeOwner(teamId: number, user: User): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/owner/`, {id: user.id})\n .pipe(map(data => new Team(data)))\n .toPromise();\n }\n\n async getInvites(teamId: number): Promise<TeamInvite[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`)\n .pipe(map(data => data.map(item => new TeamInvite(item))))\n .toPromise();\n }\n\n async sendInvite(teamId: number, user: User): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`, {user})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async acceptInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/accept/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async declineInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/decline/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async resendInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/resend/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async getInvitesExternal(teamId: number): Promise<TeamInviteExternal[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`)\n .pipe(map(data => data.map(item => new TeamInviteExternal(item))))\n .toPromise();\n }\n\n async sendInviteExternal(teamId: number, invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`, invite.json())\n .pipe(map(data => new TeamInviteExternal(data)))\n .toPromise();\n }\n\n async deleteInviteExternal(invite: TeamInviteExternal): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/`)\n .toPromise();\n }\n\n async resendInviteExternal(invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/resend/`, {})\n .pipe(map(data => new TeamInviteExternal(data)))\n .toPromise();\n }\n\n async getPolls(teamId: number, archive: boolean = false): Promise<Poll[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => data.map(item => new Poll(item))))\n .toPromise();\n }\n\n async createPoll(teamId: number, poll: Poll): Promise<Poll> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/`, poll.json())\n .pipe(map(data => new Poll(data)))\n .toPromise();\n }\n\n async getUsersStatistic(teamId: number): Promise<BasketballStatistic[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/statistics/`)\n .pipe(map(data => data.map(item => new BasketballStatistic(item))))\n .toPromise();\n }\n\n async getVolleyballStatistic(teamId: number): Promise<VolleyballStatistic[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/volleyball_statistics/`)\n .pipe(map(data => data.map(item => new VolleyballStatistic(item))))\n .toPromise();\n }\n\n async joinTeam(teamId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/join/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async leaveTeam(teamId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/leave/`, {})\n .toPromise();\n }\n\n async getGames(teamId: number, archive = false): Promise<Game[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => data.map(item => new Game(item))))\n .toPromise();\n }\n\n async createGame(teamId: number, game: Game): Promise<Game> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/`, game.json())\n .pipe(map(data => new Game(data)))\n .toPromise();\n }\n\n async getTeamEvents(teamId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`)\n .pipe(map(data => data.map(item => new TeamEvent(item))))\n .toPromise();\n }\n\n async createTeamEvent(teamId: number, teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`, teamEvent.json())\n .pipe(map(data => new TeamEvent(data)))\n .toPromise();\n }\n\n async getTournaments(teamId: number): Promise<Tournament[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/`)\n .pipe(map(data => data.map(item => new Tournament(item))))\n .toPromise();\n }\n\n async getTournamentTeams(teamId: number): Promise<TournamentTeam[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_teams/`)\n .pipe(map(data => data.map(item => new TournamentTeam(item))))\n .toPromise();\n }\n\n async getTournamentInvites(teamId: number): Promise<TournamentInvite[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_invites/`)\n .pipe(map(data => data.map(item => new TournamentInvite(item))))\n .toPromise();\n }\n\n async getTournamentGames(teamId: number, tournamentId: number, page: number, size?: number): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n return this.httpClient\n .get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/${tournamentId}/games/`,\n {params, observe: 'response'}\n )\n .pipe(map((response: HttpResponse<any>) => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new Game(item))\n };\n }))\n .toPromise();\n }\n\n async acceptTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/accept/`, {})\n .pipe(map(data => new TournamentInvite(data)))\n .toPromise();\n }\n\n async declineTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/decline/`, {})\n .pipe(map(data => new TournamentInvite(data)))\n .toPromise();\n }\n\n async registerLazyUser(teamId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/lazy_user/`, {user: userData.json()})\n .pipe(map(data => new TeamUser(data)))\n .toPromise();\n }\n\n async getLazyUser(teamUserId: number): Promise<TeamUser> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .pipe(map(data => new TeamUser(data)))\n .toPromise();\n }\n\n async updateLazyUser(teamUserId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`, {user: userData.json()})\n .pipe(map(data => new TeamUser(data)))\n .toPromise();\n }\n\n async deleteLazyUser(teamUserId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .toPromise();\n }\n\n async resendLazyUserEmail(teamUserId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/resend_email/`, {})\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { TeamEvent } from '../models/team-event';\nimport { TeamEventInvite } from '../models/team-event-invite';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamEventApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getTeamEvent(teamEventId: number): Promise<TeamEvent> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .pipe(map(data => new TeamEvent(data)))\n .toPromise();\n }\n\n async updateTeamEvent(teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEvent.id}/`, teamEvent.json())\n .pipe(map(data => new TeamEvent(data)))\n .toPromise();\n }\n\n async deleteTeamEvent(teamEventId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .toPromise();\n }\n\n async getTeamEventInvites(teamEventId: number): Promise<TeamEventInvite[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`)\n .pipe(map(data => data.map(item => new TeamEventInvite(item))))\n .toPromise();\n }\n\n async createTeamEventInvite(teamEventId: number, teamUserId: number): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`, {team_user_id: teamUserId})\n .pipe(map(data => new TeamEventInvite(data)))\n .toPromise();\n }\n\n async acceptTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/accept/`, {})\n .pipe(map(data => new TeamEventInvite(data)))\n .toPromise();\n }\n\n async declineTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/decline/`, {})\n .pipe(map(data => new TeamEventInvite(data)))\n .toPromise();\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { Team } from './team';\n\n@Model()\nexport class TournamentJoinData extends BaseModel {\n validUsersCount: number;\n invalidUsersCount: number;\n hasAccess: boolean;\n inviteSent: boolean;\n alreadyInTournament: boolean;\n\n get usersCount(): number {\n return this.validUsersCount + this.invalidUsersCount;\n }\n\n get valid() {\n return this.hasAccess && !this.inviteSent && !this.alreadyInTournament;\n }\n}\n\n@Model({\n relation: {\n team: nestedModel(Team),\n joinData: nestedModel(TournamentJoinData),\n }\n})\nexport class TournamentJoinTeam extends BaseModel {\n team: Team;\n joinData: TournamentJoinData;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentJoinTeam } from '../models/tournament-join-team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser } from '../models/team-user';\nimport { TournamentTeamUserInvite } from '../models/tournament-team-user-invite';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentJoin1x1Data } from '../models/tournament-join1x1-data';\n\nexport enum TournamentJoin1x1Status {\n not_sent = 1,\n invite_sent,\n in_tournament,\n not_valid,\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentJoinApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getTeamsForJoin(tournamentId: number): Promise<TournamentJoinTeam[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams_for_join/`\n ).pipe(\n map(response => response.map(item => new TournamentJoinTeam(item)))\n ).toPromise();\n }\n\n async getTeamUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`)\n .pipe(\n map(data => data.map(item => new TeamUser(item)))\n ).toPromise();\n }\n\n async joinTournament(tournamentId: number, teamId: number, invites: TournamentTeamUserInvite[]): Promise<TournamentInvite> {\n const body = {\n team: {id: teamId},\n user_invites: invites.map(item => item.json())\n };\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join/`, body)\n .pipe(map(data => new TournamentInvite(data)))\n .toPromise();\n }\n\n async join1x1Tournament(tournamentId: number, additionalData: TournamentJoin1x1Data): Promise<TournamentInvite> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join_1x1/`,\n additionalData.json()\n )\n .pipe(map(data => new TournamentInvite(data)))\n .toPromise();\n }\n\n async join1x1TournamentStatus(tournamentId: number): Promise<TournamentJoin1x1Status> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join_1x1_status/`)\n .pipe(map((data: { status: string }) => TournamentJoin1x1Status[data.status]))\n .toPromise();\n }\n}\n","import { BaseModel, Model, nestedModel } from './util';\nimport { TournamentGroup } from './tournament-group';\nimport { TournamentDivision } from './tournament-division';\nimport { TournamentTeam } from './tournament-team';\n\n@Model({\n relation: {\n group: nestedModel(TournamentGroup),\n division: nestedModel(TournamentDivision),\n tournamentTeam: nestedModel(TournamentTeam),\n }\n})\nexport class TournamentRoundTeam extends BaseModel {\n id: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n groupId: number;\n division: TournamentDivision;\n points: number;\n handicap: number;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n gamesWonPercent: number;\n lastGamesWon: number;\n lastGamesCount: number;\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n gamesByScoreCount: {[key: string]: number};\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentRound } from '../models/tournament-round';\nimport { map } from 'rxjs/operators';\nimport { TournamentRoundTeam } from '../models/tournament-round-team';\nimport { Playoff } from '../models/playoff';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { applyGamesFilters, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { Game } from '../models/game';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\n\nexport interface TournamentRoundTeamsFilters {\n groupId?: number;\n divisionId?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentRoundApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentRoundId: number): Promise<TournamentRound> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/`).pipe(\n map(data => new TournamentRound(data)),\n ).toPromise();\n }\n\n async getTeams(tournamentRoundId: number, filters?: TournamentRoundTeamsFilters): Promise<TournamentRoundTeam[]> {\n let params = new HttpParams();\n if (filters) {\n if (filters.divisionId) {\n params = params.set('division_id', filters.divisionId);\n }\n if (filters.groupId) {\n params = params.set('group_id', filters.groupId);\n }\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/teams/`,\n {params}\n ).pipe(\n map(data => data.map(item => new TournamentRoundTeam(item))),\n ).toPromise();\n }\n\n async getPlayoffs(tournamentRoundId: number): Promise<Playoff[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/playoffs/`\n ).pipe(\n map(data => data.map(item => new Playoff(item))),\n ).toPromise();\n }\n\n async getGroups(tournamentRoundId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/groups/`\n ).pipe(\n map(data => data.map(item => new TournamentGroup(item))),\n ).toPromise();\n }\n\n async getGames(roundId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${roundId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Game(item))\n }))\n ).toPromise();\n }\n\n async getGamesStages(roundId: number): Promise<GameTimelineStages> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${roundId}/games_stages/`)\n .pipe(map(data => new GameTimelineStages(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { Game, GameStatuses } from '../models/game';\nimport { Tournament, TournamentStatuses } from '../models/tournament';\nimport { applyGamesFilters, TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { applyGameMediaFilters, GameMediaFilters } from './media-api';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { Playoff } from '../models/playoff';\nimport { TournamentListFilters } from './league-api';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentSeasonApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<TournamentSeason> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/${alias}/`).pipe(\n map(result => new TournamentSeason(result))\n ).toPromise();\n }\n\n async getTournaments(seasonId: number): Promise<Tournament[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/tournaments/`\n ).pipe(\n map(result => result.map(item => new Tournament(item)))\n ).toPromise();\n }\n\n async getTournamentsPaginated(\n seasonId: number,\n filters?: TournamentListFilters,\n page = 1,\n size = 100\n ): Promise<PaginatedResponse<Tournament[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.statuses) {\n params = params.set('statuses', filters.statuses.map(s => TournamentStatuses[s]).join(','));\n }\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/tournaments/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Tournament(item))\n })),\n ).toPromise();\n }\n\n async getGames(seasonId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new Game(item)),\n }))\n ).toPromise();\n }\n\n async getEvents(\n seasonId: number, page: number, size: number,\n filters?: TournamentEventsListFilter\n ): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/events/`,\n {params, observe: 'response'}\n )\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body.map(item => new TournamentEvent(item)),\n })))\n .toPromise();\n }\n\n async getGameMedia(seasonId: number, page: number, size: number, filters: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/game_media/`,\n {observe: 'response', params})\n .pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: response.body.map(item => new Game(item)),\n };\n })\n ).toPromise();\n }\n\n async getTeams(seasonId: number, short?: boolean): Promise<TournamentTeam[]> {\n let params = new HttpParams();\n if (short) {\n params = params.set('short', '1');\n }\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/teams/`,\n {params}\n ).pipe(\n map(result => result.map(item => new TournamentTeam(item)))\n ).toPromise();\n }\n\n async getPlayoffs(seasonId: number): Promise<Playoff[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/playoffs/`\n ).pipe(\n map(result => result.map(item => new Playoff(item)))\n ).toPromise();\n }\n\n async getGamesStages(seasonId: number): Promise<GameTimelineStages> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games_stages/`)\n .pipe(map(data => new GameTimelineStages(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { map } from 'rxjs/operators';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { Playoff } from '../models/playoff';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { ConfigService } from '../services/config.service';\nimport { TeamAchievement } from '../models/team-achievement';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentStageApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(id: number): Promise<TournamentStage> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${id}/`)\n .pipe(map(result => new TournamentStage(result)))\n .toPromise();\n }\n\n async getGroups(stageId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/groups/`)\n .pipe(map(result => result.map(item => new TournamentGroup(item))))\n .toPromise();\n }\n\n async getTeamsAchievements(stageId: number): Promise<TeamAchievement[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/achievements/`)\n .pipe(map(result => result.map(item => new TeamAchievement(item))))\n .toPromise();\n }\n\n async getPlayoffs(stageId: number): Promise<Playoff[]> {\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/playoff/`)\n .pipe(map(result => result.map(item => new Playoff(item))))\n .toPromise();\n }\n\n async getTeams(stageId: number, groupId?: number, short?: boolean): Promise<TournamentStageTeam[]> {\n let params = new HttpParams();\n if (groupId) {\n params = params.set('group_id', groupId.toString());\n }\n if (short) {\n params = params.set('short', '1');\n }\n return this.httpClient.get<object[]>(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/teams/`, {params})\n .pipe(map(result => result.map(item => new TournamentStageTeam(item))))\n .toPromise();\n }\n}\n","import { Model, BaseModel } from './util';\n\n@Model()\nexport class UserAccess extends BaseModel {\n edit: boolean;\n personalData: boolean;\n teams: boolean;\n statistic: boolean;\n games: boolean;\n}\n","import { Model, BaseModel, enumField } from './util';\n\nexport enum UserPermissionTypes {\n denied = 1,\n for_all,\n for_users,\n for_team\n}\n\n@Model({\n relation: {\n personalData: enumField(UserPermissionTypes),\n games: enumField(UserPermissionTypes),\n teams: enumField(UserPermissionTypes),\n statistic: enumField(UserPermissionTypes)\n }\n})\nexport class UserPermission extends BaseModel {\n id: number;\n personalData: UserPermissionTypes;\n games: UserPermissionTypes;\n teams: UserPermissionTypes;\n statistic: UserPermissionTypes;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { User } from '../models/user';\nimport { File } from '../models/file';\nimport { map } from 'rxjs/operators';\nimport { UserProfile } from '../models/user-profile';\nimport { BasketballProfile } from '../models/basketball-profile';\nimport { VolleyballProfile } from '../models/volleyball-profile';\nimport { Team } from '../models/team';\nimport { TeamInvite } from '../models/team-invite';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { GameInvite } from '../models/game-invite';\nimport { TeamEvent } from '../models/team-event';\nimport { UserAccess } from '../models/user-access';\nimport { UserPermission } from '../models/user-permission';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class UserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCurrentUser(): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/`)\n .pipe(map(data => new User(data)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`)\n .pipe(map(data => new User(data)))\n .toPromise();\n }\n\n async getAccess(userId?: number): Promise<UserAccess> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/access/`)\n .pipe(map(data => new UserAccess(data)))\n .toPromise();\n }\n\n async updateUser(userId: number, data: User): Promise<User> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`, data.json())\n .pipe(map(result => new User(result)))\n .toPromise();\n }\n\n async updateUserPhoto(file: any, filename?: string): Promise<File> {\n const formData = new FormData();\n formData.append('file', file, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/photo/`, formData)\n .pipe(map(data => new File(data)))\n .toPromise();\n }\n\n async changePassword(userId: number, oldPassword: string, password: string, passwordConfirm: string): Promise<any> {\n const payload = {\n old_password: oldPassword,\n password,\n password_confirm: passwordConfirm\n };\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_password/`, payload)\n .toPromise();\n }\n\n async changeEmail(userId: number, email: string, password: string): Promise<any> {\n const payload = {email, password};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email/`, payload)\n .toPromise();\n }\n\n async changeEmailConfirm(userId, email: string, password: string, token: number): Promise<any> {\n const payload = {email, password, token};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email_confirm/`, payload)\n .toPromise();\n }\n\n async getUserProfile(userId: number): Promise<UserProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/profile/`)\n .pipe(map(data => new UserProfile(data)))\n .toPromise();\n }\n\n async getBasketballProfile(userId: number): Promise<BasketballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/basketball_profile/`)\n .pipe(map(data => new BasketballProfile(data)))\n .toPromise();\n }\n\n async getVolleyballProfile(userId: number): Promise<VolleyballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_profile/`)\n .pipe(map(data => new VolleyballProfile(data)))\n .toPromise();\n }\n\n async updateUserProfile(userProfile: UserProfile): Promise<UserProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userProfile.userId}/profile/`, userProfile.json())\n .pipe(map(data => new UserProfile(data)))\n .toPromise();\n }\n\n async updateUserBasketballProfile(basketballProfile: BasketballProfile): Promise<BasketballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${basketballProfile.userId}/basketball_profile/`, basketballProfile.json())\n .pipe(map(data => new BasketballProfile(data)))\n .toPromise();\n }\n\n async updateUserVolleyballProfile(volleyballProfile: VolleyballProfile): Promise<VolleyballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${volleyballProfile.userId}/volleyball_profile/`, volleyballProfile.json())\n .pipe(map(data => new VolleyballProfile(data)))\n .toPromise();\n }\n\n async getUserPermissions(userId?: number): Promise<UserPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/permission/`)\n .pipe(map(data => new UserPermission(data)))\n .toPromise();\n }\n\n async updateUserPermission(data: UserPermission): Promise<UserPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/current/permission/`, data.json())\n .pipe(map(result => new UserPermission(result)))\n .toPromise();\n }\n\n async getTeams(userId: number): Promise<Team[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/teams/`)\n .pipe(map(data => data.map(item => new Team(item))))\n .toPromise();\n }\n\n async getInvites(): Promise<TeamInvite[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/`)\n .pipe(map(data => data.map(item => new TeamInvite(item))))\n .toPromise();\n }\n\n async acceptInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/accept/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async declineInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/decline/`, {})\n .pipe(map(data => new TeamInvite(data)))\n .toPromise();\n }\n\n async getStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/statistics/`)\n .pipe(map(data => new BasketballStatistic(data)))\n .toPromise();\n }\n\n async getStreetballStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/streetball_statistics/`)\n .pipe(map(data => new BasketballStatistic(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(userId: number): Promise<VolleyballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_statistics/`)\n .pipe(map(data => new VolleyballStatistic(data)))\n .toPromise();\n }\n\n async getGames(userId: number): Promise<Game[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/games/`)\n .pipe(map(data => data.map(item => new Game(item))))\n .toPromise();\n }\n\n async getGameInvites(): Promise<GameInvite[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/`)\n .pipe(map(data => data.map(item => new GameInvite(item))))\n .toPromise();\n }\n\n async acceptGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/accept/`, {})\n .pipe(map(data => new GameInvite(data)))\n .toPromise();\n }\n\n async declineGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/decline/`, {})\n .pipe(map(data => new GameInvite(data)))\n .toPromise();\n }\n\n async searchUsers(query: string): Promise<User[]> {\n const params = (new HttpParams()).set('search', query);\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/`, {params})\n .pipe(map(data => data.map(item => new User(item))))\n .toPromise();\n }\n\n async setWizardShowed(wizard: string): Promise<User> {\n return this.httpClient\n .put(`${this.configService.get('apiUrl')}/api/v1/user/current/wizards/`, {wizard})\n .pipe(map(data => new User(data)))\n .toPromise();\n }\n\n async getTeamEvents(userId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/user/current/team_events/`)\n .pipe(map(data => data.map(item => new TeamEvent(item))))\n .toPromise();\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { VolleyballStatistic } from './volleyball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(VolleyballStatistic),\n competitorTeam: nestedModel(VolleyballStatistic),\n }\n})\nexport class VolleyballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: VolleyballStatistic;\n competitorTeam: VolleyballStatistic;\n}\n","import { Model } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model()\nexport class VolleyballGameStatistic extends GameStatisticBase {\n gameUserId: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n goodServes: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n points: number;\n faults: number;\n yellowCards: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get attacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots)) / 10;\n }\n\n get blocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds)) / 10;\n }\n\n get totalReceives(): number {\n return Math.floor(10 * (this.receives + this.excellentReceives + this.receiveFaults)) / 10;\n }\n\n get totalServeReceives(): number {\n return Math.floor(10 * (this.serveReceives + this.excellentServeReceives + this.serveReceiveFaults)) / 10;\n }\n\n get totalServes(): number {\n return Math.floor(10 * (this.serveAces + this.serveHits + this.serveFaults + this.goodServes)) / 10;\n }\n\n get totalAttacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots + this.attackFaults)) / 10;\n }\n\n get totalBlocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds + this.blockFaults)) / 10;\n }\n}\n","import { Model, enumField, dateTimeField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum VolleyballGameLogType {\n enter_game = 1,\n exit_game,\n remove_game,\n serve_hit,\n serve_fault,\n serve_ace,\n stuff_block,\n block_fault,\n block_rebound,\n attack_spike,\n attack_fault,\n attack_shot,\n receive,\n receive_fault,\n excellent_receive,\n point,\n fault,\n serve_receive,\n serve_receive_fault,\n excellent_serve_receive,\n timeout,\n yellow_card,\n tie_ball,\n good_serve\n}\n\nexport const SCORE_LOG_TYPES = [\n VolleyballGameLogType.serve_ace, VolleyballGameLogType.stuff_block,\n VolleyballGameLogType.attack_spike, VolleyballGameLogType.point\n];\nexport const FAULT_LOG_TYPES = [\n VolleyballGameLogType.serve_fault, VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.block_fault, VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.fault, VolleyballGameLogType.serve_receive_fault\n];\n\n@Model({\n relation: {\n logType: enumField(VolleyballGameLogType),\n datetime: dateTimeField\n }\n})\nexport class VolleyballGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n active = true;\n gameId: number;\n gameUserId: number;\n logType: VolleyballGameLogType;\n set: number;\n rally: number;\n position: number;\n teamId: number;\n datetime: Date;\n isHighlight: boolean;\n gameUser: GameUser;\n group: string;\n\n compare(model: VolleyballGameLog): number {\n if (this.rally === model.rally && this.set === model.set) {\n if (this.datetime && model.datetime) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n } else {\n return this.id < model.id ? 1 : -1;\n }\n }\n if (this.set === model.set) {\n return this.rally < model.rally ? 1 : -1;\n }\n return this.set < model.set ? 1 : -1;\n }\n\n isScoreType() {\n return SCORE_LOG_TYPES.includes(this.logType);\n }\n\n isFaultType() {\n return FAULT_LOG_TYPES.includes(this.logType);\n }\n\n isServe() {\n return [\n VolleyballGameLogType.serve_hit,\n VolleyballGameLogType.serve_ace,\n VolleyballGameLogType.serve_fault,\n VolleyballGameLogType.good_serve,\n ].includes(this.logType);\n }\n\n isAttack() {\n return [\n VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.attack_spike,\n VolleyballGameLogType.attack_shot\n ].includes(this.logType);\n }\n\n isReceive() {\n return [\n VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.receive,\n VolleyballGameLogType.excellent_receive\n ].includes(this.logType);\n }\n\n isServeReceive() {\n return [\n VolleyballGameLogType.serve_receive_fault,\n VolleyballGameLogType.serve_receive,\n VolleyballGameLogType.excellent_serve_receive\n ].includes(this.logType);\n }\n\n isBlock() {\n return [\n VolleyballGameLogType.block_fault,\n VolleyballGameLogType.block_rebound,\n VolleyballGameLogType.stuff_block\n ].includes(this.logType);\n }\n\n isEnterExit() {\n return [\n VolleyballGameLogType.enter_game,\n VolleyballGameLogType.exit_game,\n VolleyballGameLogType.timeout\n ].includes(this.logType);\n }\n\n isComboType() {\n return ![\n VolleyballGameLogType.receive,\n VolleyballGameLogType.serve_receive\n ].includes(this.logType);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Game } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { VolleyballGameTeamStatistic } from '../models/volleyball-game-team-statistic';\nimport { VolleyballGameStatistic } from '../models/volleyball-game-statistic';\nimport { VolleyballGameLog } from '../models/volleyball-game-log';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class VolleyballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<VolleyballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/team_statistic/`).pipe(\n map(result => new VolleyballGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<VolleyballGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new VolleyballGameStatistic(item)))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<VolleyballGameLog[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/logs/`\n ).pipe(\n map(result => result.map(item => new VolleyballGameLog(item)))\n ).toPromise();\n }\n\n async downloadProtocolLight(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol_light/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadProtocolAdvanced(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol_advanced/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { enumField, Model, dateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum WaterpoloGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n free_kick_on_goal,\n minor_penalty ,\n major_penalty ,\n match_penalty ,\n foul,\n yellow_card,\n red_card,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n after_game_shootout_attempt,\n after_game_shootout_goal,\n after_game_shootout_save,\n shootout_save,\n loss,\n steal,\n free_kick_miss,\n free_kick_goal,\n free_kick_pass,\n free_kick_self,\n corner_on_goal,\n corner_miss,\n corner_goal,\n corner_pass,\n corner_self,\n personal_foul,\n counterattack_goal,\n counterattack_on_goal,\n counterattack_miss,\n counterattack_save ,\n maneuver_goal,\n maneuver_on_goal,\n maneuver_miss,\n maneuver_save,\n center_forward_goal,\n center_forward_on_goal,\n center_forward_miss,\n center_forward_save,\n free_kick_save,\n corner_save,\n tackle,\n penalty_foul,\n attack_foul,\n turnover,\n counter_attack_shot_blocked,\n maneuver_shot_blocked,\n center_forward_shot_blocked,\n free_kick_shot_blocked,\n corner_shot_blocked,\n complete_penalty_time\n}\n\nexport enum WaterpoloAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\n@Model({\n relation: {\n datetime: dateTimeField,\n logType: enumField(WaterpoloGameLogTypes),\n advantage: enumField(WaterpoloAdvantageTypes),\n }\n})\nexport class WaterpoloGameLog extends GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: WaterpoloGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: WaterpoloAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n _penalizedGameUserId: number;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n mutualPenalty: boolean;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: WaterpoloGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [WaterpoloGameLogTypes.goal, WaterpoloGameLogTypes.shootout_goal, WaterpoloGameLogTypes.after_game_shootout_goal,\n WaterpoloGameLogTypes.free_kick_goal, WaterpoloGameLogTypes.corner_goal,\n WaterpoloGameLogTypes.counterattack_goal, WaterpoloGameLogTypes.maneuver_goal, WaterpoloGameLogTypes.center_forward_goal].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n WaterpoloGameLogTypes.minor_penalty, WaterpoloGameLogTypes.major_penalty,\n WaterpoloGameLogTypes.match_penalty, WaterpoloGameLogTypes.personal_foul\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType(): boolean {\n return [\n WaterpoloGameLogTypes.minor_penalty, WaterpoloGameLogTypes.major_penalty, WaterpoloGameLogTypes.match_penalty,\n WaterpoloGameLogTypes.personal_foul, WaterpoloGameLogTypes.foul, WaterpoloGameLogTypes.attack_foul, WaterpoloGameLogTypes.penalty_foul\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: WaterpoloGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n}\n","import { Model, dateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@Model({\n relation: {\n updatedAt: dateTimeField,\n }\n})\nexport class WaterpoloGameStatistic extends GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppTotalShotsOnGoal: number;\n evTotalShotsOnGoal: number;\n shTotalShotsOnGoal: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppCounterAttackGoals: number;\n ppCounterAttackOnGoals: number;\n ppCounterAttackMisses: number;\n ppCounterAttackShotsBlocked: number;\n evCounterAttackGoals: number;\n evCounterAttackOnGoals: number;\n evCounterAttackMisses: number;\n evCounterAttackShotsBlocked: number;\n shCounterAttackGoals: number;\n shCounterAttackOnGoals: number;\n shCounterAttackMisses: number;\n shCounterAttackShotsBlocked: number;\n ppManeuverGoals: number;\n ppManeuverOnGoals: number;\n ppManeuverMisses: number;\n ppManeuverShotsBlocked: number;\n evManeuverGoals: number;\n evManeuverOnGoals: number;\n evManeuverMisses: number;\n evManeuverShotsBlocked: number;\n shManeuverGoals: number;\n shManeuverOnGoals: number;\n shManeuverMisses: number;\n shManeuverShotsBlocked: number;\n ppCenterForwardGoals: number;\n ppCenterForwardOnGoals: number;\n ppCenterForwardMisses: number;\n ppCenterForwardShotsBlocked: number;\n evCenterForwardGoals: number;\n evCenterForwardOnGoals: number;\n evCenterForwardMisses: number;\n evCenterForwardShotsBlocked: number;\n shCenterForwardGoals: number;\n shCenterForwardOnGoals: number;\n shCenterForwardMisses: number;\n shCenterForwardShotsBlocked: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n shSaves: number;\n evSaves: number;\n ppCounterAttackSaves: number;\n shCounterAttackSaves: number;\n evCounterAttackSaves: number;\n ppManeuverSaves: number;\n shManeuverSaves: number;\n evManeuverSaves: number;\n ppCenterForwardSaves: number;\n shCenterForwardSaves: number;\n evCenterForwardSaves: number;\n ppFreeKickSaves: number;\n shFreeKickSaves: number;\n evFreeKickSaves: number;\n ppCornerSaves: number;\n shCornerSaves: number;\n evCornerSaves: number;\n ppTotalGameSaves: number;\n shTotalGameSaves: number;\n evTotalGameSaves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n ppCounterAttackGoalsAgainst: number;\n shCounterAttackGoalsAgainst: number;\n evCounterAttackGoalsAgainst: number;\n counterAttackGoalsAgainst: number;\n ppManeuverGoalsAgainst: number;\n shManeuverGoalsAgainst: number;\n evManeuverGoalsAgainst: number;\n maneuverGoalsAgainst: number;\n ppCenterForwardGoalsAgainst: number;\n shCenterForwardGoalsAgainst: number;\n evCenterForwardGoalsAgainst: number;\n centerForwardGoalsAgainst: number;\n ppFreeKickGoalsAgainst: number;\n shFreeKickGoalsAgainst: number;\n evFreeKickGoalsAgainst: number;\n freeKickGoalsAgainst: number;\n ppCornerGoalsAgainst: number;\n shCornerGoalsAgainst: number;\n evCornerGoalsAgainst: number;\n cornerGoalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n fouls: number;\n minorPenalties: number;\n majorPenalties: number;\n matchPenalties: number;\n penaltyFouls: number;\n turnovers: number;\n attackFouls: number;\n personalFouls: number;\n drawnFouls: number;\n drawnTurnovers: number;\n yellowCards: number;\n redCards: number;\n losses: number;\n steals: number;\n ppFreeKickGoals: number;\n ppFreeKickOnGoals: number;\n ppFreeKickMisses: number;\n ppFreeKickShotsBlocked: number;\n shFreeKickGoals: number;\n shFreeKickOnGoals: number;\n shFreeKickMisses: number;\n shFreeKickShotsBlocked: number;\n evFreeKickGoals: number;\n evFreeKickOnGoals: number;\n evFreeKickMisses: number;\n evFreeKickShotsBlocked: number;\n freeKickPasses: number;\n freeKickSelfs: number;\n ppCornerGoals: number;\n ppCornerOnGoals: number;\n ppCornerMisses: number;\n ppCornerShotsBlocked: number;\n shCornerGoals: number;\n shCornerOnGoals: number;\n shCornerMisses: number;\n shCornerShotsBlocked: number;\n evCornerGoals: number;\n evCornerOnGoals: number;\n evCornerMisses: number;\n evCornerShotsBlocked: number;\n cornerPasses: number;\n cornerSelfs: number;\n tackles: number;\n playerEfficiency: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get penaltyTime(): string {\n if (!this.penaltyMinutes) {\n return '00:00';\n }\n const minutes = Math.floor(this.penaltyMinutes / 60);\n const seconds = Math.floor(this.penaltyMinutes - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0);\n }\n\n get totalCounterAttackGoals(): number {\n return (this.ppCounterAttackGoals || 0) + (this.evCounterAttackGoals || 0) + (this.shCounterAttackGoals || 0);\n }\n\n get ppCounterAttackShots(): number {\n return (this.ppCounterAttackOnGoals || 0) + (this.ppCounterAttackMisses || 0) + (this.ppCounterAttackShotsBlocked || 0);\n }\n\n get shCounterAttackShots(): number {\n return (this.shCounterAttackOnGoals || 0) + (this.shCounterAttackMisses || 0) + (this.shCounterAttackShotsBlocked || 0);\n }\n\n get evCounterAttackShots(): number {\n return (this.evCounterAttackOnGoals || 0) + (this.evCounterAttackMisses || 0) + (this.evCounterAttackShotsBlocked || 0);\n }\n\n get counterAttackShotMisses(): number {\n return (this.ppCounterAttackMisses || 0) + (this.shCounterAttackMisses || 0) + (this.evCounterAttackMisses || 0);\n }\n\n get counterAttackShotOnGoals(): number {\n return (this.ppCounterAttackOnGoals || 0) + (this.shCounterAttackOnGoals || 0) + (this.evCounterAttackOnGoals || 0);\n }\n\n get counterAttackShotsBlocked(): number {\n return (this.ppCounterAttackShotsBlocked || 0) + (this.shCounterAttackShotsBlocked || 0) + (this.evCounterAttackShotsBlocked || 0);\n }\n\n get counterAttackShots(): number {\n return this.counterAttackShotMisses + this.counterAttackShotOnGoals + this.counterAttackShotsBlocked;\n }\n\n get counterAttackGoalsPercent(): number {\n if (!this.totalCounterAttackGoals || !this.counterAttackShots) {\n return 0;\n }\n return Math.round(1000 * this.totalCounterAttackGoals / this.counterAttackShots) / 10;\n }\n\n get totalManeuverGoals(): number {\n return (this.ppManeuverGoals || 0) + (this.shManeuverGoals || 0) + (this.evManeuverGoals || 0);\n }\n\n get ppManeuverShots(): number {\n return (this.ppManeuverOnGoals || 0) + (this.ppManeuverMisses || 0) + (this.ppManeuverShotsBlocked || 0);\n }\n\n get shManeuverShots(): number {\n return (this.shManeuverOnGoals || 0) + (this.shManeuverMisses || 0) + (this.shManeuverShotsBlocked || 0);\n }\n\n get evManeuverShots(): number {\n return (this.evManeuverOnGoals || 0) + (this.evManeuverMisses || 0) + (this.evManeuverShotsBlocked || 0);\n }\n\n get maneuverShotMisses(): number {\n return (this.ppManeuverMisses || 0) + (this.shManeuverMisses || 0) + (this.evManeuverMisses || 0);\n }\n\n get maneuverShotOnGoals(): number {\n return (this.ppManeuverOnGoals || 0) + (this.shManeuverOnGoals || 0) + (this.evManeuverOnGoals || 0);\n }\n\n get maneuverShotsBlocked(): number {\n return (this.ppManeuverShotsBlocked || 0) + (this.shManeuverShotsBlocked || 0) + (this.evManeuverShotsBlocked || 0);\n }\n\n get maneuverShots(): number {\n return this.maneuverShotMisses + this.maneuverShotOnGoals + this.maneuverShotsBlocked;\n }\n\n get maneuverGoalsPercent(): number {\n if (!this.totalManeuverGoals || !this.maneuverShots) {\n return 0;\n }\n return Math.round(1000 * this.totalManeuverGoals / this.maneuverShots) / 10;\n }\n\n get totalCenterForwardGoals(): number {\n return (this.ppCenterForwardGoals || 0) + (this.shCenterForwardGoals || 0) + (this.evCenterForwardGoals || 0);\n }\n\n get ppCenterForwardShots(): number {\n return (this.ppCenterForwardOnGoals || 0) + (this.ppCenterForwardMisses || 0) + (this.ppCenterForwardShotsBlocked || 0);\n }\n\n get shCenterForwardShots(): number {\n return (this.shCenterForwardOnGoals || 0) + (this.shCenterForwardMisses || 0) + (this.shCenterForwardShotsBlocked || 0);\n }\n\n get evCenterForwardShots(): number {\n return (this.evCenterForwardOnGoals || 0) + (this.evCenterForwardMisses || 0) + (this.evCenterForwardShotsBlocked || 0);\n }\n\n get centerForwardShotMisses(): number {\n return (this.ppCenterForwardMisses || 0) + (this.shCenterForwardMisses || 0) + (this.evCenterForwardMisses || 0);\n }\n\n get centerForwardShotOnGoals(): number {\n return (this.ppCenterForwardOnGoals || 0) + (this.shCenterForwardOnGoals || 0) + (this.evCenterForwardOnGoals || 0);\n }\n\n get centerForwardShotsBlocked(): number {\n return (this.ppCenterForwardShotsBlocked || 0) + (this.shCenterForwardShotsBlocked || 0) + (this.evCenterForwardShotsBlocked || 0);\n }\n\n get centerForwardShots(): number {\n return this.centerForwardShotMisses + this.centerForwardShotOnGoals + this.centerForwardShotsBlocked;\n }\n\n get centerForwardGoalsPercent(): number {\n if (!this.totalCenterForwardGoals || !this.centerForwardShots) {\n return 0;\n }\n return Math.round(1000 * this.totalCenterForwardGoals / this.centerForwardShots) / 10;\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0) +\n (this.ppFreeKickMisses || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppFreeKickShotsBlocked || 0) +\n (this.ppCornerMisses || 0) + (this.ppCornerOnGoals || 0) + (this.ppCornerShotsBlocked || 0) +\n this.ppCounterAttackShots + this.ppManeuverShots + this.ppCenterForwardShots;\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0) +\n (this.evFreeKickMisses || 0) + (this.evFreeKickOnGoals || 0) + (this.evFreeKickShotsBlocked || 0) +\n (this.evCornerMisses || 0) + (this.evCornerOnGoals || 0) + (this.evCornerShotsBlocked || 0) +\n this.evCounterAttackShots + this.evManeuverShots + this.evCenterForwardShots;\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0) +\n (this.shFreeKickMisses || 0) + (this.shFreeKickOnGoals || 0) + (this.shFreeKickShotsBlocked || 0) +\n (this.shCornerMisses || 0) + (this.shCornerOnGoals || 0) + (this.shCornerShotsBlocked || 0) +\n this.shCounterAttackShots + this.shManeuverShots + this.shCenterForwardShots;\n }\n\n get totalShGoals(): number {\n return (this.shGoals || 0) + (this.shFreeKickGoals || 0) + (this.shCornerGoals || 0) +\n (this.shCounterAttackGoals || 0) + (this.shManeuverGoals || 0) + (this.shCenterForwardGoals || 0);\n }\n\n get totalEvGoals(): number {\n return (this.evGoals || 0) + (this.evFreeKickGoals || 0) + (this.evCornerGoals || 0) +\n (this.evCounterAttackGoals || 0) + (this.evManeuverGoals || 0) + (this.evCenterForwardGoals || 0);\n }\n\n get totalPpGoals(): number {\n return (this.ppGoals || 0) + (this.ppFreeKickGoals || 0) + (this.ppCornerGoals || 0) +\n (this.ppCounterAttackGoals || 0) + (this.ppManeuverGoals || 0) + (this.ppCenterForwardGoals || 0);\n }\n\n get goals(): number {\n return this.totalShGoals + this.totalEvGoals + this.totalPpGoals;\n }\n\n get totalGoals(): number {\n return this.goals + (this.shootoutGoals || 0);\n }\n\n get shootoutShots(): number {\n return (this.shootoutGoals || 0) + (this.shootoutAttempts || 0);\n }\n\n get inGameShotMisses(): number {\n return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0) +\n this.counterAttackShotMisses + this.maneuverShotMisses + this.centerForwardShotMisses;\n }\n\n get shotMisses(): number {\n return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0) +\n (this.ppCornerMisses || 0) + (this.evCornerMisses || 0) + (this.shCornerMisses || 0) +\n this.inGameShotMisses;\n }\n\n get totalPpShotMisses(): number {\n return (this.ppShotMisses || 0) + (this.ppFreeKickMisses || 0) + (this.ppCornerMisses || 0) +\n (this.ppCounterAttackMisses || 0) + (this.ppManeuverMisses || 0) + (this.ppCenterForwardMisses || 0);\n }\n\n get shotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +\n (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0) +\n (this.ppCornerOnGoals || 0) + (this.evCornerOnGoals || 0) + (this.shCornerOnGoals || 0) +\n this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals;\n }\n\n get totalPpShotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppCornerOnGoals || 0) +\n (this.ppCounterAttackOnGoals || 0) + (this.ppManeuverOnGoals || 0) + (this.ppCenterForwardOnGoals || 0);\n }\n\n get inGameShotsOnGoals(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +\n this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals;\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots;\n }\n\n get totalShots(): number {\n return this.shots + this.shootoutShots;\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get freeKickShotMisses(): number {\n return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0);\n }\n\n get freeKickShotsBlocked(): number {\n return (this.ppFreeKickShotsBlocked || 0) + (this.evFreeKickShotsBlocked || 0) + (this.shFreeKickShotsBlocked || 0);\n }\n\n get freeKickOnGoals(): number {\n return (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0);\n }\n\n get totalFreeKickGoals(): number {\n return (this.ppFreeKickGoals || 0) + (this.shFreeKickGoals || 0) + (this.evFreeKickGoals || 0);\n }\n\n get totalFreeKicks(): number {\n return (this.freeKickSelfs || 0) + (this.freeKickPasses || 0) +\n this.freeKickShotMisses + this.freeKickOnGoals + this.totalFreeKickGoals + this.freeKickShotsBlocked;\n }\n\n get freeKickGoalsPercent(): number {\n if (!this.totalFreeKickGoals || !this.totalFreeKicks) {\n return 0;\n }\n return Math.round(1000 * this.totalFreeKickGoals / this.totalFreeKicks) / 10;\n }\n\n get totalCornerGoals(): number {\n return (this.ppCornerGoals || 0) + (this.shCornerGoals || 0) + (this.evCornerGoals || 0);\n }\n\n get cornerShotMisses(): number {\n return (this.ppCornerMisses || 0) + (this.shCornerMisses || 0) + (this.evCornerMisses || 0);\n }\n\n get cornerOnGoals(): number {\n return (this.ppCornerOnGoals || 0) + (this.shCornerOnGoals || 0) + (this.evCornerOnGoals || 0);\n }\n\n get cornerShotsBlocked(): number {\n return (this.ppCornerShotsBlocked || 0) + (this.shCornerShotsBlocked || 0) + (this.evCornerShotsBlocked || 0);\n }\n\n get totalCorners(): number {\n return (this.cornerSelfs || 0) + (this.cornerPasses || 0) + this.cornerShotsBlocked +\n this.cornerOnGoals + this.cornerShotMisses + this.totalCornerGoals;\n }\n\n get shotsBlocked(): number {\n return (this.ppShotsBlocked || 0) + (this.evShotsBlocked || 0) + (this.shShotsBlocked || 0) +\n this.counterAttackShotsBlocked + this.maneuverShotsBlocked + this.centerForwardShotsBlocked +\n this.freeKickShotsBlocked + this.cornerShotsBlocked;\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.personalFouls || 0);\n }\n\n get totalPenalties(): number {\n return (this.minorPenalties || 0) + (this.majorPenalties || 0) + (this.matchPenalties || 0);\n }\n\n get positionAttackGoals(): number {\n return (this.shGoals || 0) + (this.evGoals || 0) + (this.ppGoals || 0);\n }\n\n get positionAttackShotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get positionAttackShotsMiss(): number {\n return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get positionAttackShots(): number {\n return this.positionAttackShotsOnGoal + this.positionAttackShotsMiss;\n }\n\n get positionAttackGoalsPercent(): number {\n if (!this.positionAttackGoals || !this.positionAttackShots) {\n return 0;\n }\n return Math.round(1000 * this.positionAttackGoals / this.positionAttackShots) / 10;\n }\n\n get totalInGameGoals(): number {\n return this.totalCenterForwardGoals + this.totalManeuverGoals + this.totalCounterAttackGoals + this.positionAttackGoals;\n }\n\n get ppGoalsPercent(): number {\n if (!this.totalPpGoals || !this.ppShots) {\n return 0;\n }\n return Math.round(1000 * this.totalPpGoals / this.ppShots) / 10;\n }\n\n get evGoalsPercent(): number {\n if (!this.totalEvGoals || !this.evShots) {\n return 0;\n }\n return Math.round(1000 * this.totalEvGoals / this.evShots) / 10;\n }\n\n get shGoalsPercent(): number {\n if (!this.totalShGoals || !this.shShots) {\n return 0;\n }\n return Math.round(1000 * this.totalShGoals / this.shShots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.goals || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.goals / this.shots) / 10;\n }\n\n get totalGoalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get faceOffPercent(): number {\n if (!this.faceOffWins || !this.faceOffs) {\n return 0;\n }\n return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;\n }\n\n get shootoutGoalsPercent(): number {\n if (!this.shootoutGoals || !this.shootoutShots) {\n return 0;\n }\n return Math.round(1000 * this.shootoutGoals / this.shootoutShots) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n /*goalie stat */\n get positionAttackSaves(): number {\n return (this.ppSaves || 0) + (this.shSaves || 0) + (this.evSaves || 0);\n }\n\n get positionAttackShotsAgainst(): number {\n return this.positionAttackSaves + (this.goalsAgainst || 0);\n }\n\n get positionAttackSavesPercent(): number {\n if (!this.positionAttackSaves || !this.positionAttackShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.positionAttackSaves / this.positionAttackShotsAgainst) / 10;\n }\n\n get counterAttackSaves(): number {\n return (this.ppCounterAttackSaves || 0) + (this.shCounterAttackSaves || 0) + (this.evCounterAttackSaves || 0);\n }\n\n get counterAttackShotsAgainst(): number {\n return this.counterAttackSaves + (this.counterAttackGoalsAgainst || 0);\n }\n\n get counterAttackSavesPercent(): number {\n if (!this.counterAttackSaves || !this.counterAttackShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.counterAttackSaves / this.counterAttackShotsAgainst) / 10;\n }\n\n\n get centerForwardSaves(): number {\n return (this.ppCenterForwardSaves || 0) + (this.shCenterForwardSaves || 0) + (this.evCenterForwardSaves || 0);\n }\n\n get centerForwardShotsAgainst(): number {\n return this.centerForwardSaves + (this.centerForwardGoalsAgainst || 0);\n }\n\n get centerForwardSavesPercent(): number {\n if (!this.centerForwardSaves || !this.centerForwardShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.centerForwardSaves / this.centerForwardShotsAgainst) / 10;\n }\n\n get maneuverSaves(): number {\n return (this.ppManeuverSaves || 0) + (this.shManeuverSaves || 0) + (this.evManeuverSaves || 0);\n }\n\n get maneuverShotsAgainst(): number {\n return this.maneuverSaves + (this.maneuverGoalsAgainst || 0);\n }\n\n get maneuverSavesPercent(): number {\n if (!this.maneuverSaves || !this.maneuverShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.maneuverSaves / this.maneuverShotsAgainst) / 10;\n }\n\n get freeKickSaves(): number {\n return (this.ppFreeKickSaves || 0) + (this.shFreeKickSaves || 0) + (this.evFreeKickSaves || 0);\n }\n\n get freeKickShotsAgainst(): number {\n return this.freeKickSaves + (this.freeKickGoalsAgainst || 0);\n }\n\n get freeKickSavesPercent(): number {\n if (!this.freeKickSaves || !this.freeKickShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.freeKickSaves / this.freeKickShotsAgainst) / 10;\n }\n\n get cornerSaves(): number {\n return (this.ppCornerSaves || 0) + (this.shCornerSaves || 0) + (this.evCornerSaves || 0);\n }\n\n get cornerShotsAgainst(): number {\n return this.cornerSaves + (this.cornerGoalsAgainst || 0);\n }\n\n get cornerSavesPercent(): number {\n if (!this.cornerSaves || !this.cornerShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.cornerSaves / this.cornerShotsAgainst) / 10;\n }\n\n get inGameSaves(): number {\n return (this.shSaves || 0) + (this.evSaves || 0) + (this.ppSaves || 0) +\n this.counterAttackSaves + this.maneuverSaves + this.centerForwardSaves;\n }\n\n get saves(): number {\n return this.inGameSaves + this.freeKickSaves + this.cornerSaves;\n }\n\n get totalSaves(): number {\n return this.saves + (this.shootoutSaves || 0);\n }\n\n get inGameGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.counterAttackGoalsAgainst || 0) + (this.maneuverGoalsAgainst || 0) +\n (this.centerForwardGoalsAgainst || 0);\n }\n\n get shootoutShotsAgainst(): number {\n return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameGoalsAgainst(): number {\n return this.inGameGoalsAgainst + (this.freeKickGoalsAgainst || 0) + (this.cornerGoalsAgainst || 0);\n }\n\n get totalGoalsAgainst(): number {\n return this.gameGoalsAgainst + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameShotsAgainst(): number {\n return this.saves + this.gameGoalsAgainst;\n }\n\n get totalShotsAgainst(): number {\n return this.gameShotsAgainst + this.shootoutShotsAgainst;\n }\n\n get shootoutSavesPercent(): number {\n if (!this.shootoutSaves || !this.shootoutShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.shootoutSaves / this.shootoutShotsAgainst) / 10;\n }\n\n get savesPercent(): number {\n if (!this.saves || !this.gameShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.gameShotsAgainst) / 10;\n }\n\n get totalSavesPercent(): number {\n if (!this.totalSaves || !this.totalShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;\n }\n\n get totalShSaves(): number {\n return (this.shCounterAttackSaves || 0) + (this.shManeuverSaves || 0) + (this.shCenterForwardSaves || 0) +\n (this.shSaves || 0) + (this.shFreeKickSaves || 0) + (this.shCornerSaves || 0);\n }\n\n get totalShGoalsAgainst(): number {\n return (this.shGoalsAgainst || 0) + (this.shFreeKickGoalsAgainst || 0) + (this.shCornerGoalsAgainst || 0) +\n (this.shCounterAttackGoalsAgainst || 0) + (this.shManeuverGoalsAgainst || 0) + (this.shCenterForwardGoalsAgainst || 0);\n }\n\n get totalShShotsAgainst(): number {\n return this.totalShSaves + this.totalShGoalsAgainst;\n }\n\n get totalShSavesPercent(): number {\n if (!this.totalShSaves || !this.totalShShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalShSaves / this.totalShShotsAgainst) / 10;\n }\n\n get totalEvSaves(): number {\n return (this.evCounterAttackSaves || 0) + (this.evManeuverSaves || 0) + (this.evCenterForwardSaves || 0) +\n (this.evSaves || 0) + (this.evFreeKickSaves || 0) + (this.evCornerSaves || 0);\n }\n\n get totalEvGoalsAgainst(): number {\n return (this.evGoalsAgainst || 0) + (this.evFreeKickGoalsAgainst || 0) + (this.evCornerGoalsAgainst || 0) +\n (this.evCounterAttackGoalsAgainst || 0) + (this.evManeuverGoalsAgainst || 0) + (this.evCenterForwardGoalsAgainst || 0);\n }\n\n get totalEvShotsAgainst(): number {\n return this.totalEvSaves + this.totalEvGoalsAgainst;\n }\n\n get totalEvSavesPercent(): number {\n if (!this.totalEvSaves || !this.totalEvShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalEvSaves / this.totalEvShotsAgainst) / 10;\n }\n}\n","import { Model, BaseModel, nestedModel } from './util';\nimport { WaterpoloStatistic } from './waterpolo-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@Model({\n relation: {\n team: nestedModel(WaterpoloStatistic),\n competitorTeam: nestedModel(WaterpoloStatistic),\n }\n})\nexport class WaterpoloGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: WaterpoloStatistic;\n competitorTeam: WaterpoloStatistic;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { WaterpoloGameLog } from '../models/waterpolo-game-log';\nimport { WaterpoloGameStatistic } from '../models/waterpolo-game-statistic';\nimport { WaterpoloGameTeamStatistic } from '../models/waterpolo-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class WaterpoloGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/`).pipe(\n map(result => new Game(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<WaterpoloGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/team_statistic/`).pipe(\n map(result => new WaterpoloGameTeamStatistic(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<WaterpoloGameStatistic[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/user_statistic/`\n ).pipe(\n map(result => result.map(item => new WaterpoloGameStatistic(item)))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<WaterpoloGameLog[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/logs/`\n ).pipe(\n map(result => result.map(item => new WaterpoloGameLog(item)))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TeamUser } from '../models/team-user';\n\n@Injectable({providedIn: 'root'})\nexport class PublicTeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(teamId: number): Promise<Team> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/`).pipe(\n map(result => new Team(result))\n ).toPromise();\n }\n\n getTournamentTeams(teamId: number, leagueId: number): Promise<TournamentTeam[]> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/tournament_teams/`,\n {params}\n ).pipe(\n map(result => result.map(item => new TournamentTeam(item)))\n ).toPromise();\n }\n\n async getUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get<object[]>(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/users/`)\n .pipe(map(data => data.map(item => new TeamUser(item))))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { User } from '../models/user';\nimport { map } from 'rxjs/operators';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { LeaguePlayer } from '../models/league-player';\n\n@Injectable({providedIn: 'root'})\nexport class PublicUserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(userId: number): Promise<User> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/`).pipe(\n map(result => new User(result))\n ).toPromise();\n }\n\n getTournaments(userId: number, leagueId: number): Promise<Tournament[]> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/tournaments/`,\n {params}\n ).pipe(\n map(result => result.map(item => new Tournament(item))),\n ).toPromise();\n }\n\n getTournamentUser(userId: number, seasonId: number): Promise<TournamentTeamUser> {\n const params = new HttpParams().set('season_id', seasonId.toString());\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/tournament_user/`,\n {params}\n ).pipe(\n map(result => new TournamentTeamUser(result))\n ).toPromise();\n }\n\n getLeaguePlayer(userId: number, leagueId: number): Promise<LeaguePlayer> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/league_player/`,\n {params}\n ).pipe(\n map(result => new LeaguePlayer(result))\n ).toPromise();\n }\n}\n","import { BasketballGameLogTypes } from '../models/basketball-game-log';\n\nexport const BasketballGameLogTypeLocalization = {\n [BasketballGameLogTypes.enter_game]: 'Выход на площадку',\n [BasketballGameLogTypes.exit_game]: 'Ушел с площадки',\n [BasketballGameLogTypes.remove_game]: 'Удаление с площадки',\n [BasketballGameLogTypes.two_point_attempt]: 'Бросок 2 очка',\n [BasketballGameLogTypes.three_point_attempt]: 'Бросок 3 очка',\n [BasketballGameLogTypes.free_throw_attempt]: 'Штрафной бросок',\n [BasketballGameLogTypes.one_point_attempt]: 'Бросок 1 очко',\n [BasketballGameLogTypes.two_point_made]: '2 очка',\n [BasketballGameLogTypes.three_point_made]: '3 очка',\n [BasketballGameLogTypes.free_throw_made]: '1 очко, штрафной',\n [BasketballGameLogTypes.one_point_made]: '1 очко',\n [BasketballGameLogTypes.assist]: 'Передача',\n [BasketballGameLogTypes.block]: 'Блокшот',\n [BasketballGameLogTypes.rebound]: 'Подбор',\n [BasketballGameLogTypes.offensive_rebound]: 'Подбор в нападении',\n [BasketballGameLogTypes.defensive_rebound]: 'Подбор в защите',\n [BasketballGameLogTypes.steal]: 'Перехват',\n [BasketballGameLogTypes.turnover]: 'Потеря',\n [BasketballGameLogTypes.personal_foul]: 'Фол',\n [BasketballGameLogTypes.technical_foul]: 'Технический фол',\n [BasketballGameLogTypes.unsportsmanlike_foul]: 'Неспортиный фол',\n [BasketballGameLogTypes.timeout]: 'Таймаут',\n [BasketballGameLogTypes.team_rebound]: 'Командный подбор',\n [BasketballGameLogTypes.dunk_attempt]: 'Данк мимо',\n [BasketballGameLogTypes.dunk_made]: 'Данк',\n [BasketballGameLogTypes.four_point_attempt]: 'Бросок 4 очка',\n [BasketballGameLogTypes.four_point_made]: '4 очка',\n [BasketballGameLogTypes.shootout]: 'Булит',\n [BasketballGameLogTypes.shootout_won]: 'Булит выигран',\n [BasketballGameLogTypes.shootout_lost]: 'Булит проигран',\n};\n","import { BasketballSubLogTypes } from '../models/basketball-game-log';\n\nexport const BasketballGameSubLogTypesLocalization = {\n // Shots\n [BasketballSubLogTypes.jump_shot]: 'Джампшот',\n [BasketballSubLogTypes.step_back_jump_shot]: 'Степ-бэк',\n [BasketballSubLogTypes.floating_jump_shot]: 'Флоатинг',\n [BasketballSubLogTypes.fade_away_jump_shot]: 'Фэйдавэй',\n [BasketballSubLogTypes.pull_up_jump_shot]: 'Пуллап',\n [BasketballSubLogTypes.turnaround_jump_shot]: 'Турнэраунд',\n [BasketballSubLogTypes.dunk]: 'Данк',\n [BasketballSubLogTypes.layup]: 'Лэйап',\n [BasketballSubLogTypes.driving_layup]: 'Драйвинг лэйап',\n [BasketballSubLogTypes.alley_oop]: 'Алейуп',\n [BasketballSubLogTypes.hook_shot]: 'Хукшот',\n\n // foul\n [BasketballSubLogTypes.offensive_foul]: 'В нападении',\n [BasketballSubLogTypes.shot_foul]: 'При броксе',\n [BasketballSubLogTypes.mutual_foul]: 'Обоюдный фол',\n\n // Turnover\n [BasketballSubLogTypes.bad_pass]: 'Плохой пас',\n [BasketballSubLogTypes.ball_handling]: 'На ведении',\n [BasketballSubLogTypes.travel]: 'Пробежка',\n [BasketballSubLogTypes.double_dribble]: 'Двойное ведение',\n [BasketballSubLogTypes.out_of_bounds]: 'Заступ в аут',\n [BasketballSubLogTypes.three_seconds]: '3 секунды',\n [BasketballSubLogTypes.five_seconds]: '5 секунд',\n [BasketballSubLogTypes.eight_seconds]: '8 секунд',\n [BasketballSubLogTypes.twenty_four_seconds]: '24 секунды',\n [BasketballSubLogTypes.back_court]: 'Зона',\n [BasketballSubLogTypes.offensive_goal_tending]: 'Гоалтендинг',\n [BasketballSubLogTypes.other_turnover]: 'Другое',\n};\n","import { HockeyGameLogTypes } from '../models/hockey-game-log';\n\nexport const HockeyGameLogTypeLocalization = {\n [HockeyGameLogTypes.enter_game]: 'Выход на площадку',\n [HockeyGameLogTypes.exit_game]: 'Ушел с площадки',\n [HockeyGameLogTypes.shot_miss]: 'Бросок мимо',\n [HockeyGameLogTypes.shot_on_goal]: 'Бросок по воротам',\n [HockeyGameLogTypes.shot_blocked]: 'Заблокированный бросок',\n [HockeyGameLogTypes.goal]: 'Гол',\n [HockeyGameLogTypes.shootout_attempt]: 'Буллит промах',\n [HockeyGameLogTypes.shootout_goal]: 'Буллит гол',\n [HockeyGameLogTypes.after_game_shootout_attempt]: 'Буллит промах',\n [HockeyGameLogTypes.after_game_shootout_goal]: 'Буллит гол',\n [HockeyGameLogTypes.assist]: 'Передача',\n [HockeyGameLogTypes.block_shot]: 'Блокировка броска',\n [HockeyGameLogTypes.minor_penalty]: 'Малый штраф',\n [HockeyGameLogTypes.major_penalty]: 'Большой штраф',\n [HockeyGameLogTypes.misconduct_penalty]: 'Дисциплинарный штраф',\n [HockeyGameLogTypes.game_misconduct_penalty]: 'Дисциплинарный штраф до конца игры',\n [HockeyGameLogTypes.match_penalty]: 'Матч-штраф',\n [HockeyGameLogTypes.penalty_shot]: 'Штрафной бросок',\n [HockeyGameLogTypes.face_off_lose]: 'Проигрыш в вбрасывании',\n [HockeyGameLogTypes.face_off_win]: 'Победа в вбрасывании',\n [HockeyGameLogTypes.save]: 'Отражен бросок',\n [HockeyGameLogTypes.shootout_save]: 'Отражен бросок',\n [HockeyGameLogTypes.after_game_shootout_save]: 'Отражен бросок',\n [HockeyGameLogTypes.timeout]: 'Таймаут',\n [HockeyGameLogTypes.penalty_start]: 'Начало штрафного времени',\n [HockeyGameLogTypes.penalty_end]: 'Конец штрафного времени',\n [HockeyGameLogTypes.steal]: 'Отбор',\n [HockeyGameLogTypes.loss]: 'Потеря',\n [HockeyGameLogTypes.sharp_pass]: 'Острая передача',\n};\n","import { FootballGameLogTypes } from '../models/football-game-log';\n\nexport const FootballGameLogTypeLocalization = {\n [FootballGameLogTypes.enter_game]: 'Выход на поле',\n [FootballGameLogTypes.exit_game]: 'Ушел с поля',\n [FootballGameLogTypes.shot_miss]: 'Удар мимо',\n [FootballGameLogTypes.shot_on_goal]: 'Удар в створ',\n [FootballGameLogTypes.shot_blocked]: 'Заблокированный удар',\n [FootballGameLogTypes.goal]: 'Гол',\n [FootballGameLogTypes.assist]: 'Передача',\n [FootballGameLogTypes.penalty_attempt]: 'Пенальти промах',\n [FootballGameLogTypes.penalty_goal]: 'Пенальти гол',\n [FootballGameLogTypes.small_penalty_attempt]: '10-метровый промах',\n [FootballGameLogTypes.small_penalty_goal]: '10-метровый гол',\n [FootballGameLogTypes.block_shot]: 'Блокировка удара',\n [FootballGameLogTypes.corner]: 'Угловой',\n [FootballGameLogTypes.free_kick]: 'Штрафной удар',\n [FootballGameLogTypes.save]: 'Отражен удар',\n [FootballGameLogTypes.penalty_save]: 'Отражен пенальти',\n [FootballGameLogTypes.small_penalty_save]: 'Отражен 10 метровый',\n [FootballGameLogTypes.foul]: 'Фол',\n [FootballGameLogTypes.yellow_card]: 'Желтая карточка',\n [FootballGameLogTypes.red_card]: 'Красная карточка',\n [FootballGameLogTypes.perfect_pass]: 'Пас',\n [FootballGameLogTypes.loss]: 'Потеря',\n [FootballGameLogTypes.steal]: 'Перехват',\n [FootballGameLogTypes.out]: 'Аут',\n [FootballGameLogTypes.timeout]: 'Таймаут',\n [FootballGameLogTypes.auto_goal]: 'Автогол',\n [FootballGameLogTypes.end_game_penalty_goal]: 'Пенальти гол',\n [FootballGameLogTypes.end_game_penalty_miss]: 'Пенальти промах',\n [FootballGameLogTypes.end_game_penalty_save]: 'Отражен пенальти',\n};\n","import { HandballGameLogTypes } from '../models/handball-game-log';\n\nexport const HandballGameLogTypeLocalization = {\n [HandballGameLogTypes.enter_game]: 'Выход на поле',\n [HandballGameLogTypes.exit_game]: 'Ушел с поля',\n [HandballGameLogTypes.shot_miss]: 'Бросок мимо',\n [HandballGameLogTypes.shot_on_goal]: 'Бросок в створ',\n [HandballGameLogTypes.shot_blocked]: 'Заблокированный бросок',\n [HandballGameLogTypes.goal]: 'Гол',\n [HandballGameLogTypes.assist]: 'Передача',\n [HandballGameLogTypes.penalty_miss]: '7м промах',\n [HandballGameLogTypes.penalty_shot_on_goal]: '7м в створ',\n [HandballGameLogTypes.penalty_goal]: '7м гол',\n [HandballGameLogTypes.save]: 'Сэйв',\n [HandballGameLogTypes.penalty_save]: 'Сэйв 7м',\n [HandballGameLogTypes.foul]: 'Фол',\n [HandballGameLogTypes.yellow_card]: 'Желлтая карточка',\n [HandballGameLogTypes.red_card]: 'Красная карточка',\n [HandballGameLogTypes.two_minute_foul]: '2х минутный штраф',\n [HandballGameLogTypes.turnover]: 'Потеря',\n [HandballGameLogTypes.steal]: 'Перехват',\n [HandballGameLogTypes.block_shot]: 'Блок броска',\n [HandballGameLogTypes.timeout]: 'Таймаут'\n};\n","import { WaterpoloGameLogTypes } from '../models/waterpolo-game-log';\n\nexport const WaterpoloGameLogTypeLocalization = {\n [WaterpoloGameLogTypes.enter_game]: 'Выход на площадку',\n [WaterpoloGameLogTypes.exit_game]: 'Ушел с площадки',\n [WaterpoloGameLogTypes.shot_miss]: 'Бросок мимо',\n [WaterpoloGameLogTypes.counterattack_miss]: 'Бросок мимо в контратаке',\n [WaterpoloGameLogTypes.maneuver_miss]: 'Бросок мимо с маневра',\n [WaterpoloGameLogTypes.center_forward_miss]: 'Бросок мимо со столба',\n [WaterpoloGameLogTypes.shot_on_goal]: 'Бросок по воротам',\n [WaterpoloGameLogTypes.counterattack_on_goal]: 'Бросок по воротам в контратаке',\n [WaterpoloGameLogTypes.maneuver_on_goal]: 'Бросок по воротам с маневра',\n [WaterpoloGameLogTypes.center_forward_on_goal]: 'Бросок по воротам со столба',\n [WaterpoloGameLogTypes.shot_blocked]: 'Заблокирован бросок',\n [WaterpoloGameLogTypes.counter_attack_shot_blocked]: 'Заблокирован бросок в контратаке',\n [WaterpoloGameLogTypes.maneuver_shot_blocked]: 'Заблокирован бросок с маневра',\n [WaterpoloGameLogTypes.center_forward_shot_blocked]: 'Заблокирован бросок со столба',\n [WaterpoloGameLogTypes.goal]: 'Гол',\n [WaterpoloGameLogTypes.maneuver_goal]: 'Гол с маневра',\n [WaterpoloGameLogTypes.counterattack_goal]: 'Гол в контратаке',\n [WaterpoloGameLogTypes.center_forward_goal]: 'Гол со столба',\n [WaterpoloGameLogTypes.shootout_attempt]: 'Пенальти промах',\n [WaterpoloGameLogTypes.shootout_goal]: 'Пенальти гол',\n [WaterpoloGameLogTypes.after_game_shootout_attempt]: 'Пенальти промах',\n [WaterpoloGameLogTypes.after_game_shootout_goal]: 'Пенальти гол',\n [WaterpoloGameLogTypes.assist]: 'Голевая передача',\n [WaterpoloGameLogTypes.block_shot]: 'Блокировка броска',\n [WaterpoloGameLogTypes.minor_penalty]: 'Удаление на 20 сек.',\n [WaterpoloGameLogTypes.major_penalty]: 'Удаление + 20 сек. штраф',\n [WaterpoloGameLogTypes.match_penalty]: 'Удаление + 4 мин. штраф',\n [WaterpoloGameLogTypes.foul]: 'Фол',\n [WaterpoloGameLogTypes.penalty_foul]: 'Фол пенальти',\n [WaterpoloGameLogTypes.attack_foul]: 'Фол в нападении',\n [WaterpoloGameLogTypes.personal_foul]: 'Персональный фол',\n [WaterpoloGameLogTypes.penalty_shot]: 'Штрафной бросок',\n [WaterpoloGameLogTypes.face_off_lose]: 'Проигрыш в спринте',\n [WaterpoloGameLogTypes.face_off_win]: 'Победа в спринте',\n [WaterpoloGameLogTypes.save]: 'Отражен бросок',\n [WaterpoloGameLogTypes.counterattack_save]: 'Отражен бросок в контратаке',\n [WaterpoloGameLogTypes.maneuver_save]: 'Отражен бросок с маневра',\n [WaterpoloGameLogTypes.center_forward_save]: 'Отражен бросок со столба',\n [WaterpoloGameLogTypes.free_kick_save]: 'Отражен бросок со свободного',\n [WaterpoloGameLogTypes.corner_save]: 'Отражен бросок с углового',\n [WaterpoloGameLogTypes.shootout_save]: 'Отражен бросок с пенальти',\n [WaterpoloGameLogTypes.after_game_shootout_save]: 'Отражен бросок с пенальти',\n [WaterpoloGameLogTypes.timeout]: 'Таймаут',\n [WaterpoloGameLogTypes.penalty_start]: 'Начало штрафного времени',\n [WaterpoloGameLogTypes.penalty_end]: 'Конец штрафного времени',\n [WaterpoloGameLogTypes.yellow_card]: 'Желтая карточка',\n [WaterpoloGameLogTypes.red_card]: 'Красная карточка',\n [WaterpoloGameLogTypes.turnover]: 'Переход владения',\n [WaterpoloGameLogTypes.loss]: 'Потеря',\n [WaterpoloGameLogTypes.steal]: 'Перехват',\n [WaterpoloGameLogTypes.tackle]: 'Отбор',\n [WaterpoloGameLogTypes.free_kick_goal]: 'Гол со свободного удара',\n [WaterpoloGameLogTypes.free_kick_on_goal]: 'Бросок со свободного удара в створ',\n [WaterpoloGameLogTypes.free_kick_miss]: 'Бросок мимо со свободного удара',\n [WaterpoloGameLogTypes.free_kick_shot_blocked]: 'Заблокирован бросок со свободного удара',\n [WaterpoloGameLogTypes.free_kick_pass]: 'Пас со свободного удара',\n [WaterpoloGameLogTypes.free_kick_self]: 'Розыгрыш свободного удара',\n [WaterpoloGameLogTypes.corner_goal]: 'Гол с углового',\n [WaterpoloGameLogTypes.corner_on_goal]: 'Бросок с углового в створ',\n [WaterpoloGameLogTypes.corner_miss]: 'Бросок мимо с углового',\n [WaterpoloGameLogTypes.corner_shot_blocked]: 'Заблокирован бросок с углового',\n [WaterpoloGameLogTypes.corner_pass]: 'Пас с углового',\n [WaterpoloGameLogTypes.corner_self]: 'Розыгрыш углового',\n [WaterpoloGameLogTypes.complete_penalty_time]: 'Досрочное завершение штрафа'\n};\n","import { OvertimeTypes } from '../models/tournament';\n\nexport const OvertimeTypeLocalization = {\n [OvertimeTypes.to_score_diff]: 'До разницы в N мячей',\n [OvertimeTypes.to_score_total]: 'До N очков',\n [OvertimeTypes.time]: 'По времени',\n [OvertimeTypes.without_overtime]: 'Без овертайма',\n [OvertimeTypes.to_first_goal]: 'На N минут до первой шайбы',\n [OvertimeTypes.to_first_goal_and_bullitts]: 'На N минут до первой шайбы + буллиты',\n [OvertimeTypes.bullitts]: 'Буллиты',\n [OvertimeTypes.penalties]: 'Пенальти',\n [OvertimeTypes.time_and_penalties]: 'Дополнительное время + пенальти'\n};\n","import { RugbyFoulSanctions } from '../models/rugby-foul-type';\n\nexport const RugbyFoulSanctionLocalization = {\n [RugbyFoulSanctions.scrum]: 'Схватка',\n [RugbyFoulSanctions.lineout]: 'Коридор',\n [RugbyFoulSanctions.start_kick]: 'Начальный удар',\n [RugbyFoulSanctions.free_kick]: 'Свободный удар',\n [RugbyFoulSanctions.penalty_shot]: 'Штрафной удар',\n [RugbyFoulSanctions.twenty_two_meters_kick]: 'Удар с 22 метров',\n [RugbyFoulSanctions.conversion_cancel]: 'Отмена удара',\n [RugbyFoulSanctions.yellow_card]: 'Желтая карточка',\n [RugbyFoulSanctions.red_card]: 'Красная карточка',\n};\n","import { RugbyFoulGameStage } from '../models/rugby-foul-type';\n\nexport const RugbyFoulGameStageLocalization = {\n [RugbyFoulGameStage.start_kick]: 'Начальные удары',\n [RugbyFoulGameStage.open_game]: 'Открытая игра',\n [RugbyFoulGameStage.tackle]: 'Игроки на земле, Захват',\n [RugbyFoulGameStage.ruck_or_maul]: 'Рак, мол',\n [RugbyFoulGameStage.scrum]: 'Схватка',\n [RugbyFoulGameStage.out_and_lineout]: 'Аут и коридор',\n [RugbyFoulGameStage.scoring_field]: 'Зачетное поле',\n [RugbyFoulGameStage.kick_on_goal]: 'Удар по воротам',\n [RugbyFoulGameStage.free_kick]: 'Штрафной, свободный удар',\n [RugbyFoulGameStage.team]: 'Команда',\n};\n","import { RugbyGameLogTypes } from '../models/rugby-game-log';\n\nexport const RugbyGameLogTypeLocalization = {\n [RugbyGameLogTypes.enter_game]: 'Вышел на поле',\n [RugbyGameLogTypes.exit_game]: 'Ушел с поля',\n [RugbyGameLogTypes.try]: 'Попытка',\n [RugbyGameLogTypes.penalty_try]: 'Штрафная попытка',\n [RugbyGameLogTypes.conversion_goal]: 'Реализация',\n [RugbyGameLogTypes.conversion_miss]: 'Реализация промах',\n [RugbyGameLogTypes.penalty_miss]: 'Штрафной промах',\n [RugbyGameLogTypes.penalty_goal]: 'Штрафной гол',\n [RugbyGameLogTypes.penalty_kick_to_touch]: 'Штрафной в аут',\n [RugbyGameLogTypes.tap_penalty]: 'Штрафной розыгран',\n [RugbyGameLogTypes.drop_goal]: 'Дроп-гол',\n [RugbyGameLogTypes.drop_goal_miss]: 'Дроп-гол промах',\n [RugbyGameLogTypes.free_kick]: 'Свободный удар',\n [RugbyGameLogTypes.foul]: 'Фол',\n [RugbyGameLogTypes.yellow_card]: 'Желтая карточка',\n [RugbyGameLogTypes.red_card]: 'Красная карточка',\n [RugbyGameLogTypes.offload]: 'Скидка при завхвате',\n [RugbyGameLogTypes.tackle]: 'Успешный захват',\n [RugbyGameLogTypes.handling_error]: 'Ошибка приема',\n [RugbyGameLogTypes.carries_over_gainline]: 'Прорыв линии',\n [RugbyGameLogTypes.bleeding_injury]: 'Кровоточащая травма',\n [RugbyGameLogTypes.head_injury]: 'Травма головы',\n [RugbyGameLogTypes.end_game_penalty_miss]: 'Штрафной промах',\n [RugbyGameLogTypes.end_game_penalty_goal]: 'Штрафной гол',\n [RugbyGameLogTypes.foot_field_shot]: 'Удар ногой в поле',\n [RugbyGameLogTypes.foot_out_shot]: 'Удар ногой в аут',\n [RugbyGameLogTypes.foot_kick_50_22]: 'Удар ногой 50/22',\n\n [RugbyGameLogTypes.timeout]: 'Таймаут',\n [RugbyGameLogTypes.scrum_won]: 'Схватка выиграна',\n [RugbyGameLogTypes.scrum_lost]: 'Схватка проиграна',\n [RugbyGameLogTypes.scrum_won_free]: 'Схватка выиграна без сопротивления',\n [RugbyGameLogTypes.lineout_won]: 'Коридор выигран',\n [RugbyGameLogTypes.lineout_lost]: 'Коридор проигран',\n [RugbyGameLogTypes.quick_throw]: 'Быстрый вброс',\n [RugbyGameLogTypes.ruck_won]: 'Рак выигран',\n [RugbyGameLogTypes.ruck_lost]: 'Рак проигран',\n [RugbyGameLogTypes.maul_won]: 'Мол выигран',\n [RugbyGameLogTypes.maul_lost]: 'Мол проигран',\n [RugbyGameLogTypes.team_foul]: 'Нарушение',\n [RugbyGameLogTypes.start_kick]: 'Начальный удар',\n [RugbyGameLogTypes.twenty_two_meters_kick]: 'Удар с 22 метров',\n [RugbyGameLogTypes.goal_kick]: 'Удар от ворот',\n};\n","import { TeamUserRole } from '../models/team-user';\n\nexport const TeamUserRoleLocalization = {\n [TeamUserRole.member]: 'Пользователь',\n [TeamUserRole.moderator]: 'Модератор',\n [TeamUserRole.admin]: 'Владелец',\n [TeamUserRole.coach]: 'Тренер',\n [TeamUserRole.head_coach]: 'Главный тренер',\n [TeamUserRole.playing_coach]: 'Играющий тренер',\n [TeamUserRole.manager]: 'Менеджер',\n [TeamUserRole.head_manager]: 'Генеральный менеджер',\n [TeamUserRole.captain]: 'Капитан',\n [TeamUserRole.assistant]: 'Ассистент',\n};\n","import { GameBasketballPosition, WorkHand } from '../models/basketball-profile';\nimport { GameVolleyballPosition, VolleyballWorkHand } from '../models/volleyball-profile';\nimport { GameHockeyPosition } from '../models/hockey-profile';\nimport { FootballWorkFoot, GameFootballPosition } from '../models/football-profile';\nimport { GameHandballPosition } from '../models/handball-profile';\nimport { GameRugbyPosition } from '../models/rugby-profile';\nimport { GameWaterpoloPosition, WaterpoloWorkHand } from '../models/waterpolo-profile';\n\nexport const GameBasketballPositionLocalization = {\n [GameBasketballPosition.point_guard]: 'Разыгрывающий защитник',\n [GameBasketballPosition.shooting_guard]: 'Атакующий защитник',\n [GameBasketballPosition.small_forward]: 'Легкий форвард',\n [GameBasketballPosition.power_forward]: 'Мощный форвард',\n [GameBasketballPosition.center]: 'Центровой',\n};\n\nexport const GameBasketballPositionShortLocalization = {\n [GameBasketballPosition.point_guard]: 'PG',\n [GameBasketballPosition.shooting_guard]: 'SG',\n [GameBasketballPosition.small_forward]: 'SF',\n [GameBasketballPosition.power_forward]: 'PF',\n [GameBasketballPosition.center]: 'C',\n};\n\nexport const WorkHandLocalization = {\n [WorkHand.left]: 'Левая',\n [WorkHand.right]: 'Правая'\n};\n\nexport const HockeyWorkHandLocalization = {\n [WorkHand.left]: 'Левый',\n [WorkHand.right]: 'Правый'\n};\n\nexport const GameVolleyballPositionLocalization = {\n [GameVolleyballPosition.setter]: 'Связующий',\n [GameVolleyballPosition.libero]: 'Либеро',\n [GameVolleyballPosition.middle_player]: 'Центральный блокирующий',\n [GameVolleyballPosition.receiver_attacker]: 'Доигровщик',\n [GameVolleyballPosition.dioganal]: 'Диагональный',\n};\n\nexport const GameVolleyballPositionShortLocalization = {\n [GameVolleyballPosition.setter]: 'S',\n [GameVolleyballPosition.libero]: 'L',\n [GameVolleyballPosition.middle_player]: 'MP',\n [GameVolleyballPosition.receiver_attacker]: 'RA',\n [GameVolleyballPosition.dioganal]: 'D',\n};\n\nexport const GameVolleyballPositionShortRuLocalization = {\n [GameVolleyballPosition.setter]: 'связ.',\n [GameVolleyballPosition.libero]: 'либеро',\n [GameVolleyballPosition.middle_player]: 'блок.',\n [GameVolleyballPosition.receiver_attacker]: 'доигр.',\n [GameVolleyballPosition.dioganal]: 'диаг.',\n};\n\nexport const VolleyballWorkHandLocalization = {\n [VolleyballWorkHand.left]: 'Левая',\n [VolleyballWorkHand.right]: 'Правая'\n};\n\nexport const GameHockeyPositionLocalization = {\n [GameHockeyPosition.goaltender]: 'Вратарь',\n [GameHockeyPosition.defensemen]: 'Защитник',\n [GameHockeyPosition.forward]: 'Нападающий'\n};\n\nexport const GameFootballPositionLocalization = {\n [GameFootballPosition.goalkeeper]: 'Вратарь',\n [GameFootballPosition.defensemen]: 'Защитник',\n [GameFootballPosition.midfielder]: 'Полузащитник',\n [GameFootballPosition.forward]: 'Нападающий'\n};\n\nexport const FootballWorkFootLocalization = {\n [FootballWorkFoot.left]: 'Левая',\n [FootballWorkFoot.right]: 'Правая',\n [FootballWorkFoot.both]: 'Обе'\n};\n\nexport const GameHandballPositionLocalization = {\n [GameHandballPosition.goalkeeper]: 'Вратарь',\n [GameHandballPosition.winger]: 'Крайний',\n [GameHandballPosition.pivot]: 'Линейный',\n [GameHandballPosition.centre_back]: 'Центральный',\n [GameHandballPosition.fullback]: 'Полусредний',\n};\n\nexport const GameRugbyPositionLocalization = {\n [GameRugbyPosition.front_line]: 'Надающий первой линии',\n [GameRugbyPosition.second_line]: 'Нападающий второй линии',\n [GameRugbyPosition.back_line]: 'Нападающий задней линии',\n [GameRugbyPosition.halfback]: 'Полузащитник',\n [GameRugbyPosition.three_quarter]: 'Трехчетвертный',\n [GameRugbyPosition.fullback]: 'Замыкающий'\n};\n\nexport const GameWaterpoloPositionLocalization = {\n [GameWaterpoloPosition.defensemen]: 'Защитник',\n [GameWaterpoloPosition.goalkeeper]: 'Вратарь',\n [GameWaterpoloPosition.center_forward]: 'Центральный нападающий',\n [GameWaterpoloPosition.mobile_forward]: 'Подвижный нападающий',\n};\n\nexport const GameWaterpoloPositionShortRuLocalization = {\n [GameWaterpoloPosition.defensemen]: 'З',\n [GameWaterpoloPosition.goalkeeper]: 'Вр',\n [GameWaterpoloPosition.center_forward]: 'ЦН',\n [GameWaterpoloPosition.mobile_forward]: 'ПН',\n};\n\nexport const WaterpoloWorkHandLocalization = {\n [WaterpoloWorkHand.left]: 'Левая',\n [WaterpoloWorkHand.right]: 'Правая'\n};\n\n","import { VolleyballGameLogType } from '../models/volleyball-game-log';\n\nexport const VolleyballGameLogTypeLocalization = {\n [VolleyballGameLogType.enter_game]: 'Выход на площадку',\n [VolleyballGameLogType.exit_game]: 'Уход с площадки',\n [VolleyballGameLogType.remove_game]: 'Удаление с площадки',\n [VolleyballGameLogType.serve_ace]: 'Эйс',\n [VolleyballGameLogType.serve_hit]: 'Подача',\n [VolleyballGameLogType.serve_fault]: 'Ошибка на подаче',\n [VolleyballGameLogType.good_serve]: 'Усложнённая подача',\n [VolleyballGameLogType.attack_spike]: 'Результативная атака',\n [VolleyballGameLogType.attack_shot]: 'Атака',\n [VolleyballGameLogType.attack_fault]: 'Ошибка атаки',\n [VolleyballGameLogType.stuff_block]: 'Результативный блок',\n [VolleyballGameLogType.block_rebound]: 'Блок',\n [VolleyballGameLogType.block_fault]: 'Ошибка на блоке',\n [VolleyballGameLogType.excellent_receive]: 'Отличный прием',\n [VolleyballGameLogType.receive]: 'Прием',\n [VolleyballGameLogType.receive_fault]: 'Ошибка на приеме',\n [VolleyballGameLogType.serve_receive]: 'Прием подачи',\n [VolleyballGameLogType.excellent_serve_receive]: 'Отличный прием подачи',\n [VolleyballGameLogType.serve_receive_fault]: 'Ошибка приема подачи',\n [VolleyballGameLogType.point]: 'Очко',\n [VolleyballGameLogType.fault]: 'Ошибка',\n [VolleyballGameLogType.timeout]: 'Таймаут',\n [VolleyballGameLogType.yellow_card]: 'Предупреждение',\n [VolleyballGameLogType.tie_ball]: 'Спорный мяч',\n};\n","import { OrganizationStatuses } from '../models/organization';\n\nexport const OrganizationStatusesLocalization = {\n [OrganizationStatuses.active]: 'Активен',\n [OrganizationStatuses.blocked]: 'Заблокирован',\n [OrganizationStatuses.not_confirmed]: 'Не подтвержден'\n};\n","import { BaseModel, enumField, Model } from './util';\n\nexport enum DeviceTheme {\n light = 1,\n dark,\n}\n\n@Model({\n relation: {\n theme: enumField(DeviceTheme),\n }\n})\nexport class DeviceInfo extends BaseModel {\n deviceId: string;\n osName: string;\n osVersion: string;\n browserName: string;\n browserVersion: string;\n device: string;\n theme: DeviceTheme;\n language: string;\n}\n","import { BaseModel, Model, enumField, dateTimeField, nestedModel } from './util';\nimport { Organization } from './organization';\n\n\nexport enum OrganizationBillStatuses {\n pending = 1,\n paid,\n canceled,\n}\n\nexport const OrganizationBillStatusLocalization = {\n [OrganizationBillStatuses.pending]: 'Новый',\n [OrganizationBillStatuses.paid]: 'Оплачен',\n [OrganizationBillStatuses.canceled]: 'Отменен',\n};\n\n@Model({\n relation: {\n organization: nestedModel(Organization),\n status: enumField(OrganizationBillStatuses),\n paymentDate: dateTimeField,\n payTillDate: dateTimeField,\n dateFrom: dateTimeField,\n dateTo: dateTimeField,\n createdAt: dateTimeField,\n }\n})\nexport class OrganizationBill extends BaseModel {\n id: number;\n organization: Organization;\n status: OrganizationBillStatuses;\n sum: number;\n paymentDate: Date;\n payTillDate: Date;\n dateFrom: Date;\n dateTo: Date;\n createdAt: Date;\n}\n","import { BaseModel, Model, enumField, dateTimeField, nestedModel } from './util';\nimport { Game } from './game';\nimport { OrganizationBill } from './organization-bill';\n\n\nexport enum GameBillStatuses {\n pending = 1,\n paid,\n canceled,\n}\n\nexport const GameBillStatusLocalization = {\n [GameBillStatuses.pending]: 'Новый',\n [GameBillStatuses.paid]: 'Оплачен',\n [GameBillStatuses.canceled]: 'Отменен',\n};\n\n@Model({\n relation: {\n game: nestedModel(Game),\n organizationBill: nestedModel(OrganizationBill),\n status: enumField(GameBillStatuses),\n paidDate: dateTimeField,\n createdAt: dateTimeField,\n }\n})\nexport class GameBill extends BaseModel {\n id: number;\n game: Game;\n organizationBill: OrganizationBill;\n status: GameBillStatuses;\n price: number;\n paidDate: Date;\n createdAt: Date;\n}\n","import { Model, BaseModel, listField, nestedModel } from './util';\nimport { File } from './file';\n\n@Model({\n relation: {\n files: listField(nestedModel(File))\n }\n})\nexport class LeaguePlaylist extends BaseModel {\n id: number;\n name: string;\n files: File[];\n keyCode: string;\n}\n","import { BaseModel, Model, nestedModel } from './util';\nimport { Organization } from './organization';\nimport { Sport } from './sport';\n\n\n@Model({\n relation: {\n organization: nestedModel(Organization),\n sport: nestedModel(Sport),\n }\n})\nexport class OrganizationTariff extends BaseModel {\n id: number;\n organization: Organization;\n sport: Sport;\n price: number;\n}\n","import { BaseModel, Model } from './util';\n\n\n@Model()\nexport class OrganizationStatistic extends BaseModel {\n id: number;\n playersCount: number;\n teamsCount: number;\n gamesCount: number;\n paidSum: number;\n debtSum: number;\n}\n","import { BaseModel, dateField, enumField, Model } from './util';\nimport { UserGender } from './user';\n\n@Model({\n relation: {\n birthDate: dateField,\n gender: enumField(UserGender),\n }\n})\nexport class TournamentJoin1x1Data extends BaseModel {\n email: string;\n phone: string;\n gender: string;\n birthDate: Date;\n size: string;\n nickname: string;\n city: string;\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { of, ReplaySubject, Subject } from 'rxjs';\n\nimport { Centrifuge } from 'centrifuge';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ConfigService } from './config.service';\nimport { Subscription } from 'centrifuge/build/subscription';\nimport { filter, take, tap } from 'rxjs/operators';\nimport { isPlatformBrowser } from '@angular/common';\n\ninterface CentrifugoConfig {\n token: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class CentrifugoService {\n private channels$: { [key: string]: Subject<any> } = {};\n private subscriptions: { [key: string]: Subscription } = {};\n private centrifuge: Centrifuge;\n private initializeEngineSubject: ReplaySubject<boolean>;\n private connectedSubject = new BehaviorSubject<boolean>(false);\n\n get connected$(): Observable<boolean> {\n return this.connectedSubject;\n }\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) { }\n\n listen<T>(channel): Observable<T> {\n if (!isPlatformBrowser(this.platformId)) {\n return new Observable(observer => {\n observer.error('Centrifugo is not available in ssr mode');\n });\n }\n\n if (channel in this.channels$) {\n return this.channels$[channel];\n }\n\n this.channels$[channel] = new Subject<T>();\n this.connect().subscribe(connected => {\n this.subscriptions[channel] = this.addEngineSubscription(channel);\n });\n\n return this.channels$[channel];\n }\n\n unsubscribe(channel): void {\n if (this.subscriptions[channel]) {\n this.subscriptions[channel].unsubscribe();\n this.centrifuge.removeSubscription(this.subscriptions[channel]);\n delete this.subscriptions[channel];\n }\n if (this.channels$[channel]) {\n this.channels$[channel].complete();\n delete this.channels$[channel];\n }\n }\n\n connect(): Observable<boolean> {\n if (!isPlatformBrowser(this.platformId)) {\n return new Observable(observer => {\n observer.error('Centrifugo is not available in ssr mode');\n });\n }\n\n if (!this.initializeEngineSubject) {\n this.initializeEngineSubject = new ReplaySubject(1);\n\n this.httpClient.get<CentrifugoConfig>(`${this.configService.get('apiUrl')}/api/v1/centrifugo_v2/`)\n .subscribe(config => {\n this.initializeEngine({\n url: this.configService.get('centrifugoUrl'),\n token: config.token,\n transports: ['websocket']\n });\n this.centrifuge.on('connected', () => {\n this.initializeEngineSubject.next(true);\n this.connectedSubject.next(true);\n });\n this.centrifuge.on('disconnected', () => {\n this.connectedSubject.next(false);\n this.initializeEngineSubject.next(false);\n });\n this.centrifuge.connect();\n });\n }\n\n return this.initializeEngineSubject.pipe(filter(item => Boolean(item)), take(1));\n }\n\n async publish(channel: string, message: any): Promise<any> {\n if (!isPlatformBrowser(this.platformId)) {\n throw new Error('Centrifugo is not available in ssr mode');\n }\n\n const connected = await this.connect().pipe(filter(item => Boolean(item)), take(1)).toPromise();\n if (!connected) {\n throw new Error('Centrifuge connection error');\n }\n return await this.centrifuge.publish(channel, message);\n }\n\n disconnect(): void {\n this.centrifuge.disconnect();\n this.initializeEngineSubject = undefined;\n for (const channel of Object.keys(this.channels$)) {\n this.unsubscribe(channel);\n }\n this.channels$ = {};\n this.subscriptions = {};\n }\n\n private initializeEngine(config: {\n url: string,\n token: string,\n transports: string[]\n }): void {\n this.centrifuge = new Centrifuge(config.url, {\n token: config.token,\n debug: true,\n });\n // @ts-ignore\n this.centrifuge._debugEnabled = false;\n }\n\n private addEngineSubscription(channel: string): Subscription {\n let sub = this.centrifuge.getSubscription(channel);\n if (!sub) {\n sub = this.centrifuge.newSubscription(channel);\n sub.on('publication', ctx => {\n this.resolveMessage(channel, ctx.data);\n });\n }\n sub.subscribe();\n return sub;\n }\n\n private resolveMessage(channel: string, message: any): void {\n if (!this.channels$[channel]) {\n return;\n }\n\n this.channels$[channel].next(message);\n }\n}\n","import { Observable, Subject } from 'rxjs';\nimport { OnDestroy } from '@angular/core';\nimport { Storage } from '../storage/new';\nimport { takeUntil } from 'rxjs/operators';\n\nexport type ComponentType = any & OnDestroy;\n\nexport abstract class BaseController<T> {\n protected abstract store: Storage<T>;\n protected destroyed$ = new Subject();\n\n storeData$<K extends keyof T>(keys: K[]): Observable<{[P in K]: T[P]}> {\n return this.store.byKeys$(keys).pipe(takeUntil(this.destroyed$));\n }\n\n dispose(clearData = true): void {\n this.destroyed$.next(true);\n this.destroyed$.complete();\n this.destroyed$ = new Subject();\n if (clearData) {\n this.store.reset();\n }\n }\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { DeviceInfo, DeviceTheme } from '../models/device-info';\nimport { UAParser } from \"ua-parser-js\"\nimport * as FingerPrint from '@fingerprintjs/fingerprintjs';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable({providedIn: 'root'})\nexport class DeviceInfoService {\n constructor(\n @Inject(PLATFORM_ID) protected platform: any\n ) {\n }\n\n async get(): Promise<DeviceInfo> {\n const fp = await FingerPrint.load();\n const fingerprint = await fp.get();\n const parser = new UAParser(window.navigator.userAgent);\n return new DeviceInfo({\n deviceId: fingerprint.visitorId,\n osName: parser.getOS().name,\n osVersion: parser.getOS().version,\n browserName: parser.getBrowser().name,\n browserVersion: parser.getBrowser().version,\n device: null,\n ...(\n isPlatformBrowser(this.platform)\n ? {\n language: window.navigator.language,\n theme: window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n ? DeviceTheme.dark\n : window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches\n ? DeviceTheme.light\n : null,\n }\n : {}\n )\n });\n }\n}\n","import { ModelRelation } from '../models/util';\n\nexport class OldStorageEngineField<T> {\n defaultValue: any;\n\n constructor(\n defaultValue?: any,\n protected model?: ModelRelation<T>\n ) {\n this.defaultValue = defaultValue;\n }\n\n create(value: any): T {\n if (value === null || value === undefined) {\n value = this.defaultValue;\n }\n if (this.model) {\n return this.model.create(value);\n }\n return value;\n }\n\n json(value: T): any {\n if (this.model) {\n this.model.json(value);\n }\n return value;\n }\n}\n\nexport abstract class OldStorageEngine<T> {\n constructor(protected name: string, protected fields: {[Property in keyof T]: OldStorageEngineField<T[Property]>}) {\n }\n\n addField(key: keyof T, field: OldStorageEngineField<T[typeof key]>): void {\n this.fields[key] = field;\n }\n\n save(key: keyof T, value: T[typeof key]): void {\n if (!this.fields[key]) {\n return;\n }\n this.setItem(`${this.name}_${key.toString()}`, this.fields[key].json(value));\n }\n\n get(key: keyof T): T[typeof key] {\n if (!this.fields[key]) {\n return;\n }\n const value = this.getItem(`${this.name}_${key.toString()}`);\n return this.fields[key].create(value);\n }\n\n clear(): void {\n for (const field of Object.keys(this.fields)) {\n this.removeItem(field);\n }\n }\n\n protected abstract getItem(key: string);\n protected abstract setItem(key: string, value: any);\n protected abstract removeItem(key: string);\n}\n","import { OldStorageEngine } from './old-storage-engine';\n\nexport class OldLocalStorageEngine<T> extends OldStorageEngine<T> {\n protected setItem(key: string, value: any) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n protected getItem(key: string): any {\n try {\n return JSON.parse(localStorage.getItem(key));\n } catch (e) {\n return;\n }\n }\n\n protected removeItem(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { StorageEngine } from './storage-engine';\n\nexport class Storage<T> {\n private readonly initial: T;\n private readonly subject: BehaviorSubject<T>;\n protected readonly engine: StorageEngine<Partial<T>>;\n\n get data$(): Observable<T> {\n return this.subject.asObservable().pipe(\n distinctUntilChanged((oldValue, newValue) =>\n Object.keys(newValue).filter(key => newValue[key] !== oldValue[key]).length === 0 &&\n Object.keys(newValue).length === Object.keys(oldValue).length\n )\n );\n }\n\n byKey$<K extends keyof T>(key: K): Observable<T[K]> {\n return this.subject.asObservable().pipe(\n map(data => data[key]),\n distinctUntilChanged(),\n );\n }\n\n byKeys$<K extends keyof T>(keys: K[]): Observable<{[P in K]: T[P]}> {\n return this.subject.asObservable().pipe(\n map(data => keys.reduce((acc, key) => ({\n ...acc,\n [key]: data[key]\n }), {} as {[P in K]: T[P]})),\n distinctUntilChanged((oldValue, newValue) =>\n Object.keys(newValue).filter(key => newValue[key] !== oldValue[key]).length === 0 &&\n Object.keys(newValue).length === Object.keys(oldValue).length\n )\n );\n }\n\n get data(): T {\n return this.subject.getValue();\n }\n\n constructor(initial: Required<T>, engine?: StorageEngine<Partial<T>>) {\n this.initial = initial;\n this.subject = new BehaviorSubject<T>({\n ...initial,\n ...(engine ? engine.getAll() : {}),\n });\n this.engine = engine;\n }\n\n update(data: Partial<T>): void {\n this.subject.next({\n ...this.subject.value,\n ...data,\n });\n if (this.engine) {\n this.engine.save(data);\n }\n }\n\n reset(): void {\n this.subject.next({...this.initial});\n }\n\n mergeWith<M>(data$: Observable<M>, mapper: (M) => Partial<T> = data => data) {\n data$.subscribe(data => this.update(mapper(data)));\n return this;\n }\n}\n","import { BaseModel, ModelRelation } from '../models/util';\n\nexport type StorageEngineType = number | string | boolean | number[] | string[] | BaseModel | BaseModel[] | { [key: string]: any } | { [key: string]: any }[];\nexport type StorageEngineData = { [key: string]: any };\n\nexport class StorageEngineField<T extends StorageEngineType> {\n constructor(protected model?: ModelRelation<T>) {}\n\n create(value: any): T {\n if (this.model) {\n return this.model.create(value);\n }\n return value\n }\n\n json(value: T): any {\n if (this.model) {\n return this.model.json(value);\n }\n return value;\n }\n}\n\nexport abstract class StorageEngine<T extends StorageEngineData> {\n protected readonly name: string;\n protected readonly fields: {[Property in keyof T]: StorageEngineField<T[Property]>};\n\n constructor(name: string, fields: {[Property in keyof T]: StorageEngineField<T[Property]>}) {\n this.name = name;\n this.fields = fields;\n }\n\n save(value: Partial<T>): void {\n for (const key of Object.keys(value)) {\n if (!this.fields[key]) {\n continue;\n }\n this.setItem(`${this.name}_${key}`, this.fields[key].json(value[key]));\n }\n }\n\n getValue<K extends keyof T>(key: K): T[K] {\n const value = this.getItem(`${this.name}_${key.toString()}`);\n return this.fields[key].create(value);\n }\n\n getAll(): T {\n return Object.keys(this.fields).reduce((acc, key) => ({\n ...acc,\n [key]: this.getValue(key)\n }), {}) as T;\n }\n\n clear(): void {\n for (const key of Object.keys(this.fields)) {\n this.removeItem(`${this.name}_${key}`);\n }\n }\n\n protected abstract getItem(key: string);\n protected abstract setItem(key: string, value: any);\n protected abstract removeItem(key: string);\n}\n","import { StorageEngine, StorageEngineData } from './storage-engine';\n\nexport class LocalStorageEngine<T extends StorageEngineData> extends StorageEngine<T> {\n protected setItem(key: string, value: any) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n protected getItem(key: string): any {\n try {\n return JSON.parse(localStorage.getItem(key));\n } catch (e) {\n return;\n }\n }\n\n protected removeItem(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import {\n ɵComponentType as ComponentType,\n ɵDirectiveType as DirectiveType,\n ɵComponentDef as ComponentDef,\n ɵDirectiveDef as DirectiveDef\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nexport interface OnDestroyLike {\n ngOnDestroy(): void;\n [key: string]: any;\n}\n\nexport function componentDestroyed(component: OnDestroyLike): Observable<void> {\n if (!(component as any).__decoratorApplied) {\n throw new Error('Use @UntilDestroy decorator in class');\n }\n\n if (!(component as any).__componentDestroyed$) {\n (component as any).__componentDestroyed$ = new Subject();\n }\n return (component as any).__componentDestroyed$;\n}\n\nexport function UntilDestroy(cmpType: any) {\n const original = cmpType.prototype.ngOnDestroy;\n cmpType.prototype.__decoratorApplied = true;\n cmpType.prototype.ngOnDestroy = function(this: any) {\n console.log('UntilDestroy');\n original.call(this);\n if (this.__componentDestroyed$) {\n this.__componentDestroyed$.next();\n this.__componentDestroyed$.complete();\n delete this.__componentDestroyed$;\n }\n };\n}\n\nfunction getDef<T>(\n type: DirectiveType<T> | ComponentType<T>\n): DirectiveDef<T> | ComponentDef<T> | unknown {\n return (type as ComponentType<T>).ɵcmp || (type as DirectiveType<T>).ɵdir;\n}\n","export function getCookie(name: string): string {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop().split(';').shift();\n }\n return null;\n}\n","export function parseDate(input: string, format: string = 'yyyy-mm-dd'): Date {\n const parts = input.match(/(\\d+)/g);\n let i = 0;\n const result: {\n yyyy?: number,\n mm?: number,\n dd?: number,\n } = {};\n // extract date-part indexes from the format\n format.replace(/(yyyy|dd|mm)/g, (part: string) => {\n result[part] = +parts[i++];\n return '';\n });\n\n return new Date(result.yyyy, result.mm - 1, result.dd);\n}\n","export function isTouchDevice() {\n const prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n const mq = (q) => {\n return window.matchMedia(q).matches;\n };\n\n if (('ontouchstart' in window) || (window as any).DocumentTouch && document instanceof (window as any).DocumentTouch) {\n return true;\n }\n\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\n // https://git.io/vznFH\n const query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n}\n","export function getEnumOptions(enumClass): number[] {\n return Object.keys(enumClass)\n .map(v => enumClass[v])\n .filter(v => isNaN(+v) === false)\n .map(v => +v);\n}\n\n","import { captureException } from '@sentry/angular';\n\nexport function handleError(error, force = false, production = true) {\n if (!(error && (error.status === 0 || error.status === 404)) || (force && error.status !== 0)) {\n captureException(error);\n }\n\n console.error(error);\n}\n","export interface LinkFavicon {\n rel: string;\n sizes?: string;\n href: string;\n type?: string;\n color?: string;\n}\n\nexport function getIconsData(folder: string): LinkFavicon[] {\n return [\n {rel: 'apple-touch-icon', sizes: '180x180', href: `/assets/favicon/${folder}apple-touch-icon.png`},\n {rel: 'icon', type: 'image/png', sizes: '32x32', href: `/assets/favicon/${folder}favicon-32x32.png`},\n {rel: 'icon', type: 'image/png', sizes: '16x16', href: `/assets/favicon/${folder}favicon-16x16.png`},\n {rel: 'shortcut icon', href: `/assets/favicon/${folder}favicon.ico`},\n {rel: 'manifest', href: `/assets/favicon/${folder}site.webmanifest`},\n {rel: 'mask-icon', href: `/assets/favicon/${folder}safari-pinned-tab.svg`, color: '#ff0000'}\n ];\n}\n\nexport function changeFavicons(document: Document, leagueAlias: string): void {\n let folder = '';\n if (leagueAlias === 'ablmoscow') {\n folder = 'abl/';\n }\n const data = getIconsData(folder);\n for (const item of data) {\n const link = document.createElement('link');\n for (const key of Object.keys(item)) {\n link.setAttribute(key, item[key]);\n }\n document.head.appendChild(link);\n }\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function markFormGroupTouched(formGroup: FormGroup) {\n (Object as any).values(formGroup.controls).forEach(control => {\n control.markAsTouched();\n control.markAsDirty();\n\n if (control instanceof FormGroup) {\n markFormGroupTouched(control);\n } else if (control.controls) {\n control.controls.forEach(c => {\n if (c instanceof FormGroup) {\n markFormGroupTouched(c);\n } else {\n c.markAsTouched();\n c.markAsDirty();\n }\n });\n }\n });\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\nimport { debounceTime, delay, map, switchMap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nexport interface CheckEmailServiceInterface {\n checkEmail(value: string, selfCheck: boolean): Observable<boolean>;\n}\n\nexport const minLengthArrayValidator = (minLength: number) => {\n return (c: AbstractControl) => {\n return c.value.length < minLength\n ? {minLengthArray: {valid: false}}\n : null;\n };\n};\n\nexport const validatePhone = (control: AbstractControl) => {\n if (!control.value) {\n return null;\n }\n const value = `${control.value}`.replace(/\\D/gi, '');\n return value.length === 11 ? null : {invalidPhone: {valid: false}};\n};\n\nexport const validateDate = (control: AbstractControl) => {\n const re = /\\d{2}\\.\\d{2}\\.\\d{4}/gi;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidDate: {valid: false}};\n};\n\nexport const validateEmail = (authService: CheckEmailServiceInterface, selfCheck = true, ignore = []) => {\n const subject = of(null).pipe(\n delay(500)\n );\n return (control: AbstractControl) => {\n if (ignore.indexOf(control.value) > -1) {\n return of(null);\n }\n return subject.pipe(\n switchMap(() => authService.checkEmail(control.value, selfCheck).pipe(\n map(valid => valid ? null : {emailTaken: true})\n ))\n );\n };\n};\n\nexport const validateUrl = (control: AbstractControl) => {\n const re = /^(?:http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidUrl: true};\n};\n\nexport function fileSizeValidator(maxFileSize: number): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n };\n}\n","import { Inject, Injectable, Injector, PLATFORM_ID } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { getCookie } from './utils/cookie';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ConfigService } from './services/config.service';\n\n@Injectable()\nexport class HttpCookieInterceptor implements HttpInterceptor {\n private isBrowser = isPlatformBrowser(this.platformId);\n\n constructor(\n private injector: Injector,\n private configService: ConfigService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) {\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (!this.isBrowser) {\n return next.handle(req);\n }\n const apiUrl = this.configService.get('apiUrl');\n if (apiUrl === req.url.substr(0, apiUrl.length)) {\n req = req.clone({withCredentials: true});\n }\n const csrf = getCookie('csrftoken');\n if (csrf) {\n req = req.clone({\n setHeaders: {'X-CSRFToken': csrf}\n });\n }\n return next.handle(req);\n }\n}\n","import { Game } from '../models/game';\nimport { GameInvite } from '../models/game-invite';\nimport { GameUser } from '../models/game-user';\nimport { CentrifugoService } from '../services/centrifugo.service';\nimport { filter, map } from 'rxjs/operators';\nimport { Observable, Subscription } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\nenum GameWebsocketEvents {\n GAME_UPDATED = 'GAME_UPDATED',\n GAME_CLOSED = 'GAME_CLOSED',\n GAME_ARCHIVED = 'GAME_ARCHIVED',\n GAME_DELETED = 'GAME_DELETED',\n GAME_SCORE_UPDATED = 'GAME_SCORE_UPDATED',\n GAME_INVITE_SENT = 'GAME_INVITE_SENT',\n GAME_INVITE_ACCEPTED = 'GAME_INVITE_ACCEPTED',\n GAME_INVITE_DECLINED = 'GAME_INVITE_DECLINED',\n GAME_USER_ADDED = 'GAME_USER_ADDED',\n GAME_USER_DELETED = 'GAME_USER_DELETED',\n GAME_STATISTIC_UPDATED = 'GAME_STATISTIC_UPDATED',\n}\n\ninterface WebsocketEvent {\n action: GameWebsocketEvents;\n data: {[key: string]: any};\n}\n\n@Injectable({providedIn: 'root'})\nexport class GameWebsocket {\n protected subscriptions: {[key: number]: Subscription} = {};\n\n constructor(\n protected centrifugoService: CentrifugoService,\n ) {\n }\n\n onGameUpdated$(gameId: number): Observable<Game> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_UPDATED),\n map(item => new Game(item.data)),\n );\n }\n\n onGameClosed$(gameId: number): Observable<Game> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_CLOSED),\n map(item => new Game(item.data)),\n );\n }\n\n onGameDeleted$(gameId: number): Observable<Game> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_DELETED),\n map(item => new Game(item.data)),\n );\n }\n\n onGameScoreUpdated$(gameId: number): Observable<Game> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_SCORE_UPDATED),\n map(item => new Game(item.data)),\n );\n }\n\n onGameInviteSent(gameId: number): Observable<GameInvite> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_INVITE_SENT),\n map(item => new GameInvite(item.data)),\n );\n }\n\n onGameInviteAccepted(gameId: number): Observable<GameInvite> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_INVITE_ACCEPTED),\n map(item => new GameInvite(item.data)),\n );\n }\n\n onGameInviteDeclined(gameId: number): Observable<GameInvite> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_INVITE_DECLINED),\n map(item => new GameInvite(item.data)),\n );\n }\n\n onGameUserAdded(gameId: number): Observable<GameUser> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_USER_ADDED),\n map(item => new GameUser(item.data)),\n );\n }\n\n onGameUserDeleted(gameId: number): Observable<GameUser> {\n return this.centrifugoService.listen<WebsocketEvent>(`game_${gameId}`).pipe(\n filter(item => item.action === GameWebsocketEvents.GAME_USER_DELETED),\n map(item => new GameUser(item.data)),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ConfigService","i1.CentrifugoService"],"mappings":";;;;;;;;;;;;;;MAAsB,SAAS,CAAA;IAC7B,WAAY,CAAA,IAAU,EAAE,MAAiB,EAAA;KACxC;AAED,IAAA,IAAI,CAAC,MAAc,EAAA;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;KACxC;AAED,IAAA,MAAM,CAAI,IAA2C,EAAA;AACnD,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAM,CAAC;KAC5D;AACF,CAAA;AAEe,SAAA,MAAM,CAAC,IAAS,EAAE,MAAc,EAAA;IAC9C,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtE,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,GAAG,YAAY,MAAM,EAAE;AACzB,YAAA,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,YAAA,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AACpC,YAAA,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3B,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAC5B,YAAA,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AAC7D,SAAA;aAAM,IAAI,KAAK,YAAY,SAAS,EAAE;YACrC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9C,SAAA;aAAM,IAAI,KAAK,YAAY,IAAI,EAAE;YAChC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AACzC,SAAA;AAAM,aAAA,IAAI,EAAE,KAAK,YAAY,MAAM,CAAC,EAAE;AACrC,YAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;AAC3B,SAAA;AACF,KAAA;AACD,IAAA,OAAO,QAAQ,CAAC;AAClB,CAAC;AAOK,SAAU,SAAS,CAAgC,QAA0B,EAAA;IACjF,OAAO;QACL,MAAM,EAAE,CAAC,IAAW,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,EAAE,CAAC,IAAW,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrE,CAAC;AACJ,CAAC;AAEe,SAAA,WAAW,CAAsB,KAA6B,EAAE,MAAiB,EAAA;IAC/F,OAAO;QACL,MAAM,EAAE,CAAC,IAAY,KAAQ,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,CAAM,GAAG,IAAI;AACvE,QAAA,IAAI,EAAE,CAAC,IAAO,KAAa,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI;KACrD,CAAC;AACJ,CAAC;AAEK,SAAU,SAAS,CAAC,SAAc,EAAA;IACtC,OAAO;AACL,QAAA,MAAM,EAAE,CAAC,KAAK,KAAI;AAChB,YAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AACjB,gBAAA,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AACzB,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;SACF;AACD,QAAA,IAAI,EAAE,CAAC,KAAK,KAAI;AACd,YAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AACjB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AACzB,aAAA;SACF;KACF,CAAC;AACJ,CAAC;AAEY,MAAA,aAAa,GAAwB;AAChD,IAAA,MAAM,EAAE,CAAC,IAAY,KAAW,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AAC5D,IAAA,IAAI,EAAE,CAAC,IAAU,KAAa,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI;EAC9D;AAEW,MAAA,SAAS,GAAwB;AAC5C,IAAA,MAAM,EAAE,CAAC,IAAY,KAAW,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AAC5D,IAAA,IAAI,EAAE,CAAC,IAAU,KAAa,IAAI;AAChC,UAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CACjB,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,OAAO,EAAE,CACf,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7B,UAAE,IAAI;EACR;AAEI,SAAU,WAAW,CAAC,GAAW,EAAA;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACzE,CAAC;AAEK,SAAU,YAAY,CAAC,GAAW,EAAA;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,CAAG,EAAA,CAAC,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACxE,CAAC;AAEe,SAAA,KAAK,CAAI,MAAA,GAErB,EAAE,EAAA;AACJ,IAAA,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IAExC,OAAO,CAAC,MAAwB,KAAI;AAClC,QAAA,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;YACvB,SAAS,CAAC,GAAQ,EAAE,QAAe,EAAA;AACjC,gBAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,oBAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBAC9C,SAAS;AACV,qBAAA;AACD,oBAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAClC,oBAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AACrC,oBAAA,IAAI,QAAQ,EAAE;AACb,wBAAA,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,qBAAA;AAAM,yBAAA;AACL,wBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC7F,wBAAA,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,EAAE;4BACjC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,yBAAA;AACF,qBAAA;AACF,iBAAA;AAED,gBAAA,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;oBACtC,KAAK,GAAA;wBACH,MAAM,IAAI,GAAG,EAAE,CAAC;wBAChB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;AAClD,4BAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;4BAChC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,MAAM,IAAI,CAAC,QAAQ,EAAE;gCAC5C,SAAS;AACV,6BAAA;AACD,4BAAA,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAClC,4BAAA,IAAI,QAAQ,EAAE;AACZ,gCAAA,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,6BAAA;AAAM,iCAAA;gCACL,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,6BAAA;AACF,yBAAA;AACD,wBAAA,OAAO,IAAI,CAAC;qBACb;AACD,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA,CAAC,CAAC;AAEH,gBAAA,OAAO,QAAQ,CAAC;aACjB;AACF,SAAA,CAAC,CAAC;AACL,KAAC,CAAC;AACJ;;IC/JY,WAGX;AAHD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACJ,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,SAAS,CAAA;IAWjC,IAAI,YAAY,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC;KACxC;IAED,IAAI,IAAI,CAAC,QAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;KACvB;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC;KACvC;EACF;AA1BY,IAAI,GAAA,UAAA,CAAA;AANhB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC;AAC7B,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,IAAI,CA0BhB;;ICrCW,WAuBX;AAvBD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,UAAA,CAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAsB,CAAA;AACtB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,UAAA,CAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAsB,CAAA;AACtB,IAAA,UAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAoB,CAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;AACb,IAAA,UAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAkB,CAAA;AAClB,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;AACb,IAAA,UAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU,CAAA;AACV,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;AACX,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAY,CAAA;AACZ,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAc,CAAA;AACd,IAAA,UAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAsB,CAAA;AACtB,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAiB,CAAA;AACnB,CAAC,EAvBW,UAAU,KAAV,UAAU,GAuBrB,EAAA,CAAA,CAAA,CAAA;AAGM,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,SAAS,CAAA;IAMlC,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,UAAU,CAAC;KACrF;IAED,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,kBAAkB,CAAC;KAClD;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,CAAC;KAC1C;IAED,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,cAAc,CAAC;KAC9C;IAED,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,YAAY,CAAC;KAC5C;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,UAAU,CAAC;KACrF;IAED,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,kBAAkB,CAAC;KAClD;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,gBAAgB,CAAC;KAChD;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,MAAM,CAAC;KAC7E;IAED,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,CAAC;KAC1C;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,WAAW,CAAC;KAC3C;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC;KACjF;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,gBAAgB,CAAC;KAChD;IAED,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,aAAa,CAAC;KAC7C;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC;KACjF;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,gBAAgB,CAAC;KAChD;IAED,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,KAAK,CAAC;KAC3E;IAED,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC;KACvC;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,MAAM,CAAC;KACtC;IAED,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,SAAS,CAAC;KACnF;IAED,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,iBAAiB,CAAC;KACjD;IAED,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,cAAc,CAAC;KAC9C;EACF;AA7FY,KAAK,GAAA,UAAA,CAAA;AADjB,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,KAAK,CA6FjB;;ACtHM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,SAAS,CAAA;EAKzC;AALY,WAAW,GAAA,UAAA,CAAA;AADvB,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,WAAW,CAKvB;;ACLM,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,SAAS,CAAA;EAGlC;AAHY,IAAI,GAAA,UAAA,CAAA;AADhB,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,IAAI,CAGhB;;ICJW,uBAMX;AAND,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,sBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;AACf,IAAA,sBAAA,CAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,sBAAA,CAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EANW,sBAAsB,KAAtB,sBAAsB,GAMjC,EAAA,CAAA,CAAA,CAAA;IAEW,SAGX;AAHD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,SAAS,CAAA;EAK/C;AALY,iBAAiB,GAAA,UAAA,CAAA;AAN7B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,SAAS,CAAC,sBAAsB,CAAC;AAC3C,YAAA,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;AAC9B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,iBAAiB,CAK7B;;ICxBW,uBAMX;AAND,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,sBAAA,CAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,sBAAA,CAAA,sBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,sBAAA,CAAA,sBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EANW,sBAAsB,KAAtB,sBAAsB,GAMjC,EAAA,CAAA,CAAA,CAAA;IAEW,mBAGX;AAHD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,SAAS,CAAA;EAK/C;AALY,iBAAiB,GAAA,UAAA,CAAA;AAN7B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,SAAS,CAAC,sBAAsB,CAAC;AAC3C,YAAA,QAAQ,EAAE,SAAS,CAAC,kBAAkB,CAAC;AACxC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,iBAAiB,CAK7B;;ICxBW,mBAIX;AAJD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,kBAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,kBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACZ,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAI7B,EAAA,CAAA,CAAA,CAAA;IAEW,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS,CAAA;EAK3C;AALY,aAAa,GAAA,UAAA,CAAA;AANzB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,SAAS,CAAC,kBAAkB,CAAC;AACvC,YAAA,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAC;AACpC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,aAAa,CAKzB;;ICtBW,qBAKX;AALD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,oBAAA,CAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,oBAAA,CAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,oBAAA,CAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACZ,CAAC,EALW,oBAAoB,KAApB,oBAAoB,GAK/B,EAAA,CAAA,CAAA,CAAA;IAEW,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAA;EAK7C;AALY,eAAe,GAAA,UAAA,CAAA;AAN3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,SAAS,CAAC,oBAAoB,CAAC;AACzC,YAAA,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC;AACtC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAK3B;;ICvBW,qBAMX;AAND,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,oBAAA,CAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,oBAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,oBAAA,CAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,oBAAA,CAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EANW,oBAAoB,KAApB,oBAAoB,GAM/B,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAA;EAK7C;AALY,eAAe,GAAA,UAAA,CAAA;AAN3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,SAAS,CAAC,oBAAoB,CAAC;AACzC,YAAA,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;AAC9B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAK3B;;ICpBW,kBAOX;AAPD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,iBAAA,CAAA,iBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,GAO5B,EAAA,CAAA,CAAA,CAAA;AAOM,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAAS,CAAA;EAI1C;AAJY,YAAY,GAAA,UAAA,CAAA;AALxB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,SAAS,CAAC,iBAAiB,CAAC;AACvC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,YAAY,CAIxB;;IClBW,sBAKX;AALD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;AAChB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,GAKhC,EAAA,CAAA,CAAA,CAAA;IAEW,kBAGX;AAHD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,iBAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,SAAS,CAAA;EAK9C;AALY,gBAAgB,GAAA,UAAA,CAAA;AAN5B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,SAAS,CAAC,qBAAqB,CAAC;AAC1C,YAAA,QAAQ,EAAE,SAAS,CAAC,iBAAiB,CAAC;AACvC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,gBAAgB,CAK5B;;ICbW,WAGX;AAHD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;AAkBM,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,SAAS,CAAA;AAwBjC,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjE;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjE;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACzF;AAED,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;AAC/D,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;KAChD;EACF;AA3CY,IAAI,GAAA,UAAA,CAAA;AAhBhB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,YAAA,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;AACjC,YAAA,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC;AACjD,YAAA,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC;AACjD,YAAA,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC;AACzC,YAAA,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC;AAC7C,YAAA,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC;AAC7C,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC;AAC/C,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC;AAC9B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,IAAI,CA2ChB;;AC7DM,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,SAAS,CAAA;IAcjC,iBAAiB,GAAA;AACf,QAAA,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;AAC7B,YAAA,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;AAC7B,YAAA,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;AACzB,YAAA,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AAC3B,YAAA,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACvC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AAC3B,YAAA,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACvC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;AACxB,YAAA,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;AAC5B,YAAA,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5B;EACF;AAvCY,IAAI,GAAA,UAAA,CAAA;AAThB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,mBAAmB,EAAE,SAAS;AAC/B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,IAAI,CAuChB;;IClDW,qBAIX;AAJD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,oBAAA,CAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,oBAAA,CAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACf,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,GAI/B,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAAS,CAAA;EAU1C;AAVY,YAAY,GAAA,UAAA,CAAA;AANxB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,YAAA,MAAM,EAAE,SAAS,CAAC,oBAAoB,CAAC;AACxC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,YAAY,CAUxB;;ACZM,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,SAAS,CAAA;AAoBnC,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACpE;AAED,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC1E;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC3E;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACzE;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,eAAe;YACtC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,mBAAmB,CAC3C,CAAC;KACH;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACxE;IAED,aAAa,GAAA;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,QAAA,OAAO,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC;KACvD;EACF;AAnDY,MAAM,GAAA,UAAA,CAAA;AATlB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,YAAA,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC;AAC9B,YAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;AAC1B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,MAAM,CAmDlB;;IC9DW,yBAIX;AAJD,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,wBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,wBAAA,CAAA,wBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,wBAAA,CAAA,wBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,GAInC,EAAA,CAAA,CAAA,CAAA;AAYM,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,SAAS,CAAA;EAU9C;AAVY,gBAAgB,GAAA,UAAA,CAAA;AAV5B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,YAAA,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC;AAC/B,YAAA,MAAM,EAAE,SAAS,CAAC,wBAAwB,CAAC;AAC3C,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,UAAU,EAAE,SAAS;AACtB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,gBAAgB,CAU5B;;ACzBM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAA;EAQ7C;AARY,eAAe,GAAA,UAAA,CAAA;AAD3B,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,eAAe,CAQ3B;;ACJM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAA;EAIhD;AAJY,kBAAkB,GAAA,UAAA,CAAA;AAL9B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,kBAAkB,CAI9B;;ACTK,MAAO,oBAAqB,SAAQ,SAAS,CAAA;AAIlD;;ICLW,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,gBAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;AAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;AAA9C,IAAA,WAAA,GAAA;;QACU,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QACtB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;KAuBxB;IAfC,IAAI,QAAQ,CAAC,KAAuC,EAAA;AAClD,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM;AACnD,YAAA,GAAG,GAAG;AACN,YAAA,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;SACvB,CAAC,EAAE,EAAE,CAAC,CAAC;KACT;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAED,IAAA,OAAO,CAAC,IAAY,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KACpC;AACF;;ACzBM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,eAAe,CAAA;EACnD;AADY,eAAe,GAAA,UAAA,CAAA;AAL3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,SAAS,CAAC,gBAAgB,CAAC;AAClC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAC3B;;ACEM,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,oBAAoB,CAAA;EAGjE;AAHY,wBAAwB,GAAA,UAAA,CAAA;AANpC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC;AAC9C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,wBAAwB,CAGpC;;ACNM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAA;EAGhD;AAHY,kBAAkB,GAAA,UAAA,CAAA;AAD9B,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,kBAAkB,CAG9B,CAAA;AAcM,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,SAAS,CAAA;AAqC3C,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;KACrE;EACF;AA3CY,cAAc,GAAA,UAAA,CAAA;AAZ1B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC;AAC5B,YAAA,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC;AAC9B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC;AACnC,YAAA,QAAQ,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACzC,YAAA,cAAc,EAAE,WAAW,CAAC,kBAAkB,CAAC;AAC/C,YAAA,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;AAC9D,SAAA;KACF,CAAC;AACW,CAAA,EAAA,cAAc,CA2C1B;;IC3DW,gBAIX;AAJD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,eAAe,KAAf,eAAe,GAI1B,EAAA,CAAA,CAAA,CAAA;IAEW,mBAIX;AAJD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,kBAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,kBAAA,CAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAI7B,EAAA,CAAA,CAAA,CAAA;IAEW,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAO,CAAA;AACP,IAAA,gBAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,gBAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;IAEW,yBAIX;AAJD,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,wBAAA,CAAA,wBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,wBAAA,CAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,GAInC,EAAA,CAAA,CAAA,CAAA;IAEW,yBAIX;AAJD,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,wBAAA,CAAA,wBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,wBAAA,CAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,GAInC,EAAA,CAAA,CAAA,CAAA;IAEW,oBAGX;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,mBAAA,CAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA,CAAA;IAEW,cAGX;AAHD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA,CAAA;IAEW,cAUX;AAVD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB,CAAA;AAClB,IAAA,aAAA,CAAA,aAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,aAAA,CAAA,aAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,aAAA,CAAA,aAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,aAAA,CAAA,aAAA,CAAA,4BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,4BAA0B,CAAA;AAC1B,IAAA,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAkB,CAAA;AACpB,CAAC,EAVW,aAAa,KAAb,aAAa,GAUxB,EAAA,CAAA,CAAA,CAAA;IAGW,WAGX;AAHD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;AAcM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAA;AAwC/C,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;AAC/D,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,IAAI,EAAE;YACzC,IAAI,QAAQ,GAAG,EAAE,EAAE;AACjB,gBAAA,OAAO,UAAU,CAAC;AACnB,aAAA;YACD,IAAI,QAAQ,GAAG,EAAE,EAAE;AACjB,gBAAA,OAAO,OAAO,CAAC;AAChB,aAAA;AACD,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE;YAC3C,IAAI,QAAQ,GAAG,EAAE,EAAE;AACjB,gBAAA,OAAO,SAAS,CAAC;AAClB,aAAA;YACD,IAAI,QAAQ,GAAG,EAAE,EAAE;AACjB,gBAAA,OAAO,SAAS,CAAC;AAClB,aAAA;AACD,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;EACF;AA9DY,kBAAkB,GAAA,UAAA,CAAA;AAZ9B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC;AAChC,YAAA,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC;AACnC,YAAA,uBAAuB,EAAE,SAAS,CAAC,wBAAwB,CAAC;AAC5D,YAAA,uBAAuB,EAAE,SAAS,CAAC,wBAAwB,CAAC;AAC5D,YAAA,kBAAkB,EAAE,SAAS,CAAC,mBAAmB,CAAC;AAClD,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACtC,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACtC,YAAA,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC;AACjC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,kBAAkB,CA8D9B,CAAA;AAqBM,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS,CAAA;IA6BvC,iBAAiB,GAAA;AACf,QAAA,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;AAC7B,YAAA,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;AAC7B,YAAA,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;AACzB,YAAA,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AAC3B,YAAA,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACvC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;AAC3B,YAAA,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACvC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;AACxB,YAAA,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;AAC5B,YAAA,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5B;EACF;AAtDY,UAAU,GAAA,UAAA,CAAA;AAnBtB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,YAAA,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC;AAC9B,YAAA,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC;AAC/B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;AACzB,YAAA,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC;AACjC,YAAA,QAAQ,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACzC,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;AAC3B,YAAA,MAAM,EAAE,SAAS,CAAC,kBAAkB,CAAC;YACrC,UAAU,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3G,UAAU,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3G,SAAS,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC1G,YAAA,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC;AACtC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,UAAU,CAsDtB;;ACtNK,MAAgB,cAAe,SAAQ,SAAS,CAAA;AAAG;;ACUlD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,cAAc,CAAA;EAevD;AAfY,oBAAoB,GAAA,UAAA,CAAA;AARhC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACtC,YAAA,aAAa,EAAE,SAAS,CAAC,wBAAwB,CAAC;AAClD,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACtC,YAAA,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC;AACjC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,oBAAoB,CAehC;;ICvBW,oBAGX;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;AAChB,IAAA,mBAAA,CAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACf,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,cAAc,CAAA;AAUtD,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,mBAAmB,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC;KACpE;AAED,IAAA,cAAc,CAAC,GAAW,EAAA;AACxB,QAAA,OAAO,GAAG,KAAK,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;KACvE;EACF;AAjBY,oBAAoB,GAAA,UAAA,CAAA;AANhC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,SAAS,CAAC,mBAAmB,CAAC;AACxC,YAAA,aAAa,EAAE,SAAS,CAAC,wBAAwB,CAAC;AACnD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,oBAAoB,CAiBhC;;AC7BM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,SAAS,CAAA;EAMzC;AANY,WAAW,GAAA,UAAA,CAAA;AADvB,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,WAAW,CAMvB;;ACEM,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,SAAS,CAAA;AAWtC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC/B;EACF;AAdY,SAAS,GAAA,UAAA,CAAA;AARrB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC;AAChC,YAAA,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC;AAC5B,YAAA,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC;AAC9B,YAAA,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC;AAChC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,SAAS,CAcrB;;ACfM,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,cAAc,CAAA;AAgBlD,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KAC9B;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KAC9B;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KAC9B;EACF;AA3BY,gBAAgB,GAAA,UAAA,CAAA;AAN5B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACtC,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACvC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,gBAAgB,CA2B5B;;AC3BM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,cAAc,CAAA;AAepD,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa,CAAC,kBAAkB,EAAE;AAC1D,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC/B,SAAA;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;KACtD;EACF;AArBY,kBAAkB,GAAA,UAAA,CAAA;AAN9B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACtC,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACvC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,kBAAkB,CAqB9B;;ACrBM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,cAAc,CAAA;EAUrD;AAVY,kBAAkB,GAAA,UAAA,CAAA;AAN9B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACtC,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACvC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,kBAAkB,CAU9B;;ACpBK,SAAU,aAAa,CAAC,MAAc,EAAA;AAC1C,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAChB,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC;AAEe,SAAA,cAAc,CAAC,KAAY,EAAE,MAAc,EAAA;IACzD,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACrD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,CAAC;AAChB,KAAA;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;AACxD,KAAA;AACD,IAAA,OAAO,MAAM,CAAC;AAChB;;ICdY,aAGX;AAHD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA,CAAA;AAOM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAA;EAQ7C;AARY,eAAe,GAAA,UAAA,CAAA;AAL3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC;AAC9B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAQ3B,CAAA;AAOM,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,SAAS,CAAA;AAA/B,IAAA,WAAA,GAAA;;QAUG,IAAM,CAAA,MAAA,GAAqC,EAAE,CAAC;KA4BvD;AA1BC,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACzD;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACxD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,KAAK,IAAG;gBACnD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC;gBAC3D,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,YAAY,KAAK,CAAC,EAAE;AACtB,oBAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AACxB,wBAAA,KAAK,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,QAAQ,CAAC;AACrC,qBAAA;oBACD,KAAK,GAAG,OAAO,CAAC;AACjB,iBAAA;AAAM,qBAAA;AACL,oBAAA,KAAK,GAAG,CAAA,IAAA,EAAO,YAAY,CAAA,CAAE,CAAC;AAC/B,iBAAA;gBACD,OAAO;AACL,oBAAA,KAAK,EAAE,KAAK;oBACZ,KAAK;iBACN,CAAC;AACJ,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;EACF;AAtCY,OAAO,GAAA,UAAA,CAAA;AALnB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,WAAW,CAAC,eAAe,CAAC;AACvC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,OAAO,CAsCnB;;ACvDM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,cAAc,CAAA;AAYjD,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa,CAAC,kBAAkB,EAAE;AAC1D,YAAA,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC/B,SAAA;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;KACtD;EACF;AAlBY,eAAe,GAAA,UAAA,CAAA;AAP3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACtC,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACtC,YAAA,aAAa,EAAE,SAAS,CAAC,mBAAmB,CAAC;AAC9C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAkB3B;;ACnBM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,cAAc,CAAA;AAarD,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KAC9B;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KAC9B;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KAC9B;EACF;AAxBY,mBAAmB,GAAA,UAAA,CAAA;AAN/B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACtC,YAAA,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC;AACvC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,mBAAmB,CAwB/B;;ICjBW,aAMX;AAND,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,YAAA,CAAA,YAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EANW,YAAY,KAAZ,YAAY,GAMvB,EAAA,CAAA,CAAA,CAAA;IAEW,gBAMX;AAND,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,eAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,eAAA,CAAA,eAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,eAAA,CAAA,eAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,eAAA,CAAA,eAAA,CAAA,kCAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kCAAgC,CAAA;AAChC,IAAA,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EANW,eAAe,KAAf,eAAe,GAM1B,EAAA,CAAA,CAAA,CAAA;AAKM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAA;EAIhD;AAJY,kBAAkB,GAAA,UAAA,CAAA;AAD9B,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,kBAAkB,CAI9B,CAAA;AA0BM,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,SAAS,CAAA;AA2CjC,IAAA,IAAI,oBAAoB,GAAA;QACtB,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE;YACzE,OAAO,IAAI,CAAC,qBAAqB,CAAC;AACnC,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxE,SAAA;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACnC;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAA;AAC5B,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACpC;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE;YACtE,OAAO,IAAI,CAAC,qBAAqB,CAAC;AACnC,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxE,SAAA;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACnC;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAA;AAC5B,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACpC;AAED,IAAA,IAAI,gBAAgB,GAAA;QAClB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;YACjE,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAC/B,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChE,SAAA;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;KAC/B;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAA;AACxB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;YACrE,OAAO,IAAI,CAAC,mBAAmB,CAAC;AACjC,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,mBAAmB,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpE,SAAA;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;IAED,IAAI,kBAAkB,CAAC,KAAK,EAAA;AAC1B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;KAClC;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;YACrE,OAAO,IAAI,CAAC,mBAAmB,CAAC;AACjC,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,mBAAmB,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpE,SAAA;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;IAED,IAAI,kBAAkB,CAAC,KAAK,EAAA;AAC1B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;KAClC;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;YAC/D,OAAO,IAAI,CAAC,gBAAgB,CAAC;AAC9B,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9D,SAAA;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;IAED,IAAI,eAAe,CAAC,KAAK,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;KAC/B;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE;YACvE,OAAO,IAAI,CAAC,oBAAoB,CAAC;AAClC,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtE,SAAA;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;KAClC;IAED,IAAI,mBAAmB,CAAC,KAAK,EAAA;AAC3B,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;KACnC;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK;YACpD,MAAM,EAAE,CAAC,MAAM;YACf,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACxC,mBAAmB,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACnD,SAAA,CAAC,CAAC,CAAC;KACL;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,CAAC;KAC5C;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/G;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,OAAO,CAAC,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/G;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC;AACpC,SAAA;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC;AACxD,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC;AACxD,SAAA;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC;AACpC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC9B,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;AAClC,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AAClC,SAAA;KACF;EACF;AAzMY,IAAI,GAAA,UAAA,CAAA;AAxBhB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC;AAC/B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;AACtF,YAAA,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC;AACjC,YAAA,wBAAwB,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAChG,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,UAAU,EAAE,SAAS,CAAC,eAAe,CAAC;AACtC,YAAA,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,CAAC;AACvD,YAAA,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,CAAC;AACvD,YAAA,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC;AAC/C,YAAA,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACnD,YAAA,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACnD,YAAA,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC;AAC7C,YAAA,mBAAmB,EAAE,WAAW,CAAC,mBAAmB,CAAC;AACrD,YAAA,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC;AACvC,YAAA,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC;AACzC,YAAA,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACxC,YAAA,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;AACnC,YAAA,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC;AAC7C,YAAA,cAAc,EAAE,WAAW,CAAC,kBAAkB,CAAC;AAChD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,IAAI,CAyMhB;;ICvQW,aAWX;AAXD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,YAAA,CAAA,YAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,YAAA,CAAA,YAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,YAAA,CAAA,YAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EAXW,YAAY,KAAZ,YAAY,GAWvB,EAAA,CAAA,CAAA,CAAA;AASM,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,SAAS,CAAA;EAOtC;AAPY,QAAQ,GAAA,UAAA,CAAA;AAPpB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC;AAC9B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,QAAQ,CAOpB;;ACvBM,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,SAAS,CAAA;EAOxD;AAPY,0BAA0B,GAAA,UAAA,CAAA;AANtC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,MAAM,EAAE,SAAS;AAClB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,0BAA0B,CAOtC;;ACPM,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,eAAe,CAAA;EACrD;AADY,iBAAiB,GAAA,UAAA,CAAA;AAL7B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,SAAS,CAAC,gBAAgB,CAAC;AAClC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,iBAAiB,CAC7B;;ACEM,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,oBAAoB,CAAA;EAG/D;AAHY,sBAAsB,GAAA,UAAA,CAAA;AANlC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC;AAClD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,sBAAsB,CAGlC;;ICTW,cAyBX;AAzBD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,aAAA,CAAA,aAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,aAAA,CAAA,aAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,aAAA,CAAA,aAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,aAAA,CAAA,aAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,aAAA,CAAA,aAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,aAAA,CAAA,aAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,aAAA,CAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,aAAA,CAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,aAAA,CAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,aAAA,CAAA,aAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,aAAA,CAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;AACjB,CAAC,EAzBW,aAAa,KAAb,aAAa,GAyBxB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,yBAAyB,GAAG;AACvC,IAAA,CAAC,aAAa,CAAC,UAAU,GAAG,SAAS;AACrC,IAAA,CAAC,aAAa,CAAC,WAAW,GAAG,WAAW;AACxC,IAAA,CAAC,aAAa,CAAC,WAAW,GAAG,WAAW;AACxC,IAAA,CAAC,aAAa,CAAC,OAAO,GAAG,UAAU;AACnC,IAAA,CAAC,aAAa,CAAC,QAAQ,GAAG,YAAY;AACtC,IAAA,CAAC,aAAa,CAAC,QAAQ,GAAG,UAAU;AACpC,IAAA,CAAC,aAAa,CAAC,SAAS,GAAG,YAAY;AACvC,IAAA,CAAC,aAAa,CAAC,SAAS,GAAG,YAAY;AACvC,IAAA,CAAC,aAAa,CAAC,SAAS,GAAG,WAAW;AACtC,IAAA,CAAC,aAAa,CAAC,KAAK,GAAG,OAAO;AAC9B,IAAA,CAAC,aAAa,CAAC,MAAM,GAAG,QAAQ;AAChC,IAAA,CAAC,aAAa,CAAC,KAAK,GAAG,OAAO;AAC9B,IAAA,CAAC,aAAa,CAAC,UAAU,GAAG,SAAS;AACrC,IAAA,CAAC,aAAa,CAAC,WAAW,GAAG,WAAW;AACxC,IAAA,CAAC,aAAa,CAAC,aAAa,GAAG,YAAY;AAC3C,IAAA,CAAC,aAAa,CAAC,aAAa,GAAG,YAAY;AAC3C,IAAA,CAAC,aAAa,CAAC,cAAc,GAAG,aAAa;AAC7C,IAAA,CAAC,aAAa,CAAC,cAAc,GAAG,aAAa;AAC7C,IAAA,CAAC,aAAa,CAAC,cAAc,GAAG,aAAa;AAC7C,IAAA,CAAC,aAAa,CAAC,QAAQ,GAAG,SAAS;AACnC,IAAA,CAAC,aAAa,CAAC,MAAM,GAAG,OAAO;AAC/B,IAAA,CAAC,aAAa,CAAC,QAAQ,GAAG,UAAU;AACpC,IAAA,CAAC,aAAa,CAAC,WAAW,GAAG,UAAU;AACvC,IAAA,CAAC,aAAa,CAAC,eAAe,GAAG,YAAY;EAC7C;AAYK,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAAS,CAAA;AAgBzC,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClF;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjE;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACzF;AAED,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;AAC/D,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;KAChD;EACF;AAnCY,YAAY,GAAA,UAAA,CAAA;AAVxB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC;AACvC,YAAA,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AAC3D,YAAA,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC;AAC9B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,YAAY,CAmCxB;;AC1FM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAA;EAUhD;AAVY,kBAAkB,GAAA,UAAA,CAAA;AAR9B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,gBAAgB,EAAE,WAAW,CAAC,0BAA0B,CAAC;AACzD,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACxC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,kBAAkB,CAU9B;;ACdK,MAAgB,aAAc,SAAQ,SAAS,CAAA;AAgBpD;;ACNM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,aAAa,CAAA;AAsDpD,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAClB,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC;AACxB,aAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;AAC1B,aAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;aAC/B,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAClC,CAAC,GAAG,EAAE,CAAC;KACT;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;KACvC;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;KAC1D;AAED,IAAA,IAAI,gBAAgB,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;KAC3E;AAED,IAAA,IAAI,gBAAgB,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;KAC3E;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACrD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;KAC/E;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACnD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC9F;EACF;AAtGY,mBAAmB,GAAA,UAAA,CAAA;AAX/B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACnD,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,mBAAmB,CAsG/B;;AChHM,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,SAAS,CAAA;EAGzD;AAHY,2BAA2B,GAAA,UAAA,CAAA;AANvC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,mBAAmB,CAAC;AACtC,YAAA,cAAc,EAAE,WAAW,CAAC,mBAAmB,CAAC;AACjD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,2BAA2B,CAGvC;;ACXK,MAAgB,iBAAkB,SAAQ,SAAS,CAAA;AAGvD,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AACF;;ACAM,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,iBAAiB,CAAA;AAiC5D,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC;KACtI;AAED,IAAA,IAAI,eAAe,CAAC,CAAS,EAAA,GAAI;AAEjC,IAAA,IAAI,eAAe,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;KAC3E;AAED;;AAEG;AACH,IAAA,IAAI,gBAAgB,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;KAC3E;AAED,IAAA,IAAI,eAAe,CAAC,CAAS,EAAA,GAAI;AAEjC,IAAA,IAAI,eAAe,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;KAC3E;AAED;;AAEG;AACH,IAAA,IAAI,gBAAgB,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;KAC3E;AAED,IAAA,IAAI,iBAAiB,CAAC,CAAS,EAAA,GAAI;AAEnC,IAAA,IAAI,iBAAiB,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACrD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;KAC/E;AAED;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACrD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;KAC/E;AAED,IAAA,IAAI,gBAAgB,CAAC,CAAS,EAAA,GAAI;AAElC,IAAA,IAAI,gBAAgB,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACnD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED;;AAEG;AACH,IAAA,IAAI,iBAAiB,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACnD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC9F;AAED,IAAA,IAAI,gBAAgB,CAAC,CAAS,EAAA,GAAI;AAElC,IAAA,IAAI,gBAAgB,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACnD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,cAAc,CAAC,CAAS,EAAA,GAAI;AAEhC,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;KAC7D;AAED,IAAA,IAAI,kBAAkB,CAAC,CAAS,EAAA,GAAI;AAEpC,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC9C,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;KACxE;EACF;AAhJY,uBAAuB,GAAA,UAAA,CAAA;AALnC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,uBAAuB,CAgJnC;;ACtJK,MAAgB,WAAY,SAAQ,SAAS,CAAA;AASlD;;ICPW,uBAgCX;AAhCD,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,sBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,sBAAA,CAAA,sBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,sBAAA,CAAA,sBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,sBAAA,CAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,sBAAA,CAAA,sBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,sBAAA,CAAA,sBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,sBAAA,CAAA,sBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,sBAAA,CAAA,sBAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,sBAAA,CAAA,sBAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,sBAAA,CAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,sBAAA,CAAA,sBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,sBAAA,CAAA,sBAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,sBAAA,CAAA,sBAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,sBAAA,CAAA,sBAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,sBAAA,CAAA,sBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,sBAAA,CAAA,sBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,sBAAA,CAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,sBAAA,CAAA,sBAAA,CAAA,sBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,sBAAoB,CAAA;AACpB,IAAA,sBAAA,CAAA,sBAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,sBAAA,CAAA,sBAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,sBAAA,CAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,sBAAA,CAAA,sBAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,sBAAA,CAAA,sBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,sBAAA,CAAA,sBAAA,CAAA,oBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,sBAAA,CAAA,sBAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,sBAAA,CAAA,sBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,sBAAA,CAAA,sBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,sBAAA,CAAA,sBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,sBAAA,CAAA,sBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACf,CAAC,EAhCW,sBAAsB,KAAtB,sBAAsB,GAgCjC,EAAA,CAAA,CAAA,CAAA;IAEW,sBAgCX;AAhCD,CAAA,UAAY,qBAAqB,EAAA;;AAE/B,IAAA,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,qBAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,qBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,qBAAA,CAAA,qBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAoB,CAAA;AACpB,IAAA,qBAAA,CAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;;AAGT,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;;AAGX,IAAA,qBAAA,CAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,qBAAA,CAAA,qBAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAAsB,CAAA;AACtB,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AAChB,CAAC,EAhCW,qBAAqB,KAArB,qBAAqB,GAgChC,EAAA,CAAA,CAAA,CAAA;IAEW,qBAYX;AAZD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,oBAAA,CAAA,oBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,oBAAA,CAAA,oBAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,oBAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,oBAAA,CAAA,oBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,oBAAA,CAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,oBAAA,CAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,oBAAA,CAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,oBAAA,CAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,oBAAA,CAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,oBAAA,CAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EAZW,oBAAoB,KAApB,oBAAoB,GAY/B,EAAA,CAAA,CAAA,CAAA;IAEW,qBAGX;AAHD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,GAG/B,EAAA,CAAA,CAAA,CAAA;IAEW,uBAQX;AARD,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,sBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,sBAAA,CAAA,sBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,sBAAA,CAAA,sBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,sBAAA,CAAA,sBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,sBAAA,CAAA,sBAAA,CAAA,yBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,yBAAuB,CAAA;AACvB,IAAA,sBAAA,CAAA,sBAAA,CAAA,0BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,0BAAwB,CAAA;AACxB,IAAA,sBAAA,CAAA,sBAAA,CAAA,4BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,4BAA0B,CAAA;AAC5B,CAAC,EARW,sBAAsB,KAAtB,sBAAsB,GAQjC,EAAA,CAAA,CAAA,CAAA;AAYM,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,WAAW,CAAA;AAA3C,IAAA,WAAA,GAAA;;QAYL,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;KAiFf;IA/DC,YAAY,GAAA;QACV,OAAO;AACL,YAAA,sBAAsB,CAAC,cAAc;AACrC,YAAA,sBAAsB,CAAC,gBAAgB;AACvC,YAAA,sBAAsB,CAAC,eAAe;AACtC,YAAA,sBAAsB,CAAC,cAAc;AACrC,YAAA,sBAAsB,CAAC,eAAe;AACtC,YAAA,sBAAsB,CAAC,SAAS;AAChC,YAAA,sBAAsB,CAAC,YAAY;SACpC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;IAED,aAAa,GAAA;QACX,OAAO;AACL,YAAA,sBAAsB,CAAC,OAAO;AAC9B,YAAA,sBAAsB,CAAC,iBAAiB;AACxC,YAAA,sBAAsB,CAAC,iBAAiB;AACxC,YAAA,sBAAsB,CAAC,YAAY;SACpC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;IAED,UAAU,GAAA;QACR,OAAO;AACL,YAAA,sBAAsB,CAAC,aAAa;AACpC,YAAA,sBAAsB,CAAC,cAAc;AACrC,YAAA,sBAAsB,CAAC,oBAAoB;AAC3C,YAAA,sBAAsB,CAAC,qBAAqB;SAC7C,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,CAAC,sBAAsB,CAAC,cAAc,GAAG,CAAC;AAC1C,YAAA,CAAC,sBAAsB,CAAC,eAAe,GAAG,CAAC;AAC3C,YAAA,CAAC,sBAAsB,CAAC,cAAc,GAAG,CAAC;AAC1C,YAAA,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,CAAC;AAC5C,YAAA,CAAC,sBAAsB,CAAC,eAAe,GAAG,CAAC;AAC3C,YAAA,CAAC,sBAAsB,CAAC,SAAS,GAAG,CAAC;SACtC,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,sBAAsB,CAAC,YAAY,EAAE;YACxD,OAAO,IAAI,CAAC,cAAc,CAAC;AAC5B,SAAA;QACD,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACxC;AAED,IAAA,OAAO,CAAC,KAAwB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAC5D,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;AACxD,gBAAA,OAAO,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,aAAA;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5C;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;AACzC,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KACpF;EACF;AA7FY,iBAAiB,GAAA,UAAA,CAAA;AAV7B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,OAAO,EAAE,SAAS,CAAC,sBAAsB,CAAC;AAC1C,YAAA,UAAU,EAAE,SAAS,CAAC,qBAAqB,CAAC;AAC5C,YAAA,WAAW,EAAE,SAAS,CAAC,sBAAsB,CAAC;AAC9C,YAAA,IAAI,EAAE,SAAS,CAAC,oBAAoB,CAAC;AACrC,YAAA,SAAS,EAAE,SAAS,CAAC,oBAAoB,CAAC;AAC3C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,iBAAiB,CA6F7B;;ACjMM,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,SAAS,CAAA;AASrC,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;KAChF;EACF;AAZY,QAAQ,GAAA,UAAA,CAAA;AAPpB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACnD,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,QAAQ,CAYpB;;ACfM,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,SAAS,CAAA;EAMrD;AANY,uBAAuB,GAAA,UAAA,CAAA;AADnC,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,uBAAuB,CAMnC,CAAA;AAQM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,SAAS,CAAA;EAGjD;AAHY,mBAAmB,GAAA,UAAA,CAAA;AAL/B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,WAAW,EAAE,WAAW,CAAC,uBAAuB,CAAC;AAClD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,mBAAmB,CAG/B;;ACjBM,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,SAAS,CAAA;EAGtD;AAHY,wBAAwB,GAAA,UAAA,CAAA;AALpC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,gBAAgB,EAAE,WAAW,CAAC,0BAA0B,CAAC;AAC1D,SAAA;KACF,CAAC;AACW,CAAA,EAAA,wBAAwB,CAGpC;;ACTD,MAAM,eAAgB,SAAQ,SAAS,CAAA;AAEtC,CAAA;AAED,MAAM,sBAAuB,SAAQ,eAAe,CAAA;AAEnD,CAAA;AAOK,SAAU,iBAAiB,CAC/B,IAAS,EACT,IAAO,EACP,KAAK,GAAG,KAAK,EACb,aAAoC,EAAA;AAEpC,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAC5B,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CACpD,CAAC;IACF,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,IAAA,IAAI,OAAO,YAAY,sBAAsB,IAAI,IAAI,YAAY,sBAAsB;AACrF,QAAA,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EACnF;AACA,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IACD,OAAO;AACL,QAAA,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QACvB,IAAI;AACJ,QAAA,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;KACzB,CAAC;AACJ,CAAC;AAEK,SAAU,kBAAkB,CAChC,IAAS,EACT,KAAU,EACV,KAAA,GAAiB,KAAK,EACtB,aAAoC,EAAA;AAEpC,IAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;QACnB,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AAC7D,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;SAEe,gBAAgB,CAC9B,IAAS,EACT,IAAO,EACP,aAAoC,EAAA;AAEpC,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAG;AAClB,QAAA,IAAI,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE;AAC9C,YAAA,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;AACrB,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;AAC3B,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAChC,KAAC,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,cAAc,CAC5B,IAAS,EACT,IAAO,EACP,KAAA,GAAiB,KAAK,EACtB,aAAoC,EAAA;AAEpC,IAAA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE;AACnF,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAED,IAAA,OAAO,KAAK;AACV,UAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;AACjB,UAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACtB,CAAC;AAEK,SAAU,eAAe,CAC7B,IAAS,EACT,KAAU,EACV,KAAA,GAAiB,KAAK,EACtB,aAAoC,EAAA;AAEpC,IAAA,CAAC,CAAC,KAAK;UACH,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;UAClC,KAAK,EACP,OAAO,CAAC,IAAI,IAAG;QACf,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAEe,SAAA,mBAAmB,CACjC,IAAS,EACT,IAA8B,EAAA;IAE9B,IAAI,IAAI,YAAY,eAAe,EAAE;AACnC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3C,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,KAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,eAAe,EAAA;AACjC,IAAA,OAAO,eAAe,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,mBAAmB,CAAC;AACtF,CAAC;AAEY,MAAA,CAAC,GAAG;AACf,IAAA,MAAM,EAAE,CACN,IAAS,EAAE,IAAO,EAAE,KAAK,GAAG,KAAK,EACjC,QAA6C,GAAA,IAAI,KAC/C;AACF,QAAA,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,IAAI,KAAK,EAAE;YACT,OAAO;AACL,gBAAA,GAAG,IAAI;gBACP,IAAI;aACL,CAAC;AACH,SAAA;AAAM,aAAA;YACL,OAAO;gBACL,IAAI;AACJ,gBAAA,GAAG,IAAI;aACR,CAAC;AACH,SAAA;KACF;AACD,IAAA,MAAM,EAAE,CACN,IAAS,EAAE,IAAO,EAAE,KAAK,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,EAClD,QAA6C,GAAA,IAAI,KAC/C;AACF,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,IAAI,YAAY,sBAAsB,IAAI,OAAO,YAAY,sBAAsB;AAC/F,YAAA,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EACzE;AACA,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACpB,SAAA;AACD,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;KAClB;IACD,KAAK,EAAE,CACL,IAAS,EAAE,IAAO,EAClB,QAAA,GAA6C,IAAI,KACvC;QACV,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAwC,CAAC;AACrD,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC5D;IACD,MAAM,EAAE,CACN,IAAS,EAAE,IAAO,EAClB,QAAA,GAA6C,IAAI,KAC1C;AACP,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;KAClB;AACD,IAAA,QAAQ,EAAE,CAAkB,IAAS,EAAE,aAAmC,KAAS;AACjF,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAClC,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;KAClB;IACD,QAAQ,EAAE,CAAkB,IAAS,EAAE,IAAO,EAAE,QAAA,GAA6C,IAAI,KAAc;AAC7G,QAAA,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KAC3C;AACD,IAAA,MAAM,EAAE,CACN,IAAS,EAAE,IAAO,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAChD,QAA6C,GAAA,IAAI,KAC1C;QACP,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;AACpC,YAAA,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACrD,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC9C,SAAA;KACF;AACD,IAAA,UAAU,EAAE,CACV,IAAS,EAAE,KAAU,EAAE,KAAK,GAAG,KAAK,EACpC,QAA6C,GAAA,IAAI,KAC1C;QACP,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1C,SAAA;AACD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,YAAA,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;KAClB;AACD,IAAA,UAAU,EAAE,CACV,IAAS,EAAE,KAAU,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EACnD,QAA6C,GAAA,IAAI,KAC1C;QACP,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1C,SAAA;AACD,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,YAAA,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACrD,SAAA;AACD,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;KAClB;AACD,IAAA,OAAO,EAAE,CAAsB,IAAS,EAAE,GAAqC,KAAoB;QACjG,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM;AACjC,YAAA,GAAG,GAAG;YACN,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI;SAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;KACT;AACD,IAAA,OAAO,EAAE,CAAsB,IAAW,KAAS;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,MAAM;AAClC,YAAA,GAAG,GAAG;AACN,YAAA,GAAG,KAAK;SACT,CAAC,EAAE,EAAE,CAAC,CAAC;KACT;AACD,IAAA,MAAM,EAAE,CAAsB,QAAW,EAAE,IAA2C,KAAI;AACxF,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;KAC/D;;;MCjOU,KAAK,CAAA;AAGhB,IAAA,WAAA,CAAoB,MAA8B,EAAA;QAA9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAwB;QAF1C,IAAI,CAAA,IAAA,GAA0C,EAAE,CAAC;KAGxD;IAED,GAAG,CAAC,GAAW,EAAE,YAAkB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAC9B,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC,EACrD,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CACnC,CAAC;KACH;IAED,KAAK,CAAC,GAAW,EAAE,YAAkB,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;KAC7F;IAED,IAAI,CAAC,GAAW,EAAE,KAAU,EAAA;QAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9B,SAAA;KACF;AAED,IAAA,UAAU,CAAC,GAAW,EAAE,KAAU,EAAE,aAAsC,EAAA;QACxE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;KACnF;AAED,IAAA,WAAW,CAAC,GAAW,EAAE,KAAY,EAAE,aAAsC,EAAA;QAC3E,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KACrE;AAED,IAAA,WAAW,CAAC,GAAW,EAAE,KAAU,EAAE,aAAsC,EAAA;QACzE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;KACpF;AAED,IAAA,YAAY,CAAC,GAAW,EAAE,KAAY,EAAE,aAAsC,EAAA;QAC5E,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;KACrF;AAED,IAAA,UAAU,CAAC,GAAW,EAAE,KAAU,EAAE,KAAe,EAAE,aAAsC,EAAA;QACzF,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;KACvF;AAED,IAAA,WAAW,CAAC,GAAW,EAAE,KAAU,EAAE,KAAe,EAAE,aAAsC,EAAA;QAC1F,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;KACxF;IAED,UAAU,CAAC,GAAW,EAAE,KAAU,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;KACnE;IAED,OAAO,GAAA;QACL,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1B,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,SAAA;KACF;IAED,gBAAgB,GAAA;QACd,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACrB,SAAA;KACF;IAED,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAEO,IAAA,UAAU,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;AAC3F,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvB;AACF;;MC5EY,WAAW,CAAA;AADxB,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AAK/B,KAAA;IAHC,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;KACtB;;wGALU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cADC,MAAM,EAAA,CAAA,CAAA;2FAClB,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACAhC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAE3B,MAAM,WAAW,GAAG,uBAAuB;AAG5C,MAAO,aAAc,SAAQ,WAAW,CAAA;AAC5C,IAAA,WAAA,CAC2C,UAAe,EAAA;AAExD,QAAA,KAAK,EAAE,CAAC;QAFiC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAK;AAGxD,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC7B,SAAA;KACF;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;KACzC;AAED,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KACjD;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;KACzC;IAED,GAAG,CAAC,GAAW,EAAE,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAChC,GAAG,IAAI,CAAC,MAAM;YACd,CAAC,GAAG,GAAG,KAAK;AACb,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;KACtF;;AA/BU,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAEF,WAAW,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFtB,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADD,MAAM,EAAA,CAAA,CAAA;2FAClB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;0BAG3B,QAAQ;;0BAAI,MAAM;2BAAC,WAAW,CAAA;;;MCDtB,WAAW,CAAA;IACtB,WACY,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAEvC;IAED,MAAM,QAAQ,CAAC,MAAc,EAAA;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,wBAAA,EAA2B,MAAM,CAAS,OAAA,CAAA,CAAC,CAAC,IAAI,CACtH,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CACtD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,MAAM,CAAC,MAAc,EAAA;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,wBAAA,EAA2B,MAAM,CAAO,KAAA,CAAA,CAAC,CAAC,IAAI,CACpH,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CACtD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,kBAAkB,CAAC,MAAc,EAAA;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,wBAAA,EAA2B,MAAM,CAAoB,kBAAA,CAAA,CAAC,CAAC,IAAI,CACjI,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CACjE,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,wBAAwB,CAAC,MAAc,EAAA;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,wBAAA,EAA2B,MAAM,CAA0B,wBAAA,CAAA,CAC/F,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CACtE,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,mBAAmB,CAAC,MAAc,EAAE,MAA+B,EAAE,IAAqC,EAAA;AAC9G,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA2B,wBAAA,EAAA,MAAM,oBAAoB,EAAE;AACnH,YAAA,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC;AAC/E,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;;wGAtCU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cADC,MAAM,EAAA,CAAA,CAAA;2FAClB,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACG1B,MAAO,iBAAkB,SAAQ,WAAW,CAAA;IAChD,WACY,CAAA,UAAsB,EACtB,aAA4B,EAAA;AAEtC,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAHvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAGvC;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAS,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CACzH,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAkB,gBAAA,CAAA,CAClG,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC,CACvD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAkB,gBAAA,CAAA,CAClG,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CACrE,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAQ,MAAA,CAAA,CAAC,CAAC,IAAI,CAChI,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/D,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,QAAiC,EAAA;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAA,0BAAA,EAA6B,QAAQ,CAAA,CAAE,EACtH,EAAC,YAAY,EAAE,MAAM,EAAC,CACrB;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,oBAAoB,CAAC,MAAc,EAAE,QAAiC,EAAA;QAC1E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAA,+BAAA,EAAkC,QAAQ,CAAA,CAAE,EAC3H,EAAC,YAAY,EAAE,MAAM,EAAC,CACvB;AACE,aAAA,SAAS,EAAE,CAAC;KAChB;;8GAlDU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADL,MAAM,EAAA,CAAA,CAAA;2FAClB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACFzB,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,SAAS,CAAA;EAOtC;AAPY,QAAQ,GAAA,UAAA,CAAA;AALpB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,QAAQ,CAOpB;;MCRY,WAAW,CAAA;IACtB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;IAED,MAAM,YAAY,CAAC,IAAc,EAAA;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iBAAA,CAAmB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7C,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,kBAAkB,CAAC,QAAgB,EAAE,IAAc,EAAA;QACvD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAA,UAAA,CAAY,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAChH,aAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7C,aAAA,SAAS,EAAE,CAAC;KAChB;;wGAjBU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cADC,MAAM,EAAA,CAAA,CAAA;2FAClB,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCCnB,OAAO,CAAA;IAClB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAClC;IAEJ,MAAM,MAAM,CAAC,QAAa,EAAE,QAAiB,EAAE,KAAc,EAAE,MAAe,EAAA;AAC5E,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,KAAK,IAAI,MAAM,EAAE;YACnB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjF,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAC,MAAM,EAAC,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,gBAAgB,CAAC,KAAsC,EAAA;AAC3D,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,YAAA,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpD,SAAA;QACD,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA2B,yBAAA,CAAA,EAAE,QAAQ,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC;AACtG,aAAA,SAAS,EAAE,CAAC;KAChB;;oGA5BU,OAAO,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAP,OAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAO,cADK,MAAM,EAAA,CAAA,CAAA;2FAClB,OAAO,EAAA,UAAA,EAAA,CAAA;kBADnB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACJnB,MAAA,kBAAkB,GAAwB;IACrD,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAC;IACjD,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,wBAAwB,EAAC;IAC1D,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAC;IAC9C,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAC;IAC5C,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAC;IAC1C,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAC;IAC9C,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAC;IAC7C,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAC;IACxC,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAC;IACpD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,+BAA+B,EAAC;IAChE,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC;IACvC,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAC;IAChD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAC;IAC/C,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,2BAA2B,EAAC;IAC9D,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAC;IAClD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAC;IACpD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAC;IACvD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAC;IAC3D,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAC;IAC9D,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAC;IAC9C,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,wBAAwB,EAAC;IACxD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAC;IACzC,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAC;IACpD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAC;IAC9D,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAC;IACtD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAC;IACrD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,4CAA4C,EAAC;IAC5E,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAC;IACnD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAC;IAC1C,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAC;IACzC,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAC;IACzC,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAC;IACzC,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAC;IACzD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,uCAAuC,EAAC;IACvE,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAC;IAC7C,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAC;IACzC,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAC;IAChD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAC;IAChD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAC;IAC/C,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAC;IAC9C,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,EAAC;IACtD,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAC;IAC/C,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAC;IAC9C,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAC;IAC5C,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC;IACrC,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAC;IAChE,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAC;;;ACxC1C,MAAM,gBAAgB,GAAqC;AAChE,IAAA,MAAM,EAAE,CAAC,IAAY,KAAwB,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC;AAC9F,IAAA,IAAI,EAAE,CAAC,IAAuB,KAAa,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI;CACjE;;ICPW,mBA8BX;AA9BD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,kBAAA,CAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,kBAAA,CAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,kBAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,kBAAA,CAAA,kBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,kBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,kBAAA,CAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,kBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,kBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,kBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,kBAAA,CAAA,kBAAA,CAAA,oBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,kBAAA,CAAA,kBAAA,CAAA,yBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,yBAAuB,CAAA;AACvB,IAAA,kBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,kBAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,kBAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,kBAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,kBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,kBAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,kBAAA,CAAA,kBAAA,CAAA,6BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,6BAA2B,CAAA;AAC3B,IAAA,kBAAA,CAAA,kBAAA,CAAA,0BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,0BAAwB,CAAA;AACxB,IAAA,kBAAA,CAAA,kBAAA,CAAA,0BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,0BAAwB,CAAA;AACxB,IAAA,kBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,kBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACZ,CAAC,EA9BW,kBAAkB,KAAlB,kBAAkB,GA8B7B,EAAA,CAAA,CAAA,CAAA;IAEW,qBAIX;AAJD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAe,CAAA;AACf,IAAA,oBAAA,CAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,oBAAA,CAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACf,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,GAI/B,EAAA,CAAA,CAAA,CAAA;AAUM,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,WAAW,CAAA;AAAvC,IAAA,WAAA,GAAA;;QAWL,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;KA+Df;AAnDC,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC;AAClC,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,IAAI,mBAAmB,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;KACnC;AAED,IAAA,OAAO,CAAC,KAAoB,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5C;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;AACzC,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KACpF;IAED,WAAW,GAAA;QACT,OAAO;AACL,YAAA,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,CAAC,aAAa;AACzD,YAAA,kBAAkB,CAAC,wBAAwB;SAC5C,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;IAED,aAAa,GAAA;QACX,OAAO;AACL,YAAA,kBAAkB,CAAC,aAAa,EAAE,kBAAkB,CAAC,aAAa;AAClE,YAAA,kBAAkB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,uBAAuB;AACjF,YAAA,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,CAAC,aAAa;SAClE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;AAED,IAAA,OAAO,CAAC,GAAkB,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AACxD,YAAA,OAAO,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC7B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;KACjC;EACF;AA1EY,aAAa,GAAA,UAAA,CAAA;AARzB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,OAAO,EAAE,SAAS,CAAC,kBAAkB,CAAC;AACtC,YAAA,SAAS,EAAE,SAAS,CAAC,oBAAoB,CAAC;AAC1C,YAAA,WAAW,EAAE,gBAAgB;AAC9B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,aAAa,CA0EzB;;ACrHM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,iBAAiB,CAAA;AAmDxD,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;KAC7F;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;KACvF;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;KAClF;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;KAClD;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;KACxE;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;KAC9E;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC5D;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KACjE;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;KACrD;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KACrE;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;KACtD;AAED,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACrC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;KAC/D;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KACtD;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC/C,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;KACzE;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KACpE;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;KACvC;AAED,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACxC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;KAClE;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACvC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;KACjE;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;KACrD;EACF;AAlKY,mBAAmB,GAAA,UAAA,CAAA;AAL/B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,mBAAmB,CAkK/B;;ACtJM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,aAAa,CAAA;AA0FhD,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACtG;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;AAC/C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;AACzD,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KAChF;AAED,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;KACrE;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;KAC1D;EACF;AArHY,eAAe,GAAA,UAAA,CAAA;AAX3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACnD,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAqH3B;;AC/HM,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,SAAS,CAAA;EAGrD;AAHY,uBAAuB,GAAA,UAAA,CAAA;AANnC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC;AAClC,YAAA,cAAc,EAAE,WAAW,CAAC,eAAe,CAAC;AAC7C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,uBAAuB,CAGnC;;ACFK,MAAO,aAAc,SAAQ,WAAW,CAAA;IAC5C,WACY,CAAA,UAAsB,EACtB,aAA4B,EAAA;AAEtC,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAHvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAGvC;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,+BAAA,EAAkC,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAC7G,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,+BAAA,EAAkC,MAAM,CAAkB,gBAAA,CAAA,CAAC,CAAC,IAAI,CAC5H,GAAG,CAAC,MAAM,IAAI,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC,CACnD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,+BAAA,EAAkC,MAAM,CAAkB,gBAAA,CAAA,CAC9F,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CACjE,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,+BAAA,EAAkC,MAAM,CAAQ,MAAA,CAAA,CAAC,CAAC,IAAI,CAC5H,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3D,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,MAA+B,EAAA;AACpE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAkC,+BAAA,EAAA,MAAM,iBAAiB,EAAE;YACvH,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;AACjD,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,mBAAmB,CAAC,MAAc,EAAE,MAA+B,EAAE,IAAmC,EAAA;AAC5G,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAkC,+BAAA,EAAA,MAAM,yBAAyB,EAAE;AAC/H,YAAA,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC;AAC/E,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;;0GA9CU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADD,MAAM,EAAA,CAAA,CAAA;2FAClB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ICNpB,qBA8BX;AA9BD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,oBAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,IAAA,oBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,oBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,oBAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,IAAA,oBAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,IAAA,oBAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AACjD,CAAC,EA9BW,oBAAoB,KAApB,oBAAoB,GA8B/B,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,WAAW,CAAA;AAAzC,IAAA,WAAA,GAAA;;QAWL,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;KAyCf;AAnCC,IAAA,OAAO,CAAC,KAAsB,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5C;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;AACzC,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KACpF;IAED,WAAW,GAAA;QACT,OAAO;AACL,YAAA,oBAAoB,CAAC,IAAI;AACzB,YAAA,oBAAoB,CAAC,YAAY;AACjC,YAAA,oBAAoB,CAAC,kBAAkB;AACvC,YAAA,oBAAoB,CAAC,SAAS;AAC9B,YAAA,oBAAoB,CAAC,qBAAqB;SAC3C,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;AAED,IAAA,OAAO,CAAC,GAAoB,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AACxD,YAAA,OAAO,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC7B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;KACjC;EACF;AApDY,eAAe,GAAA,UAAA,CAAA;AAN3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,OAAO,EAAE,SAAS,CAAC,oBAAoB,CAAC;AACzC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAoD3B;;ACtFM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,iBAAiB,CAAA;AAsC1D,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC5G;AAGD,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC7G;AAED,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACnC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KAC7D;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KAC9D;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACvF;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACzC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;KACnE;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACjG;AAED,IAAA,IAAI,wBAAwB,GAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACnD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC3F;AAED,IAAA,IAAI,wBAAwB,GAAA;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,IAAI,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACrG;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAClB,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC;AAC1D,aAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CACpE,CAAC,GAAG,EAAE,CAAC;KACT;AAGD,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC7G;AAED,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACrC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;KAC/D;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACnD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,wBAAwB,GAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC7D,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC;KACvF;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;KACrD;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;KACvC;EACF;AA3IY,qBAAqB,GAAA,UAAA,CAAA;AALjC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,qBAAqB,CA2IjC;;AC/HM,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAa,CAAA;AAqElD,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC7D;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;AAC/C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;AACzD,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KAChF;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACvF;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACjG;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;KAC1D;AAED,IAAA,IAAI,wBAAwB,GAAA;QAC1B,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;KAC9D;AAED,IAAA,IAAI,2BAA2B,GAAA;QAC7B,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;KACjE;AAED,IAAA,IAAI,4BAA4B,GAAA;QAC9B,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;KAClE;AAED,IAAA,IAAI,4BAA4B,GAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;KAChH;AAED,IAAA,IAAI,sBAAsB,GAAA;QACxB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;KAC5D;AAED,IAAA,IAAI,uBAAuB,GAAA;QACzB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;KAC7D;AAED,IAAA,IAAI,uBAAuB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;KACrE;EACF;AAnIY,iBAAiB,GAAA,UAAA,CAAA;AAX7B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACnD,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,iBAAiB,CAmI7B;;AC7IM,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,SAAS,CAAA;EAGvD;AAHY,yBAAyB,GAAA,UAAA,CAAA;AANrC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,iBAAiB,CAAC;AACpC,YAAA,cAAc,EAAE,WAAW,CAAC,iBAAiB,CAAC;AAC/C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,yBAAyB,CAGrC;;ACFK,MAAO,eAAgB,SAAQ,WAAW,CAAA;IAC9C,WACY,CAAA,UAAsB,EACtB,aAA4B,EAAA;AAEtC,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAHvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAGvC;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iCAAA,EAAoC,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAC/G,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iCAAA,EAAoC,MAAM,CAAkB,gBAAA,CAAA,CAAC,CAAC,IAAI,CAC9H,GAAG,CAAC,MAAM,IAAI,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC,CACrD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iCAAA,EAAoC,MAAM,CAAkB,gBAAA,CAAA,CAChG,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CACnE,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iCAAA,EAAoC,MAAM,CAAQ,MAAA,CAAA,CAAC,CAAC,IAAI,CAC9H,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAC/D,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,MAA+B,EAAA;AACpE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAoC,iCAAA,EAAA,MAAM,iBAAiB,EAAE;YACzH,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;AACjD,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,mBAAmB,CAAC,MAAc,EAAE,MAA+B,EAAE,IAAqC,EAAA;AAC9G,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAoC,iCAAA,EAAA,MAAM,yBAAyB,EAAE;AACjI,YAAA,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC;AAC/E,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;;4GA9CU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADH,MAAM,EAAA,CAAA,CAAA;2FAClB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ICNpB,qBAqBX;AArBD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,oBAAA,CAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,oBAAA,CAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,oBAAA,CAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,oBAAA,CAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,oBAAA,CAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,oBAAA,CAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,oBAAA,CAAA,oBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAoB,CAAA;AACpB,IAAA,oBAAA,CAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,oBAAA,CAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,oBAAA,CAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,oBAAA,CAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,oBAAA,CAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,oBAAA,CAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,oBAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,oBAAA,CAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,oBAAA,CAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EArBW,oBAAoB,KAApB,oBAAoB,GAqB/B,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,WAAW,CAAA;AAAzC,IAAA,WAAA,GAAA;;QAWL,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;KAuCf;AAjCC,IAAA,OAAO,CAAC,KAAsB,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5C;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;AACzC,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KACpF;IAED,WAAW,GAAA;AACT,QAAA,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAClG;AAED,IAAA,OAAO,CAAC,GAAoB,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AACxD,YAAA,OAAO,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC7B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;KACjC;IAED,UAAU,GAAA;QACR,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,CAAC,WAAW,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAChI;EACF;AAlDY,eAAe,GAAA,UAAA,CAAA;AAN3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,OAAO,EAAE,SAAS,CAAC,oBAAoB,CAAC;AACzC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAkD3B;;AC/EM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,iBAAiB,CAAA;AA0B1D,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC5G;AAGD,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACnC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KAC7D;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KAC9D;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC3F;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC5C,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;KACtE;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC3F;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC3F;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACrC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;KAC/D;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACnD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;KACvC;EACF;AAjGY,qBAAqB,GAAA,UAAA,CAAA;AADjC,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,qBAAqB,CAiGjC;;ACjFM,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,aAAa,CAAA;AAmDlD,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;AAC/C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;AACzD,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KAChF;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;KAC1D;EACF;AA/DY,iBAAiB,GAAA,UAAA,CAAA;AAX7B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACnD,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,iBAAiB,CA+D7B;;ACzEM,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,SAAS,CAAA;EAGvD;AAHY,yBAAyB,GAAA,UAAA,CAAA;AANrC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,iBAAiB,CAAC;AACpC,YAAA,cAAc,EAAE,WAAW,CAAC,iBAAiB,CAAC;AAC/C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,yBAAyB,CAGrC;;ACFK,MAAO,eAAgB,SAAQ,WAAW,CAAA;IAC9C,WACY,CAAA,UAAsB,EACtB,aAA4B,EAAA;AAEtC,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAHvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAGvC;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iCAAA,EAAoC,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAC/G,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iCAAA,EAAoC,MAAM,CAAkB,gBAAA,CAAA,CAAC,CAAC,IAAI,CAC9H,GAAG,CAAC,MAAM,IAAI,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC,CACrD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iCAAA,EAAoC,MAAM,CAAkB,gBAAA,CAAA,CAChG,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CACnE,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iCAAA,EAAoC,MAAM,CAAQ,MAAA,CAAA,CAAC,CAAC,IAAI,CAC9H,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7D,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,MAA+B,EAAA;AACpE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAoC,iCAAA,EAAA,MAAM,iBAAiB,EAAE;YACzH,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;AACjD,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,mBAAmB,CAAC,MAAc,EAAE,MAA+B,EAAE,IAAqC,EAAA;AAC9G,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAoC,iCAAA,EAAA,MAAM,yBAAyB,EAAE;AACjI,YAAA,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC;AAC/E,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;;4GA9CU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADH,MAAM,EAAA,CAAA,CAAA;2FAClB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACCzB,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,SAAS,CAAA;EAO5C;AAPY,cAAc,GAAA,UAAA,CAAA;AAP1B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;AAC1B,YAAA,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;AACzB,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,cAAc,CAO1B;;ACfM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,SAAS,CAAA;EAKnD;AALY,qBAAqB,GAAA,UAAA,CAAA;AADjC,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,qBAAqB,CAKjC,CAAA;AAOM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAA;EAUhD;AAVY,kBAAkB,GAAA,UAAA,CAAA;AAL9B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;AACtD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,kBAAkB,CAU9B;;ICvBW,wBAIX;AAJD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,uBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,uBAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,uBAAA,CAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,GAIlC,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAA;EAM7C;AANY,eAAe,GAAA,UAAA,CAAA;AAN3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS,CAAC,uBAAuB,CAAC;AAC3C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAM3B;;ACAM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,aAAa,CAAA;AAyCpD,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;KAC1D;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC;KAC5F;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,CAAC;KAC3G;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;KACrG;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC;KACzF;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;KACzF;EACF;AAhEY,mBAAmB,GAAA,UAAA,CAAA;AAX/B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACnD,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,mBAAmB,CAgE/B;;AC1EM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,SAAS,CAAA;AAiBhD,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;KACrE;EACF;AAvBY,mBAAmB,GAAA,UAAA,CAAA;AAN/B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC;AACpC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,mBAAmB,CAuB/B;;IC7BW,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAYM,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS,CAAA;EAcxC;AAdY,UAAU,GAAA,UAAA,CAAA;AAVtB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;AAC1B,YAAA,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,YAAA,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC;AAChC,YAAA,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC/C,YAAA,IAAI,EAAE,SAAS,CAAC,cAAc,CAAC;AAChC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,UAAU,CActB;;IC3BW,qBAIX;AAJD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;AACf,IAAA,oBAAA,CAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,oBAAA,CAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,GAI/B,EAAA,CAAA,CAAA,CAAA;AAYM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAA;EAO7C;AAPY,eAAe,GAAA,UAAA,CAAA;AAV3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC;AAC7B,YAAA,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;AAC3B,YAAA,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC/C,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,KAAK,EAAE,SAAS,CAAC,oBAAoB,CAAC;AACvC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAO3B;;ACzBD,IAAY,eAIX,CAAA;AAJD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,eAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,eAAA,CAAA,eAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACd,CAAC,EAJW,eAAe,KAAf,eAAe,GAI1B,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,qBASX,CAAA;AATD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,qBAAA,CAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,qBAAA,CAAA,qBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;AACjB,CAAC,EATW,qBAAqB,KAArB,qBAAqB,GAShC,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS,CAAA;IAMvC,IAAI,IAAI,CAAC,KAA6B,EAAA;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;KACrC;AAED,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;CACF,CAAA;AAbY,UAAU,GAAA,UAAA,CAAA;AANtB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AACzD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,UAAU,CAatB;;ACpBM,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,aAAa,CAAA;AAgF/C,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;AAC/C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;AACzD,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KAChF;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC1E;EACF;AA5FY,cAAc,GAAA,UAAA,CAAA;AAX1B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACnD,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,cAAc,CA4F1B;;IC9GW,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA,CAAA;AAOM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,SAAS,CAAA;EAMzC;AANY,WAAW,GAAA,UAAA,CAAA;AALvB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,SAAS,CAAC,gBAAgB,CAAC;AAClC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,WAAW,CAMvB;;ACNM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAA;EAO7C;AAPY,eAAe,GAAA,UAAA,CAAA;AAP3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC;AACrC,YAAA,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC;AAC7C,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAO3B;;ACCM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,aAAa,CAAA;AAoRnD,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACtG;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;AAC/C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;AACzD,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KAChF;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;AACrD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KAChF;AAED,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;KACrE;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;KAC1D;EACF;AAxTY,kBAAkB,GAAA,UAAA,CAAA;AAX9B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACnD,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,kBAAkB,CAwT9B;;ICzUW,qBAGX;AAHD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,oBAAA,CAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACT,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,GAG/B,EAAA,CAAA,CAAA,CAAA;AAEK,MAAO,uBAAwB,SAAQ,SAAS,CAAA;AAErD,CAAA;AAQM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAA;EAK7C;AALY,eAAe,GAAA,UAAA,CAAA;AAN3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,SAAS,CAAC,oBAAoB,CAAC;AACrC,YAAA,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACtD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAK3B;;MCsFY,aAAa,CAAA;IACxB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;IAED,MAAM,OAAO,CAAC,YAAoB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,GAAG,CAAC;AACjG,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,UAAU,CAAC,QAAgB,EAAE,KAAa,EAAA;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAgB,aAAA,EAAA,KAAK,GAAG,CAAC;AAC9G,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,oBAAoB,CAAC,kBAA0B,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA6B,0BAAA,EAAA,kBAAkB,eAAe,CAClG;aACE,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7D,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,OAAO,CAAC,YAAoB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,QAAQ,CAAC;aAChH,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjE,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,SAAS,CACb,YAAoB,EAAE,IAAY,EAAE,IAAY,EAChD,OAAoC,EAAA;AAEpC,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aACvD,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,gBAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,aAAA;YACD,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC/C,aAAA;YACD,IAAI,OAAO,CAAC,cAAc,EAAE;AAC1B,gBAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3E,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAA,QAAA,CAAU,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC;AACjJ,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK;YACnB,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AACzD,SAAA,CAAC,CAAC,CAAC;AACH,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,mBAAmB,CAAC,YAAoB,EAAA;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAU,QAAA,CAAA,CAAC,CAAC,IAAI,CACxH,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CACzD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,mBAAmB,CAAC,YAAoB,EAAA;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAU,QAAA,CAAA,CAAC,CAAC,IAAI,CACxH,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CACzD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,sBAAsB,CAAC,YAAoB,EAAA;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAa,WAAA,CAAA,CAAC,CAAC,IAAI,CAC3H,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5D,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,UAAU,CAAC,YAAoB,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAW,SAAA,CAAA,CAAC,CAAC,IAAI,CACzH,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CACrD,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,eAAe,CAAC,SAAiB,EAAE,aAAsB,EAAA;AAC7D,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,aAAa,EAAE;YACjB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;AACtD,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,2BAAA,EAA8B,SAAS,CAAA,OAAA,CAAS,EACtH,EAAC,MAAM,EAAC,CACT,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAClD,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,cAAc,CAAC,YAAoB,EAAE,OAAgB,EAAA;AACzD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChE,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,gBAAgB,EACrF,EAAC,MAAM,EAAC,CACT;AACE,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,QAAQ,CACZ,YAAoB,EAAE,IAAY,EAAE,IAAY,EAChD,OAAA,GAAkC,EAAE,EAAA;AAEpC,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAA,OAAA,CAAS,EAC9E,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B;AACE,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK;YACnB,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAA,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;KACpB;IAED,MAAM,aAAa,CAAC,YAAoB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,CAAe,aAAA,CAAA,EACpF,EAAC,OAAO,EAAE,UAAU,EAAC,CACtB,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAC1C,IAAI,EAAE,MAAM,CAAC,IAAI;AAClB,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,SAAS,CAAC,YAAoB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,UAAU,CAAC;aAClH,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClE,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,QAAQ,CAAC,YAAoB,EAAE,OAAgB,EAAE,KAAe,EAAA;AACpE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrD,SAAA;AACD,QAAA,IAAI,KAAK,EAAE;YACT,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACnC,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,SAAS,EAC9E,EAAC,MAAM,EAAC,CACT;aACE,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjE,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,aAAa,CAAC,YAAoB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,eAAe,CAAC;aACvH,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,oBAAoB,CAAC,YAAoB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,gBAAgB,CAAC;aACxH,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClE,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,WAAW,CAAC,gBAAwB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA2B,wBAAA,EAAA,gBAAgB,GAAG,CAAC;AAC1G,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,WAAW,CAAC,MAAc,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgC,6BAAA,EAAA,MAAM,GAAG,CAAC;AACrG,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,YAAY,CAAC,gBAAwB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgC,6BAAA,EAAA,gBAAgB,SAAS,CAAC;aAC/H,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,aAAa,CAAC,YAAoB,EAAE,MAAsB,EAAE,OAAiB,EAAA;AACjF,QAAA,IAAI,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC3D,QAAA,IAAI,OAAO,EAAE;YACX,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,cAAc,EAAE;AAC9G,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,6BAA6B,CAAC,OAAgC,EAAA;AAClE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,qCAAA,CAAuC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,CACnH,GAAG,CAAC,CAAC,MAA8B,KAAI;YACrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,aAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,6BAA6B,CAAC,OAAgC,EAAA;AAClE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,qCAAA,CAAuC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,CACnH,GAAG,CAAC,CAAC,MAA8B,KAAI;YACrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,aAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,yBAAyB,CAAC,OAAgC,EAAA;AAC9D,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iCAAA,CAAmC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,CAC/G,GAAG,CAAC,CAAC,MAA8B,KAAI;YACrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,aAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,2BAA2B,CAAC,OAAgC,EAAA;AAChE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,CAAqC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,CACjH,GAAG,CAAC,CAAC,MAA8B,KAAI;YACrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,aAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,2BAA2B,CAAC,OAAgC,EAAA;AAChE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,CAAqC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,CACjH,GAAG,CAAC,CAAC,MAA8B,KAAI;YACrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,aAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,4BAA4B,CAAC,OAAgC,EAAA;AACjE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,oCAAA,CAAsC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,CAClH,GAAG,CAAC,CAAC,MAA8B,KAAI;YACrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,aAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,sBAAsB,CAAC,OAA0B,EAAA;AACrD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA+B,6BAAA,CAAA,EAClE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC7D,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,sBAAsB,CAAC,OAA0B,EAAA;AACrD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA+B,6BAAA,CAAA,EAClE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC7D,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,kBAAkB,CAAC,OAA0B,EAAA;AACjD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA2B,yBAAA,CAAA,EAC9D,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AACzD,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,oBAAoB,CAAC,OAA0B,EAAA;AACnD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA6B,2BAAA,CAAA,EAChE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC3D,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,oBAAoB,CAAC,OAA0B,EAAA;AACnD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA6B,2BAAA,CAAA,EAChE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC3D,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,iBAAiB,CAAC,OAA0B,EAAA;AAChD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA0B,wBAAA,CAAA,EAC7D,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;AACxD,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,qBAAqB,CAAC,OAA0B,EAAA;AACpD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA8B,4BAAA,CAAA,EACjE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC5D,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,sBAAsB,CAAC,gBAAwB,EAAA;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,wBAAA,EAA2B,gBAAgB,CAAS,OAAA,CAAA,CACxF,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAChE,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,YAAY,CAAC,YAAoB,EAAA;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,CAAc,YAAA,CAAA,CACpF,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,IAAS,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CACtF,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,4BAA4B,CAAC,gBAAwB,EAAA;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,wBAAA,EAA2B,gBAAgB,CAAe,aAAA,CAAA,CAC9F,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CACxD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,4BAA4B,CAAC,oBAA4B,EAAA;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,6BAAA,EAAgC,oBAAoB,CAAe,aAAA,CAAA,CACvG,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CACxD,CAAC,SAAS,EAAE,CAAC;KACf;;0GA9ZU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADD,MAAM,EAAA,CAAA,CAAA;2FAClB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;AAkahB,SAAA,iBAAiB,CAAC,OAA+B,EAAE,MAAkB,EAAA;IACnF,IAAI,OAAO,CAAC,aAAa,EAAE;AACzB,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,KAAA;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE;AAC7B,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClF,KAAA;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE;AAC7B,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClF,KAAA;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE;AAC7B,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClF,KAAA;IACD,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnE,KAAA;IACD,IAAI,OAAO,CAAC,cAAc,EAAE;AAC1B,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3E,KAAA;IACD,IAAI,OAAO,CAAC,YAAY,EAAE;AACxB,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvE,KAAA;IACD,IAAI,OAAO,CAAC,YAAY,EAAE;AACxB,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvE,KAAA;IACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,KAAA;IACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,KAAA;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,KAAA;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE;AAC7B,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClF,KAAA;IACD,IAAI,OAAO,CAAC,cAAc,EAAE;AAC1B,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5E,KAAA;IACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,KAAA;IACD,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7C,KAAA;IACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE;AACjE,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAClE,KAAA;AACD,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,qBAAqB,CAAC,OAAyB,EAAE,MAAkB,EAAA;IACjF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACtC,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AAChB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,SAAA;AACF,KAAA;AAED,IAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;AAClC,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAC/D,KAAA;IAED,IAAI,OAAO,CAAC,cAAc,EAAE;AAC1B,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,KAAA;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE;AACnE,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACnE,KAAA;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEe,SAAA,4BAA4B,CAAC,OAAgC,EAAE,MAAkB,EAAA;IAC/F,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACtC,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AAChB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,SAAA;AACF,KAAA;AAED,IAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;AAClC,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAC/D,KAAA;IAED,IAAI,OAAO,CAAC,cAAc,EAAE;AAC1B,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE,KAAA;IACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,KAAA;AACD,IAAA,OAAO,MAAM,CAAC;AAChB;;ACnmBO,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS,CAAA;EAM3C;AANY,aAAa,GAAA,UAAA,CAAA;AALzB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;AAC3B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,aAAa,CAMzB;;ICXW,eAIX;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAAS,CAAA;EAO1C;AAPY,YAAY,GAAA,UAAA,CAAA;AANxB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;AAC1B,YAAA,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAC;AACpC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,YAAY,CAOxB;;ACdM,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,SAAS,CAAA;EAG5C;AAHY,cAAc,GAAA,UAAA,CAAA;AAL1B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,cAAc,CAG1B;;ACDM,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS,CAAA;AAI1C,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AAC5C,aAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;KAC5D;EACF;AARY,aAAa,GAAA,UAAA,CAAA;AANzB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnC,YAAA,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACpD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,aAAa,CAQzB;;ACfM,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,SAAS,CAAA;CAG9C,CAAA;AAHY,gBAAgB,GAAA,UAAA,CAAA;AAD5B,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,gBAAgB,CAG5B;;MCiBY,SAAS,CAAA;IACpB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;IAED,MAAM,UAAU,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,KAAK,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAC5F,GAAG,CAAC,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAClC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,WAAW,CAAC,MAAc,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,yBAAA,EAA4B,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CACvG,GAAG,CAAC,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAClC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,oBAAoB,CAAC,QAAgB,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAsB,oBAAA,CAAA,CAAC,CAAC,IAAI,CAC5H,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAClE,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,cAAc,CAAC,QAAgB,EAAE,OAA+B,EAAA;AACpE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,gBAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAA,aAAA,CAAe,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,CAC/H,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CACxD,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,uBAAuB,CAC3B,QAAgB,EAChB,OAA+B,EAC/B,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,GAAG,EAAA;AAEV,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE;AAC1B,aAAA,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC5B,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,gBAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,QAAQ,CAAA,aAAA,CAAe,EAC5E,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpD,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,SAAS,CACb,QAAgB,EAAE,IAAY,EAAE,IAAY,EAC5C,OAAoC,EAAA;AAEpC,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aACvD,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,gBAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,aAAA;YACD,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC/C,aAAA;YACD,IAAI,OAAO,CAAC,cAAc,EAAE;AAC1B,gBAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3E,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,QAAQ,CAAA,QAAA,CAAU,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC,IAAI,CAC/I,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AACzD,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,oBAAoB,CAAC,QAAgB,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAsB,oBAAA,CAAA,CAAC,CAAC,IAAI,CAC5H,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9D,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,QAAQ,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAY,EAAE,OAA+B,EAAA;AAC1F,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC5C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,QAAQ,CAAA,OAAA,CAAS,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC,IAAI,CAC9I,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,UAAU,CACd,QAAgB,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EACrC,SAAmB,EAAE,OAAkB,EAAA;AAEvC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC5B,aAAA,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,aAAA,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,aAAA,GAAG,CAAC,YAAY,EAAE,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC;AACvC,aAAA,GAAG,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACpD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAkB,eAAA,EAAA,QAAQ,sBAAsB,EAAE;YACxH,MAAM;AACN,YAAA,OAAO,EAAE,UAAU;SACpB,CAAC;AACC,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK;YACnB,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC1D,SAAA,CAAC,CAAC,CAAC;AACH,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,WAAW,CAAC,QAAgB,EAAA;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAY,UAAA,CAAA,CAAC,CAAC,IAAI,CAClH,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3D,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,UAAU,CAAC,QAAgB,EAAE,QAAyB,EAAA;QAC1D,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;QAExF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAA,SAAA,CAAW,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC,IAAI,CAC3H,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1D,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,SAAS,CAAC,QAAgB,EAAA;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAU,QAAA,CAAA,CAAC,CAAC,IAAI,CAChH,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CACzD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,kBAAkB,CAAC,QAAgB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAkB,eAAA,EAAA,QAAQ,oBAAoB,CAAC;AAC1G,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,YAAY,CAAC,QAAgB,EAAA;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAa,WAAA,CAAA,CAAC,CAAC,IAAI,CACnH,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5D,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,mBAAmB,CAAC,QAAgB,EAAE,KAAa,EAAA;AACvD,QAAA,MAAM,MAAM,GAAG,CAAC,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAEtD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,QAAQ,CAAA,sBAAA,CAAwB,EAAE,EAAC,MAAM,EAAC,CACzH,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CACzC,CAAC,SAAS,EAAE,CAAC;KACf;;sGArKU,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAT,SAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,cADG,MAAM,EAAA,CAAA,CAAA;2FAClB,SAAS,EAAA,UAAA,EAAA,CAAA;kBADrB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCdnB,aAAa,CAAA;IACxB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;AAED,IAAA,MAAM,iBAAiB,CACrB,QAAgB,EAAE,IAAY,EAAE,IAAY,EAC5C,IAAuB,GAAA,cAAc,CAAC,IAAI,EAAE,QAAiB,EAAA;AAE7D,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvD,aAAA,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC5B,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpD,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAA,MAAA,CAAQ,EACrE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B;AACE,aAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK;YACrB,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC5C,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACtD,SAAA,CAAC,CAAC,CAAC;AACH,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,iBAAiB,CAAC,QAAgB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAkB,eAAA,EAAA,QAAQ,qBAAqB,CAAC;AACrH,aAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3F,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,qBAAqB,CAAC,QAAgB,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAkB,eAAA,EAAA,QAAQ,qBAAqB,CAAC;aACrH,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjE,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,WAAW,CAAC,MAAc,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAuB,oBAAA,EAAA,MAAM,GAAG,CAAC;AAC5F,aAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,qBAAqB,CAAC,YAAoB,EAAA;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,CAAQ,MAAA,CAAA,EAC7E,EAAC,OAAO,EAAE,UAAU,EAAC,CACtB;AACE,aAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK;YACrB,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC5C,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACtD,SAAA,CAAC,CAAC,CAAC;AACH,aAAA,SAAS,EAAE,CAAC;KAChB;;0GAxDU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADD,MAAM,EAAA,CAAA,CAAA;2FAClB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCCnB,eAAe,CAAA;IAC1B,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;AAED,IAAA,OAAO,CAAC,cAAsB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,sBAAA,EAAyB,cAAc,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAC5G,GAAG,CAAC,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CACpC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,kBAAkB,CAAC,cAAsB,EAAE,QAAiB,EAAA;AAC1D,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,sBAAA,EAAyB,cAAc,CAAA,kBAAA,CAAoB,EAC9F,EAAC,MAAM,EAAC,CACT,CAAC,IAAI,CACJ,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CACpE,CAAC,SAAS,EAAE,CAAC;KACf;;4GAxBU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADH,MAAM,EAAA,CAAA,CAAA;2FAClB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCcnB,QAAQ,CAAA;IACnB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;IAED,MAAM,QAAQ,CAAC,OAAe,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,cAAA,EAAiB,OAAO,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAC7F,GAAG,CAAC,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CACrC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,sBAAsB,CAC1B,YAAoB,EAAE,IAAY,EAAE,IAAY,EAChD,OAA0B,EAAA;QAE1B,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxF,QAAA,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,CAAc,YAAA,CAAA,EACnF,EAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,QAAQ,IAAG;YACb,OAAO;gBACL,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC5C,gBAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;aAChD,CAAC;AACJ,SAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,kBAAkB,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAY,EAAE,OAA0B,EAAA;QAC/F,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxF,QAAA,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAkB,eAAA,EAAA,QAAQ,CAAc,YAAA,CAAA,EAC3E,EAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,QAAQ,IAAG;YACb,OAAO;gBACL,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC5C,gBAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;aAChD,CAAC;AACJ,SAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,cAAc,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAY,EAAE,OAAA,GAAwB,EAAE,EAAA;QAC3F,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxF,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AACtD,SAAA;QACD,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3C,SAAA;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,SAAA;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,YAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAA,OAAA,CAAS,EACtE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B;AACE,aAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK;YACrB,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC5C,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;KACpB;IAED,MAAM,kBAAkB,CAAC,YAAoB,EAAE,IAAY,EAAE,IAAY,EAAE,OAAA,GAAwB,EAAE,EAAA;QACnG,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxF,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AACtD,SAAA;QACD,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3C,SAAA;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAA,OAAA,CAAS,EAC9E,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B;AACE,aAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK;YACrB,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC5C,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;KACpB;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CACjG,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,YAAY,CAAC,MAAc,EAAA;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,wBAAA,EAA2B,MAAM,CAAmB,iBAAA,CAAA,CAAC,CAAC,IAAI,CAChI,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CACvD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,SAAS,CAAC,QAAkB,EAAA;QAChC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAoB,kBAAA,CAAA,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AACjG,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,aAAa,CAAC,OAAe,EAAA;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAiB,cAAA,EAAA,OAAO,CAAY,UAAA,CAAA,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC;AACxH,aAAA,SAAS,EAAE,CAAC;KAChB;;qGArHU,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAR,QAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAQ,cADI,MAAM,EAAA,CAAA,CAAA;2FAClB,QAAQ,EAAA,UAAA,EAAA,CAAA;kBADpB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;AAyHhB,SAAA,qBAAqB,CAAC,OAAyB,EAAE,MAAkB,EAAA;AACjF,IAAA,IAAI,OAAO,EAAE;AACX,QAAA,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,cAAc,EAAE;AAC1B,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3E,SAAA;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,SAAA;QACD,IAAI,OAAO,CAAC,iBAAiB,EAAE;AAC7B,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClF,SAAA;QACD,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjE,SAAA;QACD,IAAI,OAAO,CAAC,YAAY,EAAE;AACxB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvE,SAAA;QACD,IAAI,OAAO,CAAC,YAAY,EAAE;AACxB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvE,SAAA;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,SAAA;QACD,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnE,SAAA;AACF,KAAA;AACD,IAAA,OAAO,MAAM,CAAC;AAChB;;ICvKY,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,SAAS,CAAA;EAGzC;AAHY,WAAW,GAAA,UAAA,CAAA;AADvB,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,WAAW,CAGvB,CAAA;AAOM,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS,CAAA;EAKxC;AALY,UAAU,GAAA,UAAA,CAAA;AALtB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACxB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,UAAU,CAKtB,CAAA;AAWM,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,SAAS,CAAA;AAA5B,IAAA,WAAA,GAAA;;QAaL,IAAmB,CAAA,mBAAA,GAA8C,EAAE,CAAC;KA4CrE;IA1CC,IAAI,QAAQ,CAAC,KAAoB,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,0BAA0B,EAAE,CAAC;AACnC,SAAA;KACF;AACD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAI,OAAO,CAAC,KAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,0BAA0B,EAAE,CAAC;AACnC,SAAA;KACF;AACD,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAED,0BAA0B,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACzB,OAAO;AACR,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACjD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;YAC1D,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACzC,gBAAA,OAAO,GAAG,CAAC;AACZ,aAAA;AACD,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACzB,gBAAA,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1B,aAAA;AACD,YAAA,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACvB,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;AACP,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK;AACrD,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;AAChH,SAAA,CAAC,CAAC;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACnD;EACF;AAzDY,IAAI,GAAA,UAAA,CAAA;AAThB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC;AAC/B,YAAA,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC;AAClC,YAAA,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;AACzB,YAAA,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC;AAChC,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,IAAI,CAyDhB;;ACjFM,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS,CAAA;EAcxC;AAdY,UAAU,GAAA,UAAA,CAAA;AARtB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,SAAS,EAAE,aAAa;AACxB,YAAA,QAAQ,EAAE,aAAa;AACxB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,UAAU,CActB;;ICtBW,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA,CAAA;AASM,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS,CAAA;EAMxC;AANY,UAAU,GAAA,UAAA,CAAA;AAPtB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC;AACpC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,UAAU,CAMtB;;ICtBW,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACX,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA;;ACDY,MAAA,yBAAyB,GAAG;AACvC,IAAA,CAAC,cAAc,CAAC,QAAQ,GAAG,YAAY;AACvC,IAAA,CAAC,cAAc,CAAC,KAAK,GAAG,QAAQ;;;ACQ3B,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,SAAS,CAAA;AAUtC,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,cAAc,CAAC,KAAK,EAAE;YAC3C,OAAO,IAAI,CAAC,eAAe,CAAC;AAC7B,SAAA;AACD,QAAA,OAAO,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClD;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;KACvD;EACF;AApBY,SAAS,GAAA,UAAA,CAAA;AAPrB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC;AACpC,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,aAAa;AACxB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,SAAS,CAoBrB;;IC9BW,wBAGX;AAHD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,uBAAA,CAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACd,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,GAGlC,EAAA,CAAA,CAAA,CAAA;AAOM,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAA;EAK7C;AALY,eAAe,GAAA,UAAA,CAAA;AAL3B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,MAAM,EAAE,SAAS,CAAC,uBAAuB,CAAC;AAC3C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,eAAe,CAK3B;;ACTM,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,SAAS,CAAA;EAMtD;AANY,wBAAwB,GAAA,UAAA,CAAA;AALpC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAChC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,wBAAwB,CAMpC;;ACFM,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,SAAS,CAAA;AAU7C,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,KAAK,IAAI,CAAC,UAAU,KAAK,KAAK,IAAI,IAAI,CAAC,kBAAkB,KAAK,KAAK,CAAC;KACzI;EACF;AAbY,gBAAgB,GAAA,UAAA,CAAA;AAP5B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;AACnC,YAAA,WAAW,EAAE,WAAW,CAAC,wBAAwB,CAAC;AACnD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,gBAAgB,CAa5B;;ICXW,iBA6DX;AA7DD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;AAChB,IAAA,gBAAA,CAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,gBAAA,CAAA,gBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,4BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,4BAA0B,CAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,4BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,4BAA0B,CAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,4BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,4BAA0B,CAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,4BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,4BAA0B,CAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAoB,CAAA;AACpB,IAAA,gBAAA,CAAA,gBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAoB,CAAA;AACpB,IAAA,gBAAA,CAAA,gBAAA,CAAA,iCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iCAA+B,CAAA;AAC/B,IAAA,gBAAA,CAAA,gBAAA,CAAA,iCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iCAA+B,CAAA;AAC/B,IAAA,gBAAA,CAAA,gBAAA,CAAA,0BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,0BAAwB,CAAA;AACxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,4BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,4BAA0B,CAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,4BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,4BAA0B,CAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AAEd,IAAA,gBAAA,CAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,gBAAA,CAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,gBAAA,CAAA,gBAAA,CAAA,sBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,sBAAoB,CAAA;AACpB,IAAA,gBAAA,CAAA,gBAAA,CAAA,sBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,sBAAoB,CAAA;AACpB,IAAA,gBAAA,CAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,gBAAA,CAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,gBAAA,CAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,gBAAA,CAAA,gBAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;AAEjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,gBAAA,CAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AAEX,IAAA,gBAAA,CAAA,gBAAA,CAAA,oBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,gBAAA,CAAA,gBAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,gBAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,gBAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;AAEjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,oBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,gBAAA,CAAA,gBAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,0BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,0BAAwB,CAAA;AACxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,0BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,0BAAwB,CAAA;AACxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,yBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,yBAAuB,CAAA;AACvB,IAAA,gBAAA,CAAA,gBAAA,CAAA,mCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mCAAiC,CAAA;AACjC,IAAA,gBAAA,CAAA,gBAAA,CAAA,mCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mCAAiC,CAAA;AACjC,IAAA,gBAAA,CAAA,gBAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,gBAAA,CAAA,gBAAA,CAAA,mCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mCAAiC,CAAA;AACjC,IAAA,gBAAA,CAAA,gBAAA,CAAA,mCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mCAAiC,CAAA;AACjC,IAAA,gBAAA,CAAA,gBAAA,CAAA,gCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gCAA8B,CAAA;AAC9B,IAAA,gBAAA,CAAA,gBAAA,CAAA,yBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,yBAAuB,CAAA;AACvB,IAAA,gBAAA,CAAA,gBAAA,CAAA,uCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uCAAqC,CAAA;AACrC,IAAA,gBAAA,CAAA,gBAAA,CAAA,uCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uCAAqC,CAAA;AACrC,IAAA,gBAAA,CAAA,gBAAA,CAAA,mDAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mDAAiD,CAAA;AACjD,IAAA,gBAAA,CAAA,gBAAA,CAAA,mDAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mDAAiD,CAAA;AACjD,IAAA,gBAAA,CAAA,gBAAA,CAAA,yBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,yBAAuB,CAAA;AAEvB,IAAA,gBAAA,CAAA,gBAAA,CAAA,+BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,+BAA6B,CAAA;AAC7B,IAAA,gBAAA,CAAA,gBAAA,CAAA,gCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gCAA8B,CAAA;AAC9B,IAAA,gBAAA,CAAA,gBAAA,CAAA,+BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,+BAA6B,CAAA;AAC7B,IAAA,gBAAA,CAAA,gBAAA,CAAA,+BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,+BAA6B,CAAA;AAC7B,IAAA,gBAAA,CAAA,gBAAA,CAAA,6BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,6BAA2B,CAAA;AAC3B,IAAA,gBAAA,CAAA,gBAAA,CAAA,6BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,6BAA2B,CAAA;AAC3B,IAAA,gBAAA,CAAA,gBAAA,CAAA,iCAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iCAA+B,CAAA;AAC/B,IAAA,gBAAA,CAAA,gBAAA,CAAA,2BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,2BAAyB,CAAA;AAC3B,CAAC,EA7DW,gBAAgB,KAAhB,gBAAgB,GA6D3B,EAAA,CAAA,CAAA,CAAA;IAEW,wBAGX;AAHD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,uBAAA,CAAA,uBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,GAGlC,EAAA,CAAA,CAAA,CAAA;AAqBM,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAAS,CAAA;AAqBzC,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC;KACb;EACF;AAxBY,YAAY,GAAA,UAAA,CAAA;AAnBxB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,SAAS,CAAC,gBAAgB,CAAC;AAClC,YAAA,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC;AAC5B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;AACnC,YAAA,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;AACnC,YAAA,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC;AACjC,YAAA,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC;AAC7C,YAAA,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;AACnC,YAAA,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC;AAC/C,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC3C,YAAA,OAAO,EAAE,SAAS,CAAC,uBAAuB,CAAC;AAC3C,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,YAAY,CAwBxB;;IC3HW,uBAIX;AAJD,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,sBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACP,IAAA,sBAAA,CAAA,sBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,sBAAA,CAAA,sBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,GAIjC,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,SAAS,CAAA;EAMlD;AANY,oBAAoB,GAAA,UAAA,CAAA;AANhC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,SAAS,CAAC,sBAAsB,CAAC;AACxC,YAAA,OAAO,EAAE,SAAS,CAAC,sBAAsB,CAAC;AAC3C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,oBAAoB,CAMhC;;MCLY,mBAAmB,CAAA;IAG9B,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAClC;AAEJ,IAAA,MAAM,QAAQ,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAG,EAAA,IAAI,CAAC,MAAM,sBAAsB,CAAC;aAC5E,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,OAAO,CAAC,IAAY,EAAE,IAAY,EAAE,UAA+B,EAAE,EAAA;AACzE,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE;AAC1B,aAAA,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC5B,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACtC,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,cAAA,CAAgB,EACjE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B;AACE,aAAA,IAAI,CACH,GAAG,CAAC,QAAQ,KAAK;YACf,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC5C,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AACxD,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACjB;AAED,IAAA,MAAM,UAAU,CAAC,cAAsB,EAAE,MAAe,EAAA;QACtD,OAAO,IAAI,CAAC,UAAU;aACnB,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAiB,cAAA,EAAA,cAAc,UAAU,EAAE,EAAC,MAAM,EAAC,CAAC;AAC1G,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,aAAa,GAAA;QACjB,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAW,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAuB,qBAAA,CAAA,EAAE,EAAE,CAAC;aAC5F,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3D,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,uBAAuB,GAAA;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,yBAAyB,CAAC;AACnG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,0BAA0B,CAAC,IAA0B,EAAA;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAG,EAAA,IAAI,CAAC,MAAM,CAAyB,uBAAA,CAAA,EAC1E,IAAI,CAAC,IAAI,EAAE,CACZ;AACE,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,aAAA,SAAS,EAAE,CAAC;KAChB;;gHA9DU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADP,MAAM,EAAA,CAAA,CAAA;2FAClB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACV1B,MAAO,eAAgB,SAAQ,mBAAmB,CAAA;AADxD,IAAA,WAAA,GAAA;;QAEY,IAAM,CAAA,MAAA,GAAG,SAAS,CAAC;AAC9B,KAAA;;4GAFY,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADH,MAAM,EAAA,CAAA,CAAA;2FAClB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACC1B,MAAO,kBAAmB,SAAQ,mBAAmB,CAAA;AAD3D,IAAA,WAAA,GAAA;;QAEY,IAAM,CAAA,MAAA,GAAG,aAAa,CAAC;AAClC,KAAA;;+GAFY,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADN,MAAM,EAAA,CAAA,CAAA;2FAClB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCKnB,YAAY,CAAA;IACvB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAClC;AAEJ,IAAA,MAAM,SAAS,GAAA;QACb,OAAO,IAAI,CAAC,UAAU;aACnB,GAAG,CAAW,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,yBAAA,CAA2B,CAAC;aAC7E,IAAI,CACH,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9C,CAAC,SAAS,EAAE,CAAC;KACjB;AAED,IAAA,MAAM,SAAS,GAAA;QACb,OAAO,IAAI,CAAC,UAAU;aACnB,GAAG,CAAW,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,cAAA,CAAgB,CAAC;aAClE,IAAI,CACH,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/C,CAAC,SAAS,EAAE,CAAC;KACjB;;yGApBU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADA,MAAM,EAAA,CAAA,CAAA;2FAClB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACGzB,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,SAAS,CAAA;EAGpD;AAHY,sBAAsB,GAAA,UAAA,CAAA;AANlC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC;AACjC,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC5C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,sBAAsB,CAGlC;;ACLM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,iBAAiB,CAAA;AA2BvD,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;KACvC;AAED,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;KACnE;AAED,IAAA,IAAI,sBAAsB,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;KAC5E;AAED,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC7D;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;KAC5E;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;KAC3D;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;KACpE;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;KACvF;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;KAClD;EACF;AA/EY,kBAAkB,GAAA,UAAA,CAAA;AAL9B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,kBAAkB,CA+E9B;;ICrFW,mBAUX;AAVD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,kBAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,kBAAA,CAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,kBAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,kBAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,kBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,kBAAA,CAAA,kBAAA,CAAA,wBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,wBAAsB,CAAA;AACtB,IAAA,kBAAA,CAAA,kBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACnB,CAAC,EAVW,kBAAkB,KAAlB,kBAAkB,GAU7B,EAAA,CAAA,CAAA,CAAA;IAEW,mBAWX;AAXD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAa,CAAA;AACb,IAAA,kBAAA,CAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,kBAAA,CAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,kBAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,kBAAA,CAAA,kBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,kBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,kBAAA,CAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,kBAAA,CAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,GAW7B,EAAA,CAAA,CAAA,CAAA;AAQM,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS,CAAA;EAK3C;AALY,aAAa,GAAA,UAAA,CAAA;AANzB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAClD,YAAA,SAAS,EAAE,SAAS,CAAC,kBAAkB,CAAC;AACzC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,aAAa,CAKzB;;ICjCW,kBA6CX;AA7CD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,iBAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACH,IAAA,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,iBAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,iBAAA,CAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,iBAAA,CAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,iBAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,iBAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,iBAAA,CAAA,iBAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,iBAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,iBAAA,CAAA,iBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,iBAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAe,CAAA;;AAGf,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,iBAAA,CAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,iBAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,iBAAA,CAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,iBAAA,CAAA,iBAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAAsB,CAAA;AACtB,IAAA,iBAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EA7CW,iBAAiB,KAAjB,iBAAiB,GA6C5B,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,0BAA0B,GAAG;AACxC,IAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG,CAAC;AAClC,IAAA,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC;AAC1B,IAAA,CAAC,iBAAiB,CAAC,eAAe,GAAG,CAAC;AACtC,IAAA,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC;AACnC,IAAA,CAAC,iBAAiB,CAAC,SAAS,GAAG,CAAC;AAChC,IAAA,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,CAAC;EAC5C;AAEW,MAAA,oBAAoB,GAAG;AAClC,IAAA,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,CAAC,cAAc;AACtH,IAAA,iBAAiB,CAAC,WAAW,EAAE,iBAAiB,CAAC,YAAY;IAC7D,iBAAiB,CAAC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,SAAS;IACtF,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,CAAC,SAAS;AACpF,IAAA,iBAAiB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,WAAW;IACtE,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,SAAS;AACnG,IAAA,iBAAiB,CAAC,WAAW;EAC7B;AAWK,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,WAAW,CAAA;AAAtC,IAAA,WAAA,GAAA;;QAYL,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;KAiDf;AAzCC,IAAA,OAAO,CAAC,KAAmB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5C;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;AACzC,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KACpF;IAED,WAAW,GAAA;QACT,OAAO,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;KAC/D;IAED,WAAW,GAAA;AACT,QAAA,OAAO,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACjD;AAED,IAAA,OAAO,CAAC,GAAiB,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AACxD,YAAA,OAAO,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC7B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;KACjC;IAED,UAAU,GAAA;AACR,QAAA,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KACzF;IAED,UAAU,GAAA;QACR,OAAO,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACpD;EACF;AA7DY,YAAY,GAAA,UAAA,CAAA;AATxB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,OAAO,EAAE,SAAS,CAAC,iBAAiB,CAAC;AACrC,YAAA,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC;AACpC,YAAA,YAAY,EAAE,SAAS,CAAC,kBAAkB,CAAC;AAC3C,YAAA,aAAa,EAAE,SAAS,CAAC,kBAAkB,CAAC;AAC7C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,YAAY,CA6DxB;;ACjIK,MAAO,YAAa,SAAQ,WAAW,CAAA;IAC3C,WACY,CAAA,UAAsB,EACtB,aAA4B,EAAA;AAEtC,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAHvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAGvC;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,8BAAA,EAAiC,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAC5G,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,8BAAA,EAAiC,MAAM,CAAkB,gBAAA,CAAA,CAAC,CAAC,IAAI,CAC3H,GAAG,CAAC,MAAM,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAClD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,8BAAA,EAAiC,MAAM,CAAkB,gBAAA,CAAA,CAAC,CAAC,IAAI,CACrI,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAChE,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,8BAAA,EAAiC,MAAM,CAAQ,MAAA,CAAA,CAAC,CAAC,IAAI,CAC3H,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1D,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,IAAI,CAC7G,GAAG,CAAC,MAAM,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CACzC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAiC,8BAAA,EAAA,MAAM,iBAAiB,EAAE;YACtH,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC;AAChD,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;;yGA3CU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADA,MAAM,EAAA,CAAA,CAAA;2FAClB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACRzB,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAA;EAMhD;AANY,kBAAkB,GAAA,UAAA,CAAA;AAD9B,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,kBAAkB,CAM9B;;ICPW,oBAIX;AAJD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,mBAAA,CAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,mBAAA,CAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,GAI9B,EAAA,CAAA,CAAA,CAAA;AAWM,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,SAAS,CAAA;EAM5C;AANY,cAAc,GAAA,UAAA,CAAA;AAT1B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE,SAAS,CAAC,mBAAmB,CAAC;AACvC,YAAA,KAAK,EAAE,SAAS,CAAC,mBAAmB,CAAC;AACrC,YAAA,SAAS,EAAE,SAAS,CAAC,mBAAmB,CAAC;AACzC,YAAA,KAAK,EAAE,SAAS,CAAC,mBAAmB,CAAC;AACrC,YAAA,MAAM,EAAE,SAAS,CAAC,mBAAmB,CAAC;AACvC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,cAAc,CAM1B;;ACfM,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS,CAAA;EAsBxC;AAtBY,UAAU,GAAA,UAAA,CAAA;AALtB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC;AAC9B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,UAAU,CAsBtB;;MCRY,OAAO,CAAA;IAClB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAClC;AAEJ,IAAA,MAAM,MAAM,CAAC,KAAa,EAAE,OAAgB,EAAA;AAC1C,QAAA,IAAI,MAAM,GAAG,CAAC,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACrD,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClD,SAAA;QACD,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAe,aAAA,CAAA,EAAE,EAAC,MAAM,EAAC,CAAC;aAC3E,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,MAAM,CAAC,IAAU,EAAA;QACrB,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACrE,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;QAC1B,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,GAAG,CAAC;AACjE,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,aAAa,CAAC,MAAc,EAAA;QAChC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,UAAU,CAAC;AACxE,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,MAAM,CAAC,MAAc,EAAE,IAAU,EAAA;QACrC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,KAAK,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAG,CAAA,CAAA,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,MAAM,CAAC,IAAU,EAAA;QACrB,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,MAAM,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,IAAI,CAAC,EAAE,GAAG,CAAC;AACrE,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,aAAa,CAAC,MAAc,EAAA;QAChC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,cAAc,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,UAA0B,EAAA;QAC/D,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,KAAK,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAc,YAAA,CAAA,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;AACjG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,QAAQ,CAAC,MAAc,EAAE,YAAqB,EAAA;AAClD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/D,SAAA;QACD,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,MAAM,CAAA,OAAA,CAAS,EAAE,EAAC,MAAM,EAAC,CAAC;aAC3F,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,cAAc,CAAC,MAAc,EAAE,UAAkB,EAAE,IAAkB,EAAA;QACzE,OAAO,IAAI,CAAC,UAAU;aACnB,KAAK,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,UAAU,UAAU,CAAA,MAAA,CAAQ,EAAE,EAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAC,CAAC;AACxH,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,UAAkB,EAAE,UAAkB,EAAA;QAC3E,OAAO,IAAI,CAAC,UAAU;aACnB,KAAK,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,UAAU,UAAU,CAAA,QAAA,CAAU,EAAE,EAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAC,CAAC;AAC/H,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,UAAU,CAAC,QAAkB,EAAA;QACjC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,MAAM,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,QAAQ,CAAC,MAAM,CAAA,OAAA,EAAU,QAAQ,CAAC,EAAE,GAAG,CAAC;AAClG,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,WAAW,CAAC,MAAc,EAAE,IAAU,EAAA;QAC1C,OAAO,IAAI,CAAC,UAAU;aACnB,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,MAAM,CAAA,OAAA,CAAS,EAAE,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,UAAU,CAAC,MAAc,EAAA;QAC7B,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,WAAW,CAAC;aACnF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzD,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,UAAU,CAAC,MAAc,EAAE,IAAU,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,MAAM,CAAA,SAAA,CAAW,EAAE,EAAC,IAAI,EAAC,CAAC;AAClF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,YAAY,CAAC,MAAkB,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,MAAM,CAAC,EAAE,CAAU,QAAA,CAAA,EAAE,EAAE,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,aAAa,CAAC,MAAkB,EAAA;QACpC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,MAAM,CAAC,EAAE,CAAW,SAAA,CAAA,EAAE,EAAE,CAAC;AACxF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,YAAY,CAAC,MAAkB,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,MAAM,CAAC,EAAE,CAAU,QAAA,CAAA,EAAE,EAAE,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,kBAAkB,CAAC,MAAc,EAAA;QACrC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,oBAAoB,CAAC;aAC5F,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjE,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,kBAAkB,CAAC,MAAc,EAAE,MAA0B,EAAA;QACjE,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAoB,kBAAA,CAAA,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAClG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,oBAAoB,CAAC,MAA0B,EAAA;QACnD,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,MAAM,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA4B,yBAAA,EAAA,MAAM,CAAC,EAAE,GAAG,CAAC;AACnF,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,oBAAoB,CAAC,MAA0B,EAAA;QACnD,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,4BAA4B,MAAM,CAAC,EAAE,CAAU,QAAA,CAAA,EAAE,EAAE,CAAC;AAC5F,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,QAAQ,CAAC,MAAc,EAAE,UAAmB,KAAK,EAAA;QACrD,OAAO,IAAI,CAAC,UAAU;aACnB,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAU,OAAA,EAAA,OAAO,GAAG,YAAY,GAAG,EAAE,CAAA,CAAE,CAAC;aAC/G,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,UAAU,CAAC,MAAc,EAAE,IAAU,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAS,OAAA,CAAA,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACrF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,iBAAiB,CAAC,MAAc,EAAA;QACpC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,cAAc,CAAC;aACtF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClE,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,sBAAsB,CAAC,MAAc,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,yBAAyB,CAAC;aACjG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClE,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,QAAQ,CAAC,MAAc,EAAA;QAC3B,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,CAAQ,MAAA,CAAA,EAAE,EAAE,CAAC;AAC3E,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,SAAS,CAAC,MAAc,EAAA;QAC5B,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,CAAS,OAAA,CAAA,EAAE,EAAE,CAAC;AAC5E,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,QAAQ,CAAC,MAAc,EAAE,OAAO,GAAG,KAAK,EAAA;QAC5C,OAAO,IAAI,CAAC,UAAU;aACnB,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAU,OAAA,EAAA,OAAO,GAAG,YAAY,GAAG,EAAE,CAAA,CAAE,CAAC;aAC/G,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,UAAU,CAAC,MAAc,EAAE,IAAU,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAS,OAAA,CAAA,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACrF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,aAAa,CAAC,MAAc,EAAA;QAChC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,UAAU,CAAC;aAClF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxD,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,eAAe,CAAC,MAAc,EAAE,SAAoB,EAAA;QACxD,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAU,QAAA,CAAA,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,cAAc,CAAC,MAAc,EAAA;QACjC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,eAAe,CAAC;aACvF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,kBAAkB,CAAC,MAAc,EAAA;QACrC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,oBAAoB,CAAC;aAC5F,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7D,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,oBAAoB,CAAC,MAAc,EAAA;QACvC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,sBAAsB,CAAC;aAC9F,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/D,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,kBAAkB,CAAC,MAAc,EAAE,YAAoB,EAAE,IAAY,EAAE,IAAa,EAAA;AACxF,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,SAAA;QACD,OAAO,IAAI,CAAC,UAAU;aACnB,GAAG,CACF,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAgB,aAAA,EAAA,YAAY,CAAS,OAAA,CAAA,EAC9F,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B;AACA,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,QAA2B,KAAI;YACxC,OAAO;gBACL,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC5C,gBAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;aAChD,CAAC;AACJ,SAAC,CAAC,CAAC;AACF,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,sBAAsB,CAAC,QAAgB,EAAA;QAC3C,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA6B,0BAAA,EAAA,QAAQ,CAAU,QAAA,CAAA,EAAE,EAAE,CAAC;AAC5F,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,uBAAuB,CAAC,QAAgB,EAAA;QAC5C,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA6B,0BAAA,EAAA,QAAQ,CAAW,SAAA,CAAA,EAAE,EAAE,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,QAAc,EAAA;QACnD,OAAO,IAAI,CAAC,UAAU;aACnB,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAa,WAAA,CAAA,EAAG,EAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAC,CAAC;AACtG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,WAAW,CAAC,UAAkB,EAAA;QAClC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAqB,kBAAA,EAAA,UAAU,GAAG,CAAC;AAC1E,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,cAAc,CAAC,UAAkB,EAAE,QAAc,EAAA;QACrD,OAAO,IAAI,CAAC,UAAU;aACnB,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,kBAAA,EAAqB,UAAU,CAAG,CAAA,CAAA,EAAE,EAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAC,CAAC;AACrG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,cAAc,CAAC,UAAkB,EAAA;QACrC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,MAAM,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAqB,kBAAA,EAAA,UAAU,GAAG,CAAC;AAC7E,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,mBAAmB,CAAC,UAAkB,EAAA;QAC1C,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAqB,kBAAA,EAAA,UAAU,CAAgB,cAAA,CAAA,EAAE,EAAE,CAAC;AAC5F,aAAA,SAAS,EAAE,CAAC;KAChB;;oGA/TU,OAAO,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAP,OAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAO,cADK,MAAM,EAAA,CAAA,CAAA;2FAClB,OAAO,EAAA,UAAA,EAAA,CAAA;kBADnB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCbnB,YAAY,CAAA;IACvB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAClC;IAEJ,MAAM,YAAY,CAAC,WAAmB,EAAA;QACpC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,WAAW,GAAG,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,eAAe,CAAC,SAAoB,EAAA;QACxC,OAAO,IAAI,CAAC,UAAU;aACnB,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,SAAS,CAAC,EAAE,CAAG,CAAA,CAAA,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;AACjG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,eAAe,CAAC,WAAmB,EAAA;QACvC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,MAAM,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,WAAW,GAAG,CAAC;AAC/E,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,mBAAmB,CAAC,WAAmB,EAAA;QAC3C,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,WAAW,WAAW,CAAC;aAC9F,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9D,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,qBAAqB,CAAC,WAAmB,EAAE,UAAkB,EAAA;QACjE,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,WAAW,WAAW,EAAE,EAAC,YAAY,EAAE,UAAU,EAAC,CAAC;AACjH,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,qBAAqB,CAAC,eAAgC,EAAA;QAC1D,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,6BAA6B,eAAe,CAAC,EAAE,CAAU,QAAA,CAAA,EAAE,EAAE,CAAC;AACtG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,sBAAsB,CAAC,eAAgC,EAAA;QAC3D,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,6BAA6B,eAAe,CAAC,EAAE,CAAW,SAAA,CAAA,EAAE,EAAE,CAAC;AACvG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,aAAA,SAAS,EAAE,CAAC;KAChB;;yGApDU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADA,MAAM,EAAA,CAAA,CAAA;2FAClB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACHzB,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAA;AAO/C,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;KACtD;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;KACxE;EACF;AAdY,kBAAkB,GAAA,UAAA,CAAA;AAD9B,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,kBAAkB,CAc9B,CAAA;AAQM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAA;EAGhD;AAHY,kBAAkB,GAAA,UAAA,CAAA;AAN9B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,WAAW,CAAC,kBAAkB,CAAC;AAC1C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,kBAAkB,CAG9B;;ICnBW,wBAKX;AALD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,uBAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,uBAAA,CAAA,uBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,uBAAA,CAAA,uBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACX,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,GAKlC,EAAA,CAAA,CAAA,CAAA;MAGY,iBAAiB,CAAA;IAC5B,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;IAED,MAAM,eAAe,CAAC,YAAoB,EAAA;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAkB,gBAAA,CAAA,CACxF,CAAC,IAAI,CACJ,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CACpE,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,YAAY,CAAC,MAAc,EAAA;QAC/B,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,SAAS,CAAC;aACjF,IAAI,CACH,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAClD,CAAC,SAAS,EAAE,CAAC;KACjB;AAED,IAAA,MAAM,cAAc,CAAC,YAAoB,EAAE,MAAc,EAAE,OAAmC,EAAA;AAC5F,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,IAAI,EAAE,EAAC,EAAE,EAAE,MAAM,EAAC;AAClB,YAAA,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;SAC/C,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAQ,MAAA,CAAA,EAAE,IAAI,CAAC;AAC7G,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,iBAAiB,CAAC,YAAoB,EAAE,cAAqC,EAAA;QACjF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAA,UAAA,CAAY,EACjF,cAAc,CAAC,IAAI,EAAE,CACtB;AACE,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,uBAAuB,CAAC,YAAoB,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsB,mBAAA,EAAA,YAAY,mBAAmB,CAAC;AACjH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAwB,KAAK,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7E,aAAA,SAAS,EAAE,CAAC;KAChB;;8GA9CU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADL,MAAM,EAAA,CAAA,CAAA;2FAClB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACLzB,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,SAAS,CAAA;EA4BjD;AA5BY,mBAAmB,GAAA,UAAA,CAAA;AAP/B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC;AACnC,YAAA,QAAQ,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACzC,YAAA,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC;AAC5C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,mBAAmB,CA4B/B;;MCrBY,kBAAkB,CAAA;IAC7B,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;IAED,MAAM,OAAO,CAAC,iBAAyB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,yBAAA,EAA4B,iBAAiB,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAClH,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,QAAQ,CAAC,iBAAyB,EAAE,OAAqC,EAAA;AAC7E,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,UAAU,EAAE;gBACtB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AACxD,aAAA;YACD,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAClD,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,yBAAA,EAA4B,iBAAiB,CAAA,OAAA,CAAS,EACzF,EAAC,MAAM,EAAC,CACT,CAAC,IAAI,CACJ,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7D,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,WAAW,CAAC,iBAAyB,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,yBAAA,EAA4B,iBAAiB,CAAY,UAAA,CAAA,CAC7F,CAAC,IAAI,CACJ,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CACjD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,SAAS,CAAC,iBAAyB,EAAA;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,yBAAA,EAA4B,iBAAiB,CAAU,QAAA,CAAA,CAC3F,CAAC,IAAI,CACJ,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CACzD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,QAAQ,CAAC,OAAe,EAAE,IAAY,EAAE,IAAY,EAAE,OAA+B,EAAA;AACzF,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC5C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,4BAA4B,OAAO,CAAA,OAAA,CAAS,EAC/E,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,cAAc,CAAC,OAAe,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA4B,yBAAA,EAAA,OAAO,gBAAgB,CAAC;AAC/G,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,aAAA,SAAS,EAAE,CAAC;KAChB;;+GApEU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADN,MAAM,EAAA,CAAA,CAAA;2FAClB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCDnB,mBAAmB,CAAA;IAC9B,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;AAED,IAAA,MAAM,UAAU,CAAC,QAAgB,EAAE,KAAa,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAkB,eAAA,EAAA,QAAQ,uBAAuB,KAAK,CAAA,CAAA,CAAG,CAAC,CAAC,IAAI,CAC3H,GAAG,CAAC,MAAM,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAC5C,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,cAAc,CAAC,QAAgB,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,0BAAA,EAA6B,QAAQ,CAAe,aAAA,CAAA,CACxF,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CACxD,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,uBAAuB,CAC3B,QAAgB,EAChB,OAA+B,EAC/B,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,GAAG,EAAA;AAEV,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE;AAC1B,aAAA,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC5B,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,gBAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,6BAA6B,QAAQ,CAAA,aAAA,CAAe,EACvF,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACpD,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,QAAQ,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAY,EAAE,OAA+B,EAAA;AAC1F,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC5C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,6BAA6B,QAAQ,CAAA,OAAA,CAAS,EACjF,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,KAAK;YACb,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAA,CAAC,CAAC,CACJ,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,SAAS,CACb,QAAgB,EAAE,IAAY,EAAE,IAAY,EAC5C,OAAoC,EAAA;AAEpC,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aACvD,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,QAAA,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,gBAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,aAAA;YACD,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC/C,aAAA;YACD,IAAI,OAAO,CAAC,cAAc,EAAE;AAC1B,gBAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3E,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,0BAAA,EAA6B,QAAQ,CAAA,QAAA,CAAU,EAClF,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAC9B;AACE,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK;YACnB,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AACzD,SAAA,CAAC,CAAC,CAAC;AACH,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,YAAY,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAY,EAAE,OAAyB,EAAA;QACxF,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxF,QAAA,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEhD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,0BAAA,EAA6B,QAAQ,CAAA,YAAA,CAAc,EACtF,EAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC;AAC7B,aAAA,IAAI,CACH,GAAG,CAAC,QAAQ,IAAG;YACb,OAAO;gBACL,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC5C,gBAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;aAChD,CAAC;AACJ,SAAC,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;KACjB;AAED,IAAA,MAAM,QAAQ,CAAC,QAAgB,EAAE,KAAe,EAAA;AAC9C,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,KAAK,EAAE;YACT,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACnC,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,0BAAA,EAA6B,QAAQ,CAAA,OAAA,CAAS,EACjF,EAAC,MAAM,EAAC,CACT,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5D,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,WAAW,CAAC,QAAgB,EAAA;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,0BAAA,EAA6B,QAAQ,CAAY,UAAA,CAAA,CACrF,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CACrD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,cAAc,CAAC,QAAgB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA6B,0BAAA,EAAA,QAAQ,gBAAgB,CAAC;AACjH,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,aAAA,SAAS,EAAE,CAAC;KAChB;;gHArIU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADP,MAAM,EAAA,CAAA,CAAA;2FAClB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCLnB,kBAAkB,CAAA;IAC7B,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;IAED,MAAM,OAAO,CAAC,EAAU,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA4B,yBAAA,EAAA,EAAE,GAAG,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,SAAS,CAAC,OAAe,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA4B,yBAAA,EAAA,OAAO,UAAU,CAAC;aACnH,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClE,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,oBAAoB,CAAC,OAAe,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA4B,yBAAA,EAAA,OAAO,gBAAgB,CAAC;aACzH,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClE,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,WAAW,CAAC,OAAe,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA4B,yBAAA,EAAA,OAAO,WAAW,CAAC;aACpH,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1D,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,QAAQ,CAAC,OAAe,EAAE,OAAgB,EAAE,KAAe,EAAA;AAC/D,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrD,SAAA;AACD,QAAA,IAAI,KAAK,EAAE;YACT,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACnC,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA4B,yBAAA,EAAA,OAAO,SAAS,EAAE,EAAC,MAAM,EAAC,CAAC;aAC5H,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,aAAA,SAAS,EAAE,CAAC;KAChB;;+GA1CU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADN,MAAM,EAAA,CAAA,CAAA;2FAClB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACPzB,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS,CAAA;EAMxC;AANY,UAAU,GAAA,UAAA,CAAA;AADtB,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,UAAU,CAMtB;;ICPW,oBAKX;AALD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,mBAAA,CAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,mBAAA,CAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,mBAAA,CAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,GAK9B,EAAA,CAAA,CAAA,CAAA;AAUM,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,SAAS,CAAA;EAM5C;AANY,cAAc,GAAA,UAAA,CAAA;AAR1B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,SAAS,CAAC,mBAAmB,CAAC;AAC5C,YAAA,KAAK,EAAE,SAAS,CAAC,mBAAmB,CAAC;AACrC,YAAA,KAAK,EAAE,SAAS,CAAC,mBAAmB,CAAC;AACrC,YAAA,SAAS,EAAE,SAAS,CAAC,mBAAmB,CAAC;AAC1C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,cAAc,CAM1B;;MCHY,OAAO,CAAA;IAClB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAClC;AAEJ,IAAA,MAAM,cAAc,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;aACnB,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,qBAAA,CAAuB,CAAC;AAC/D,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,WAAW,CAAC,MAAc,EAAA;QAC9B,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,GAAG,CAAC;AACjE,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,SAAS,CAAC,MAAe,EAAA;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,IAAI,SAAS,UAAU,CAAC;AACzG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,UAAU,CAAC,MAAc,EAAE,IAAU,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,KAAK,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAG,CAAA,CAAA,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,eAAe,CAAC,IAAS,EAAE,QAAiB,EAAA;AAChD,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA6B,2BAAA,CAAA,EAAE,QAAQ,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,cAAc,CAAC,MAAc,EAAE,WAAmB,EAAE,QAAgB,EAAE,eAAuB,EAAA;AACjG,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,YAAY,EAAE,WAAW;YACzB,QAAQ;AACR,YAAA,gBAAgB,EAAE,eAAe;SAClC,CAAC;QACF,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,CAAmB,iBAAA,CAAA,EAAE,OAAO,CAAC;AAC3F,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,WAAW,CAAC,MAAc,EAAE,KAAa,EAAE,QAAgB,EAAA;AAC/D,QAAA,MAAM,OAAO,GAAG,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;QAClC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,CAAgB,cAAA,CAAA,EAAE,OAAO,CAAC;AACxF,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,kBAAkB,CAAC,MAAM,EAAE,KAAa,EAAE,QAAgB,EAAE,KAAa,EAAA;QAC7E,MAAM,OAAO,GAAG,EAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;QACzC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,CAAwB,sBAAA,CAAA,EAAE,OAAO,CAAC;AAChG,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,cAAc,CAAC,MAAc,EAAA;QACjC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,WAAW,CAAC;AACzE,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,oBAAoB,CAAC,MAAc,EAAA;QACvC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,sBAAsB,CAAC;AACpF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,oBAAoB,CAAC,MAAc,EAAA;QACvC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,sBAAsB,CAAC;AACpF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,iBAAiB,CAAC,WAAwB,EAAA;QAC9C,OAAO,IAAI,CAAC,UAAU;aACnB,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,WAAW,CAAC,MAAM,CAAW,SAAA,CAAA,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AAC3G,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,2BAA2B,CAAC,iBAAoC,EAAA;QACpE,OAAO,IAAI,CAAC,UAAU;aACnB,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,iBAAiB,CAAC,MAAM,CAAsB,oBAAA,CAAA,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAClI,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,2BAA2B,CAAC,iBAAoC,EAAA;QACpE,OAAO,IAAI,CAAC,UAAU;aACnB,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,iBAAiB,CAAC,MAAM,CAAsB,oBAAA,CAAA,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC;AAClI,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,kBAAkB,CAAC,MAAe,EAAA;QACtC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,IAAI,SAAS,cAAc,CAAC;AACzF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,oBAAoB,CAAC,IAAoB,EAAA;QAC7C,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,KAAK,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,kCAAkC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACzF,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,QAAQ,CAAC,MAAc,EAAA;QAC3B,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,SAAS,CAAC;aACjF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,UAAU,GAAA;QACd,OAAO,IAAI,CAAC,UAAU;aACnB,GAAG,CAAW,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,6BAAA,CAA+B,CAAC;aACjF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,YAAY,CAAC,QAAgB,EAAA;QACjC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgC,6BAAA,EAAA,QAAQ,CAAU,QAAA,CAAA,EAAE,EAAE,CAAC;AAC/F,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,aAAa,CAAC,QAAgB,EAAA;QAClC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgC,6BAAA,EAAA,QAAQ,CAAW,SAAA,CAAA,EAAE,EAAE,CAAC;AAChG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,aAAa,CAAC,MAAc,EAAA;QAChC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,cAAc,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,uBAAuB,CAAC,MAAc,EAAA;QAC1C,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,yBAAyB,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,sBAAsB,CAAC,MAAc,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,yBAAyB,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,QAAQ,CAAC,MAAc,EAAA;QAC3B,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAgB,aAAA,EAAA,MAAM,SAAS,CAAC;aACjF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,cAAc,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;aACnB,GAAG,CAAW,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,kCAAA,CAAoC,CAAC;aACtF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,gBAAgB,CAAC,QAAgB,EAAA;QACrC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAqC,kCAAA,EAAA,QAAQ,CAAU,QAAA,CAAA,EAAE,EAAE,CAAC;AACpG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,iBAAiB,CAAC,QAAgB,EAAA;QACtC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAqC,kCAAA,EAAA,QAAQ,CAAW,SAAA,CAAA,EAAE,EAAE,CAAC;AACrG,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,WAAW,CAAC,KAAa,EAAA;AAC7B,QAAA,MAAM,MAAM,GAAG,CAAC,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAe,aAAA,CAAA,EAAE,EAAC,MAAM,EAAC,CAAC;aAC3E,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,eAAe,CAAC,MAAc,EAAA;QAClC,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAA+B,6BAAA,CAAA,EAAE,EAAC,MAAM,EAAC,CAAC;AACjF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,MAAM,aAAa,CAAC,MAAc,EAAA;QAChC,OAAO,IAAI,CAAC,UAAU;aACnB,GAAG,CAAW,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,iCAAA,CAAmC,CAAC;aACrF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxD,aAAA,SAAS,EAAE,CAAC;KAChB;;oGA5NU,OAAO,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAP,OAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAO,cADK,MAAM,EAAA,CAAA,CAAA;2FAClB,OAAO,EAAA,UAAA,EAAA,CAAA;kBADnB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACTzB,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,SAAS,CAAA;EAGzD;AAHY,2BAA2B,GAAA,UAAA,CAAA;AANvC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,mBAAmB,CAAC;AACtC,YAAA,cAAc,EAAE,WAAW,CAAC,mBAAmB,CAAC;AACjD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,2BAA2B,CAGvC;;ACTM,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,iBAAiB,CAAA;AAsB5D,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;KACrE;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC;KACtE;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC;KAC5F;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,CAAC;KAC3G;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;KACrG;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC;KACzF;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;KACzF;EACF;AArDY,uBAAuB,GAAA,UAAA,CAAA;AADnC,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,uBAAuB,CAqDnC;;ICrDW,sBAyBX;AAzBD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,qBAAA,CAAA,yBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,yBAAuB,CAAA;AACvB,IAAA,qBAAA,CAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,qBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACZ,CAAC,EAzBW,qBAAqB,KAArB,qBAAqB,GAyBhC,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,eAAe,GAAG;AAC7B,IAAA,qBAAqB,CAAC,SAAS,EAAE,qBAAqB,CAAC,WAAW;AAClE,IAAA,qBAAqB,CAAC,YAAY,EAAE,qBAAqB,CAAC,KAAK;EAC/D;AACW,MAAA,eAAe,GAAG;AAC7B,IAAA,qBAAqB,CAAC,WAAW,EAAE,qBAAqB,CAAC,YAAY;AACrE,IAAA,qBAAqB,CAAC,WAAW,EAAE,qBAAqB,CAAC,aAAa;AACtE,IAAA,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,CAAC,mBAAmB;EACtE;AAQK,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,WAAW,CAAA;AAA3C,IAAA,WAAA,GAAA;;QAGL,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;KA0Ff;AA7EC,IAAA,OAAO,CAAC,KAAwB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE;AACxD,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KACtC;IAED,WAAW,GAAA;QACT,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/C;IAED,WAAW,GAAA;QACT,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/C;IAED,OAAO,GAAA;QACL,OAAO;AACL,YAAA,qBAAqB,CAAC,SAAS;AAC/B,YAAA,qBAAqB,CAAC,SAAS;AAC/B,YAAA,qBAAqB,CAAC,WAAW;AACjC,YAAA,qBAAqB,CAAC,UAAU;AACjC,SAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC1B;IAED,QAAQ,GAAA;QACN,OAAO;AACL,YAAA,qBAAqB,CAAC,YAAY;AAClC,YAAA,qBAAqB,CAAC,YAAY;AAClC,YAAA,qBAAqB,CAAC,WAAW;AAClC,SAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC1B;IAED,SAAS,GAAA;QACP,OAAO;AACL,YAAA,qBAAqB,CAAC,aAAa;AACnC,YAAA,qBAAqB,CAAC,OAAO;AAC7B,YAAA,qBAAqB,CAAC,iBAAiB;AACxC,SAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC1B;IAED,cAAc,GAAA;QACZ,OAAO;AACL,YAAA,qBAAqB,CAAC,mBAAmB;AACzC,YAAA,qBAAqB,CAAC,aAAa;AACnC,YAAA,qBAAqB,CAAC,uBAAuB;AAC9C,SAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC1B;IAED,OAAO,GAAA;QACL,OAAO;AACL,YAAA,qBAAqB,CAAC,WAAW;AACjC,YAAA,qBAAqB,CAAC,aAAa;AACnC,YAAA,qBAAqB,CAAC,WAAW;AAClC,SAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC1B;IAED,WAAW,GAAA;QACT,OAAO;AACL,YAAA,qBAAqB,CAAC,UAAU;AAChC,YAAA,qBAAqB,CAAC,SAAS;AAC/B,YAAA,qBAAqB,CAAC,OAAO;AAC9B,SAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC1B;IAED,WAAW,GAAA;AACT,QAAA,OAAO,CAAC;AACN,YAAA,qBAAqB,CAAC,OAAO;AAC7B,YAAA,qBAAqB,CAAC,aAAa;AACpC,SAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC1B;EACF;AA7FY,iBAAiB,GAAA,UAAA,CAAA;AAN7B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE,SAAS,CAAC,qBAAqB,CAAC;AACzC,YAAA,QAAQ,EAAE,aAAa;AACxB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,iBAAiB,CA6F7B;;ACjIK,MAAO,iBAAkB,SAAQ,WAAW,CAAA;IAChD,WACY,CAAA,UAAsB,EACtB,aAA4B,EAAA;AAEtC,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAHvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAGvC;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CACjH,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAkB,gBAAA,CAAA,CAAC,CAAC,IAAI,CAChI,GAAG,CAAC,MAAM,IAAI,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC,CACvD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAkB,gBAAA,CAAA,CAClG,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CACrE,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,mCAAA,EAAsC,MAAM,CAAQ,MAAA,CAAA,CACxF,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/D,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,qBAAqB,CAAC,MAAc,EAAE,MAA+B,EAAA;AACzE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsC,mCAAA,EAAA,MAAM,uBAAuB,EAAE;YACjI,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;AACjD,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,wBAAwB,CAAC,MAAc,EAAE,MAA+B,EAAA;AAC5E,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsC,mCAAA,EAAA,MAAM,0BAA0B,EAAE;YACpI,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;AACjD,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,MAA+B,EAAA;AACpE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAsC,mCAAA,EAAA,MAAM,iBAAiB,EAAE;YAC3H,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;AACjD,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;;8GAvDU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADL,MAAM,EAAA,CAAA,CAAA;2FAClB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ICNpB,sBAiEX;AAjED,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,qBAAA,CAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,qBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,qBAAA,CAAA,qBAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,qBAAA,CAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,6BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,6BAA2B,CAAA;AAC3B,IAAA,qBAAA,CAAA,qBAAA,CAAA,0BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,0BAAwB,CAAA;AACxB,IAAA,qBAAA,CAAA,qBAAA,CAAA,0BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,0BAAwB,CAAA;AACxB,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,oBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,qBAAA,CAAA,qBAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,qBAAA,CAAA,qBAAA,CAAA,oBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,qBAAA,CAAA,qBAAA,CAAA,oBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,oBAAkB,CAAA;AAClB,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,qBAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAAsB,CAAA;AACtB,IAAA,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;AACd,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAY,CAAA;AACZ,IAAA,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,qBAAA,CAAA,qBAAA,CAAA,6BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,6BAA2B,CAAA;AAC3B,IAAA,qBAAA,CAAA,qBAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACrB,IAAA,qBAAA,CAAA,qBAAA,CAAA,6BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,6BAA2B,CAAA;AAC3B,IAAA,qBAAA,CAAA,qBAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAAsB,CAAA;AACtB,IAAA,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,qBAAA,CAAA,uBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,uBAAqB,CAAA;AACvB,CAAC,EAjEW,qBAAqB,KAArB,qBAAqB,GAiEhC,EAAA,CAAA,CAAA,CAAA;IAEW,wBAIX;AAJD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,uBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAe,CAAA;AACf,IAAA,uBAAA,CAAA,uBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,uBAAA,CAAA,uBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACf,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,GAIlC,EAAA,CAAA,CAAA,CAAA;AASM,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,WAAW,CAAA;AAA1C,IAAA,WAAA,GAAA;;QAWL,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;KAoEf;AAxDC,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC;AAClC,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,IAAI,mBAAmB,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;KACnC;AAED,IAAA,OAAO,CAAC,KAAuB,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5C;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;AACzC,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KACpF;IAED,WAAW,GAAA;QACT,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,CAAC,wBAAwB;AACvH,YAAA,qBAAqB,CAAC,cAAc,EAAE,qBAAqB,CAAC,WAAW;YACvE,qBAAqB,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KACtJ;IAED,aAAa,GAAA;QACX,OAAO;AACL,YAAA,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,CAAC,aAAa;AACxE,YAAA,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,CAAC,aAAa;SACzE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;IAED,UAAU,GAAA;QACR,OAAO;YACL,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,CAAC,aAAa;AAC7G,YAAA,qBAAqB,CAAC,aAAa,EAAE,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,CAAC,WAAW,EAAE,qBAAqB,CAAC,YAAY;SACvI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;AAED,IAAA,OAAO,CAAC,GAAqB,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AACxD,YAAA,OAAO,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;AACzB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC7B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;KACjC;EACF;AA/EY,gBAAgB,GAAA,UAAA,CAAA;AAP5B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,OAAO,EAAE,SAAS,CAAC,qBAAqB,CAAC;AACzC,YAAA,SAAS,EAAE,SAAS,CAAC,uBAAuB,CAAC;AAC9C,SAAA;KACF,CAAC;AACW,CAAA,EAAA,gBAAgB,CA+E5B;;AC3JM,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,iBAAiB,CAAA;AAmK3D,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;KACvC;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;AACrD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAA,OAAO,CAAG,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAG,EAAA,OAAO,EAAE,CAAC;KAChF;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;KAC/E;AAED,IAAA,IAAI,uBAAuB,GAAA;QACzB,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KAChH;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAC;KACzH;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAC;KACzH;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAC;KACzH;AAED,IAAA,IAAI,uBAAuB,GAAA;QACzB,OAAO,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC;KAClH;AAED,IAAA,IAAI,wBAAwB,GAAA;QAC1B,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC;KACrH;AAED,IAAA,IAAI,yBAAyB,GAAA;QAC3B,OAAO,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,KAAK,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAC;KACpI;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,yBAAyB,CAAC;KACtG;AAED,IAAA,IAAI,yBAAyB,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC7D,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;KACvF;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;KAChG;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC;KAC1G;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC;KAC1G;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC;KAC1G;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;KACpG;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAK,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC;KACvG;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAK,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC;KACtH;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC;KACvF;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACnD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,uBAAuB,GAAA;QACzB,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KAChH;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAC;KACzH;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAC;KACzH;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAC;KACzH;AAED,IAAA,IAAI,uBAAuB,GAAA;QACzB,OAAO,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC;KAClH;AAED,IAAA,IAAI,wBAAwB,GAAA;QAC1B,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC;KACrH;AAED,IAAA,IAAI,yBAAyB,GAAA;QAC3B,OAAO,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,KAAK,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAC;KACpI;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,yBAAyB,CAAC;KACtG;AAED,IAAA,IAAI,yBAAyB,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC7D,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;KACvF;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;aACrF,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC;aAChG,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAC3F,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC;KAChF;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;aACrF,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC;aAChG,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAC3F,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC;KAChF;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;aACrF,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC;aAChG,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAC3F,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC;KAChF;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;aACjF,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KACrG;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;aACjF,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KACrG;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;aACjF,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KACrG;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;KAClE;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;KACjE;AAED,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YACnF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC;KACzF;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;aAC9F,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;YACpF,IAAI,CAAC,gBAAgB,CAAC;KACzB;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;aACxF,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC;KACxG;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;aACrF,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;aAC5F,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;YACvF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC;KAC5F;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;aAC3F,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC;KAC3G;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;YACtF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC;KAC5F;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;KACnD;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;KACxC;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC5D;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;KACnG;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC;KACrH;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC;KACtG;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;KAChG;AAED,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;KACxG;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACpD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;KAC9E;AAED,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;KAC7F;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;KAChG;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KAC/G;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB;YACjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;KACtE;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;YACzF,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,yBAAyB;AAC3F,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC;KACvD;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KACtD;AAED,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;KAC/F;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;KACxE;AAED,IAAA,IAAI,yBAAyB,GAAA;QAC3B,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,IAAI,uBAAuB,GAAA;QACzB,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;KACvF;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,uBAAuB,CAAC;KACtE;AAED,IAAA,IAAI,0BAA0B,GAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC1D,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;KACpF;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,CAAC;KACzH;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACvC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KACjE;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACvC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KACjE;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACvC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KACjE;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KAC9D;AAED,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC9B,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KACxD;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACxC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;KAClE;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACvC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;KACjE;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAC9C,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;KACxE;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;KACrD;;AAGD,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;KACxE;AAED,IAAA,IAAI,0BAA0B,GAAA;QAC5B,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;KAC5D;AAED,IAAA,IAAI,0BAA0B,GAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE;AACjE,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC;KAC3F;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KAC/G;AAED,IAAA,IAAI,yBAAyB,GAAA;QAC3B,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,yBAAyB,IAAI,CAAC,CAAC,CAAC;KACxE;AAED,IAAA,IAAI,yBAAyB,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;AAC/D,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC;KACzF;AAGD,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KAC/G;AAED,IAAA,IAAI,yBAAyB,GAAA;QAC3B,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,yBAAyB,IAAI,CAAC,CAAC,CAAC;KACxE;AAED,IAAA,IAAI,yBAAyB,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;AAC/D,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC;KACzF;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;KAChG;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KAC9D;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACrD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;KAC/E;AAED,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;KAChG;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KAC9D;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACrD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;KAC/E;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC;KAC1D;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACjD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;KAC3E;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC;KAC1E;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;KACjE;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,yBAAyB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;AACxG,aAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,CAAC,CAAC;KACzC;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KACrE;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC;KACpG;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;KACjE;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;KAC3C;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC;KAC1D;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACrD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;KAC/E;AAED,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACzC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;KACnE;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC/C,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;KACzE;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;aACrG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KACjF;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;aACtG,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAC;KAC1H;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;KACrD;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACnD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;KAC7E;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;aACrG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;KACjF;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;aACtG,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,CAAC,CAAC;KAC1H;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;KACrD;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACnD,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;KAC7E;EACF;AAhuBY,sBAAsB,GAAA,UAAA,CAAA;AALlC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,sBAAsB,CAguBlC;;AC9tBM,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,SAAS,CAAA;EAGxD;AAHY,0BAA0B,GAAA,UAAA,CAAA;AANtC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACrC,YAAA,cAAc,EAAE,WAAW,CAAC,kBAAkB,CAAC;AAChD,SAAA;KACF,CAAC;AACW,CAAA,EAAA,0BAA0B,CAGtC;;ACFK,MAAO,gBAAiB,SAAQ,WAAW,CAAA;IAC/C,WACY,CAAA,UAAsB,EACtB,aAA4B,EAAA;AAEtC,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAHvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAGvC;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,kCAAA,EAAqC,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAChH,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,kCAAA,EAAqC,MAAM,CAAkB,gBAAA,CAAA,CAAC,CAAC,IAAI,CAC/H,GAAG,CAAC,MAAM,IAAI,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAC,CACtD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,gBAAgB,CAAC,MAAc,EAAA;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,kCAAA,EAAqC,MAAM,CAAkB,gBAAA,CAAA,CACjG,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CACpE,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,OAAO,CAAC,MAAc,EAAA;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,kCAAA,EAAqC,MAAM,CAAQ,MAAA,CAAA,CACvF,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9D,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,MAA+B,EAAA;AACpE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAqC,kCAAA,EAAA,MAAM,iBAAiB,EAAE;YAC1H,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;AACjD,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,MAAM,mBAAmB,CAAC,MAAc,EAAE,MAA+B,EAAE,IAAmC,EAAA;AAC5G,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAqC,kCAAA,EAAA,MAAM,yBAAyB,EAAE;AAClI,YAAA,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC;AAC/E,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC,SAAS,EAAE,CAAC;KAChB;;6GAhDU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADJ,MAAM,EAAA,CAAA,CAAA;2FAClB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCDnB,aAAa,CAAA;IACxB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;AAED,IAAA,OAAO,CAAC,MAAc,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,oBAAA,EAAuB,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAClG,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,kBAAkB,CAAC,MAAc,EAAE,QAAgB,EAAA;AACjD,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,oBAAA,EAAuB,MAAM,CAAA,kBAAA,CAAoB,EACpF,EAAC,MAAM,EAAC,CACT,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5D,CAAC,SAAS,EAAE,CAAC;KACf;IAED,MAAM,QAAQ,CAAC,MAAc,EAAA;QAC3B,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAuB,oBAAA,EAAA,MAAM,SAAS,CAAC;aACxF,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,aAAA,SAAS,EAAE,CAAC;KAChB;;0GA5BU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADD,MAAM,EAAA,CAAA,CAAA;2FAClB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCEnB,aAAa,CAAA;IACxB,WACU,CAAA,UAAsB,EACtB,aAA4B,EAAA;QAD5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAErC;AAED,IAAA,OAAO,CAAC,MAAc,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,oBAAA,EAAuB,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC,IAAI,CAClG,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAChC,CAAC,SAAS,EAAE,CAAC;KACf;IAED,cAAc,CAAC,MAAc,EAAE,QAAgB,EAAA;AAC7C,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,oBAAA,EAAuB,MAAM,CAAA,aAAA,CAAe,EAC/E,EAAC,MAAM,EAAC,CACT,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CACxD,CAAC,SAAS,EAAE,CAAC;KACf;IAED,iBAAiB,CAAC,MAAc,EAAE,QAAgB,EAAA;AAChD,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,MAAM,CAAA,iBAAA,CAAmB,EACnF,EAAC,MAAM,EAAC,CACT,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAC9C,CAAC,SAAS,EAAE,CAAC;KACf;IAED,eAAe,CAAC,MAAc,EAAE,QAAgB,EAAA;AAC9C,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,MAAM,CAAA,eAAA,CAAiB,EACjF,EAAC,MAAM,EAAC,CACT,CAAC,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CACxC,CAAC,SAAS,EAAE,CAAC;KACf;;0GAzCU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADD,MAAM,EAAA,CAAA,CAAA;2FAClB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACPnB,MAAA,iCAAiC,GAAG;AAC/C,IAAA,CAAC,sBAAsB,CAAC,UAAU,GAAG,mBAAmB;AACxD,IAAA,CAAC,sBAAsB,CAAC,SAAS,GAAG,iBAAiB;AACrD,IAAA,CAAC,sBAAsB,CAAC,WAAW,GAAG,qBAAqB;AAC3D,IAAA,CAAC,sBAAsB,CAAC,iBAAiB,GAAG,eAAe;AAC3D,IAAA,CAAC,sBAAsB,CAAC,mBAAmB,GAAG,eAAe;AAC7D,IAAA,CAAC,sBAAsB,CAAC,kBAAkB,GAAG,iBAAiB;AAC9D,IAAA,CAAC,sBAAsB,CAAC,iBAAiB,GAAG,eAAe;AAC3D,IAAA,CAAC,sBAAsB,CAAC,cAAc,GAAG,QAAQ;AACjD,IAAA,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,QAAQ;AACnD,IAAA,CAAC,sBAAsB,CAAC,eAAe,GAAG,kBAAkB;AAC5D,IAAA,CAAC,sBAAsB,CAAC,cAAc,GAAG,QAAQ;AACjD,IAAA,CAAC,sBAAsB,CAAC,MAAM,GAAG,UAAU;AAC3C,IAAA,CAAC,sBAAsB,CAAC,KAAK,GAAG,SAAS;AACzC,IAAA,CAAC,sBAAsB,CAAC,OAAO,GAAG,QAAQ;AAC1C,IAAA,CAAC,sBAAsB,CAAC,iBAAiB,GAAG,oBAAoB;AAChE,IAAA,CAAC,sBAAsB,CAAC,iBAAiB,GAAG,iBAAiB;AAC7D,IAAA,CAAC,sBAAsB,CAAC,KAAK,GAAG,UAAU;AAC1C,IAAA,CAAC,sBAAsB,CAAC,QAAQ,GAAG,QAAQ;AAC3C,IAAA,CAAC,sBAAsB,CAAC,aAAa,GAAG,KAAK;AAC7C,IAAA,CAAC,sBAAsB,CAAC,cAAc,GAAG,iBAAiB;AAC1D,IAAA,CAAC,sBAAsB,CAAC,oBAAoB,GAAG,iBAAiB;AAChE,IAAA,CAAC,sBAAsB,CAAC,OAAO,GAAG,SAAS;AAC3C,IAAA,CAAC,sBAAsB,CAAC,YAAY,GAAG,kBAAkB;AACzD,IAAA,CAAC,sBAAsB,CAAC,YAAY,GAAG,WAAW;AAClD,IAAA,CAAC,sBAAsB,CAAC,SAAS,GAAG,MAAM;AAC1C,IAAA,CAAC,sBAAsB,CAAC,kBAAkB,GAAG,eAAe;AAC5D,IAAA,CAAC,sBAAsB,CAAC,eAAe,GAAG,QAAQ;AAClD,IAAA,CAAC,sBAAsB,CAAC,QAAQ,GAAG,OAAO;AAC1C,IAAA,CAAC,sBAAsB,CAAC,YAAY,GAAG,eAAe;AACtD,IAAA,CAAC,sBAAsB,CAAC,aAAa,GAAG,gBAAgB;;;AC9B7C,MAAA,qCAAqC,GAAG;;AAEnD,IAAA,CAAC,qBAAqB,CAAC,SAAS,GAAG,UAAU;AAC7C,IAAA,CAAC,qBAAqB,CAAC,mBAAmB,GAAG,UAAU;AACvD,IAAA,CAAC,qBAAqB,CAAC,kBAAkB,GAAG,UAAU;AACtD,IAAA,CAAC,qBAAqB,CAAC,mBAAmB,GAAG,UAAU;AACvD,IAAA,CAAC,qBAAqB,CAAC,iBAAiB,GAAG,QAAQ;AACnD,IAAA,CAAC,qBAAqB,CAAC,oBAAoB,GAAG,YAAY;AAC1D,IAAA,CAAC,qBAAqB,CAAC,IAAI,GAAG,MAAM;AACpC,IAAA,CAAC,qBAAqB,CAAC,KAAK,GAAG,OAAO;AACtC,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,gBAAgB;AACvD,IAAA,CAAC,qBAAqB,CAAC,SAAS,GAAG,QAAQ;AAC3C,IAAA,CAAC,qBAAqB,CAAC,SAAS,GAAG,QAAQ;;AAG3C,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,aAAa;AACrD,IAAA,CAAC,qBAAqB,CAAC,SAAS,GAAG,YAAY;AAC/C,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,cAAc;;AAGnD,IAAA,CAAC,qBAAqB,CAAC,QAAQ,GAAG,YAAY;AAC9C,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,YAAY;AACnD,IAAA,CAAC,qBAAqB,CAAC,MAAM,GAAG,UAAU;AAC1C,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,iBAAiB;AACzD,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,cAAc;AACrD,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,WAAW;AAClD,IAAA,CAAC,qBAAqB,CAAC,YAAY,GAAG,UAAU;AAChD,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,UAAU;AACjD,IAAA,CAAC,qBAAqB,CAAC,mBAAmB,GAAG,YAAY;AACzD,IAAA,CAAC,qBAAqB,CAAC,UAAU,GAAG,MAAM;AAC1C,IAAA,CAAC,qBAAqB,CAAC,sBAAsB,GAAG,aAAa;AAC7D,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,QAAQ;;;AC/BrC,MAAA,6BAA6B,GAAG;AAC3C,IAAA,CAAC,kBAAkB,CAAC,UAAU,GAAG,mBAAmB;AACpD,IAAA,CAAC,kBAAkB,CAAC,SAAS,GAAG,iBAAiB;AACjD,IAAA,CAAC,kBAAkB,CAAC,SAAS,GAAG,aAAa;AAC7C,IAAA,CAAC,kBAAkB,CAAC,YAAY,GAAG,mBAAmB;AACtD,IAAA,CAAC,kBAAkB,CAAC,YAAY,GAAG,wBAAwB;AAC3D,IAAA,CAAC,kBAAkB,CAAC,IAAI,GAAG,KAAK;AAChC,IAAA,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,eAAe;AACtD,IAAA,CAAC,kBAAkB,CAAC,aAAa,GAAG,YAAY;AAChD,IAAA,CAAC,kBAAkB,CAAC,2BAA2B,GAAG,eAAe;AACjE,IAAA,CAAC,kBAAkB,CAAC,wBAAwB,GAAG,YAAY;AAC3D,IAAA,CAAC,kBAAkB,CAAC,MAAM,GAAG,UAAU;AACvC,IAAA,CAAC,kBAAkB,CAAC,UAAU,GAAG,mBAAmB;AACpD,IAAA,CAAC,kBAAkB,CAAC,aAAa,GAAG,aAAa;AACjD,IAAA,CAAC,kBAAkB,CAAC,aAAa,GAAG,eAAe;AACnD,IAAA,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,sBAAsB;AAC/D,IAAA,CAAC,kBAAkB,CAAC,uBAAuB,GAAG,oCAAoC;AAClF,IAAA,CAAC,kBAAkB,CAAC,aAAa,GAAG,YAAY;AAChD,IAAA,CAAC,kBAAkB,CAAC,YAAY,GAAG,iBAAiB;AACpD,IAAA,CAAC,kBAAkB,CAAC,aAAa,GAAG,wBAAwB;AAC5D,IAAA,CAAC,kBAAkB,CAAC,YAAY,GAAG,sBAAsB;AACzD,IAAA,CAAC,kBAAkB,CAAC,IAAI,GAAG,gBAAgB;AAC3C,IAAA,CAAC,kBAAkB,CAAC,aAAa,GAAG,gBAAgB;AACpD,IAAA,CAAC,kBAAkB,CAAC,wBAAwB,GAAG,gBAAgB;AAC/D,IAAA,CAAC,kBAAkB,CAAC,OAAO,GAAG,SAAS;AACvC,IAAA,CAAC,kBAAkB,CAAC,aAAa,GAAG,0BAA0B;AAC9D,IAAA,CAAC,kBAAkB,CAAC,WAAW,GAAG,yBAAyB;AAC3D,IAAA,CAAC,kBAAkB,CAAC,KAAK,GAAG,OAAO;AACnC,IAAA,CAAC,kBAAkB,CAAC,IAAI,GAAG,QAAQ;AACnC,IAAA,CAAC,kBAAkB,CAAC,UAAU,GAAG,iBAAiB;;;AC7BvC,MAAA,+BAA+B,GAAG;AAC7C,IAAA,CAAC,oBAAoB,CAAC,UAAU,GAAG,eAAe;AAClD,IAAA,CAAC,oBAAoB,CAAC,SAAS,GAAG,aAAa;AAC/C,IAAA,CAAC,oBAAoB,CAAC,SAAS,GAAG,WAAW;AAC7C,IAAA,CAAC,oBAAoB,CAAC,YAAY,GAAG,cAAc;AACnD,IAAA,CAAC,oBAAoB,CAAC,YAAY,GAAG,sBAAsB;AAC3D,IAAA,CAAC,oBAAoB,CAAC,IAAI,GAAG,KAAK;AAClC,IAAA,CAAC,oBAAoB,CAAC,MAAM,GAAG,UAAU;AACzC,IAAA,CAAC,oBAAoB,CAAC,eAAe,GAAG,iBAAiB;AACzD,IAAA,CAAC,oBAAoB,CAAC,YAAY,GAAG,cAAc;AACnD,IAAA,CAAC,oBAAoB,CAAC,qBAAqB,GAAG,oBAAoB;AAClE,IAAA,CAAC,oBAAoB,CAAC,kBAAkB,GAAG,iBAAiB;AAC5D,IAAA,CAAC,oBAAoB,CAAC,UAAU,GAAG,kBAAkB;AACrD,IAAA,CAAC,oBAAoB,CAAC,MAAM,GAAG,SAAS;AACxC,IAAA,CAAC,oBAAoB,CAAC,SAAS,GAAG,eAAe;AACjD,IAAA,CAAC,oBAAoB,CAAC,IAAI,GAAG,cAAc;AAC3C,IAAA,CAAC,oBAAoB,CAAC,YAAY,GAAG,kBAAkB;AACvD,IAAA,CAAC,oBAAoB,CAAC,kBAAkB,GAAG,qBAAqB;AAChE,IAAA,CAAC,oBAAoB,CAAC,IAAI,GAAG,KAAK;AAClC,IAAA,CAAC,oBAAoB,CAAC,WAAW,GAAG,iBAAiB;AACrD,IAAA,CAAC,oBAAoB,CAAC,QAAQ,GAAG,kBAAkB;AACnD,IAAA,CAAC,oBAAoB,CAAC,YAAY,GAAG,KAAK;AAC1C,IAAA,CAAC,oBAAoB,CAAC,IAAI,GAAG,QAAQ;AACrC,IAAA,CAAC,oBAAoB,CAAC,KAAK,GAAG,UAAU;AACxC,IAAA,CAAC,oBAAoB,CAAC,GAAG,GAAG,KAAK;AACjC,IAAA,CAAC,oBAAoB,CAAC,OAAO,GAAG,SAAS;AACzC,IAAA,CAAC,oBAAoB,CAAC,SAAS,GAAG,SAAS;AAC3C,IAAA,CAAC,oBAAoB,CAAC,qBAAqB,GAAG,cAAc;AAC5D,IAAA,CAAC,oBAAoB,CAAC,qBAAqB,GAAG,iBAAiB;AAC/D,IAAA,CAAC,oBAAoB,CAAC,qBAAqB,GAAG,kBAAkB;;;AC7BrD,MAAA,+BAA+B,GAAG;AAC7C,IAAA,CAAC,oBAAoB,CAAC,UAAU,GAAG,eAAe;AAClD,IAAA,CAAC,oBAAoB,CAAC,SAAS,GAAG,aAAa;AAC/C,IAAA,CAAC,oBAAoB,CAAC,SAAS,GAAG,aAAa;AAC/C,IAAA,CAAC,oBAAoB,CAAC,YAAY,GAAG,gBAAgB;AACrD,IAAA,CAAC,oBAAoB,CAAC,YAAY,GAAG,wBAAwB;AAC7D,IAAA,CAAC,oBAAoB,CAAC,IAAI,GAAG,KAAK;AAClC,IAAA,CAAC,oBAAoB,CAAC,MAAM,GAAG,UAAU;AACzC,IAAA,CAAC,oBAAoB,CAAC,YAAY,GAAG,WAAW;AAChD,IAAA,CAAC,oBAAoB,CAAC,oBAAoB,GAAG,YAAY;AACzD,IAAA,CAAC,oBAAoB,CAAC,YAAY,GAAG,QAAQ;AAC7C,IAAA,CAAC,oBAAoB,CAAC,IAAI,GAAG,MAAM;AACnC,IAAA,CAAC,oBAAoB,CAAC,YAAY,GAAG,SAAS;AAC9C,IAAA,CAAC,oBAAoB,CAAC,IAAI,GAAG,KAAK;AAClC,IAAA,CAAC,oBAAoB,CAAC,WAAW,GAAG,kBAAkB;AACtD,IAAA,CAAC,oBAAoB,CAAC,QAAQ,GAAG,kBAAkB;AACnD,IAAA,CAAC,oBAAoB,CAAC,eAAe,GAAG,mBAAmB;AAC3D,IAAA,CAAC,oBAAoB,CAAC,QAAQ,GAAG,QAAQ;AACzC,IAAA,CAAC,oBAAoB,CAAC,KAAK,GAAG,UAAU;AACxC,IAAA,CAAC,oBAAoB,CAAC,UAAU,GAAG,aAAa;AAChD,IAAA,CAAC,oBAAoB,CAAC,OAAO,GAAG,SAAS;;;ACpB9B,MAAA,gCAAgC,GAAG;AAC9C,IAAA,CAAC,qBAAqB,CAAC,UAAU,GAAG,mBAAmB;AACvD,IAAA,CAAC,qBAAqB,CAAC,SAAS,GAAG,iBAAiB;AACpD,IAAA,CAAC,qBAAqB,CAAC,SAAS,GAAG,aAAa;AAChD,IAAA,CAAC,qBAAqB,CAAC,kBAAkB,GAAG,0BAA0B;AACtE,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,uBAAuB;AAC9D,IAAA,CAAC,qBAAqB,CAAC,mBAAmB,GAAG,uBAAuB;AACpE,IAAA,CAAC,qBAAqB,CAAC,YAAY,GAAG,mBAAmB;AACzD,IAAA,CAAC,qBAAqB,CAAC,qBAAqB,GAAG,gCAAgC;AAC/E,IAAA,CAAC,qBAAqB,CAAC,gBAAgB,GAAG,6BAA6B;AACvE,IAAA,CAAC,qBAAqB,CAAC,sBAAsB,GAAG,6BAA6B;AAC7E,IAAA,CAAC,qBAAqB,CAAC,YAAY,GAAG,qBAAqB;AAC3D,IAAA,CAAC,qBAAqB,CAAC,2BAA2B,GAAG,kCAAkC;AACvF,IAAA,CAAC,qBAAqB,CAAC,qBAAqB,GAAG,+BAA+B;AAC9E,IAAA,CAAC,qBAAqB,CAAC,2BAA2B,GAAG,+BAA+B;AACpF,IAAA,CAAC,qBAAqB,CAAC,IAAI,GAAG,KAAK;AACnC,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,eAAe;AACtD,IAAA,CAAC,qBAAqB,CAAC,kBAAkB,GAAG,kBAAkB;AAC9D,IAAA,CAAC,qBAAqB,CAAC,mBAAmB,GAAG,eAAe;AAC5D,IAAA,CAAC,qBAAqB,CAAC,gBAAgB,GAAG,iBAAiB;AAC3D,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,cAAc;AACrD,IAAA,CAAC,qBAAqB,CAAC,2BAA2B,GAAG,iBAAiB;AACtE,IAAA,CAAC,qBAAqB,CAAC,wBAAwB,GAAG,cAAc;AAChE,IAAA,CAAC,qBAAqB,CAAC,MAAM,GAAG,kBAAkB;AAClD,IAAA,CAAC,qBAAqB,CAAC,UAAU,GAAG,mBAAmB;AACvD,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,qBAAqB;AAC5D,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,0BAA0B;AACjE,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,yBAAyB;AAChE,IAAA,CAAC,qBAAqB,CAAC,IAAI,GAAG,KAAK;AACnC,IAAA,CAAC,qBAAqB,CAAC,YAAY,GAAG,cAAc;AACpD,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,iBAAiB;AACtD,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,kBAAkB;AACzD,IAAA,CAAC,qBAAqB,CAAC,YAAY,GAAG,iBAAiB;AACvD,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,oBAAoB;AAC3D,IAAA,CAAC,qBAAqB,CAAC,YAAY,GAAG,kBAAkB;AACxD,IAAA,CAAC,qBAAqB,CAAC,IAAI,GAAG,gBAAgB;AAC9C,IAAA,CAAC,qBAAqB,CAAC,kBAAkB,GAAG,6BAA6B;AACzE,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,0BAA0B;AACjE,IAAA,CAAC,qBAAqB,CAAC,mBAAmB,GAAG,0BAA0B;AACvE,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,8BAA8B;AACtE,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,2BAA2B;AAChE,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,2BAA2B;AAClE,IAAA,CAAC,qBAAqB,CAAC,wBAAwB,GAAG,2BAA2B;AAC7E,IAAA,CAAC,qBAAqB,CAAC,OAAO,GAAG,SAAS;AAC1C,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,0BAA0B;AACjE,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,yBAAyB;AAC9D,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,iBAAiB;AACtD,IAAA,CAAC,qBAAqB,CAAC,QAAQ,GAAG,kBAAkB;AACpD,IAAA,CAAC,qBAAqB,CAAC,QAAQ,GAAG,kBAAkB;AACpD,IAAA,CAAC,qBAAqB,CAAC,IAAI,GAAG,QAAQ;AACtC,IAAA,CAAC,qBAAqB,CAAC,KAAK,GAAG,UAAU;AACzC,IAAA,CAAC,qBAAqB,CAAC,MAAM,GAAG,OAAO;AACvC,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,yBAAyB;AACjE,IAAA,CAAC,qBAAqB,CAAC,iBAAiB,GAAG,oCAAoC;AAC/E,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,iCAAiC;AACzE,IAAA,CAAC,qBAAqB,CAAC,sBAAsB,GAAG,yCAAyC;AACzF,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,yBAAyB;AACjE,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,2BAA2B;AACnE,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,gBAAgB;AACrD,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,2BAA2B;AACnE,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,wBAAwB;AAC7D,IAAA,CAAC,qBAAqB,CAAC,mBAAmB,GAAG,gCAAgC;AAC7E,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,gBAAgB;AACrD,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,mBAAmB;AACxD,IAAA,CAAC,qBAAqB,CAAC,qBAAqB,GAAG,6BAA6B;;;AChEjE,MAAA,wBAAwB,GAAG;AACtC,IAAA,CAAC,aAAa,CAAC,aAAa,GAAG,sBAAsB;AACrD,IAAA,CAAC,aAAa,CAAC,cAAc,GAAG,YAAY;AAC5C,IAAA,CAAC,aAAa,CAAC,IAAI,GAAG,YAAY;AAClC,IAAA,CAAC,aAAa,CAAC,gBAAgB,GAAG,eAAe;AACjD,IAAA,CAAC,aAAa,CAAC,aAAa,GAAG,4BAA4B;AAC3D,IAAA,CAAC,aAAa,CAAC,0BAA0B,GAAG,sCAAsC;AAClF,IAAA,CAAC,aAAa,CAAC,QAAQ,GAAG,SAAS;AACnC,IAAA,CAAC,aAAa,CAAC,SAAS,GAAG,UAAU;AACrC,IAAA,CAAC,aAAa,CAAC,kBAAkB,GAAG,iCAAiC;;;ACT1D,MAAA,6BAA6B,GAAG;AAC3C,IAAA,CAAC,kBAAkB,CAAC,KAAK,GAAG,SAAS;AACrC,IAAA,CAAC,kBAAkB,CAAC,OAAO,GAAG,SAAS;AACvC,IAAA,CAAC,kBAAkB,CAAC,UAAU,GAAG,gBAAgB;AACjD,IAAA,CAAC,kBAAkB,CAAC,SAAS,GAAG,gBAAgB;AAChD,IAAA,CAAC,kBAAkB,CAAC,YAAY,GAAG,eAAe;AAClD,IAAA,CAAC,kBAAkB,CAAC,sBAAsB,GAAG,kBAAkB;AAC/D,IAAA,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,cAAc;AACtD,IAAA,CAAC,kBAAkB,CAAC,WAAW,GAAG,iBAAiB;AACnD,IAAA,CAAC,kBAAkB,CAAC,QAAQ,GAAG,kBAAkB;;;ACTtC,MAAA,8BAA8B,GAAG;AAC5C,IAAA,CAAC,kBAAkB,CAAC,UAAU,GAAG,iBAAiB;AAClD,IAAA,CAAC,kBAAkB,CAAC,SAAS,GAAG,eAAe;AAC/C,IAAA,CAAC,kBAAkB,CAAC,MAAM,GAAG,yBAAyB;AACtD,IAAA,CAAC,kBAAkB,CAAC,YAAY,GAAG,UAAU;AAC7C,IAAA,CAAC,kBAAkB,CAAC,KAAK,GAAG,SAAS;AACrC,IAAA,CAAC,kBAAkB,CAAC,eAAe,GAAG,eAAe;AACrD,IAAA,CAAC,kBAAkB,CAAC,aAAa,GAAG,eAAe;AACnD,IAAA,CAAC,kBAAkB,CAAC,YAAY,GAAG,iBAAiB;AACpD,IAAA,CAAC,kBAAkB,CAAC,SAAS,GAAG,0BAA0B;AAC1D,IAAA,CAAC,kBAAkB,CAAC,IAAI,GAAG,SAAS;;;ACVzB,MAAA,4BAA4B,GAAG;AAC1C,IAAA,CAAC,iBAAiB,CAAC,UAAU,GAAG,eAAe;AAC/C,IAAA,CAAC,iBAAiB,CAAC,SAAS,GAAG,aAAa;AAC5C,IAAA,CAAC,iBAAiB,CAAC,GAAG,GAAG,SAAS;AAClC,IAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG,kBAAkB;AACnD,IAAA,CAAC,iBAAiB,CAAC,eAAe,GAAG,YAAY;AACjD,IAAA,CAAC,iBAAiB,CAAC,eAAe,GAAG,mBAAmB;AACxD,IAAA,CAAC,iBAAiB,CAAC,YAAY,GAAG,iBAAiB;AACnD,IAAA,CAAC,iBAAiB,CAAC,YAAY,GAAG,cAAc;AAChD,IAAA,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,gBAAgB;AAC3D,IAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;AACpD,IAAA,CAAC,iBAAiB,CAAC,SAAS,GAAG,UAAU;AACzC,IAAA,CAAC,iBAAiB,CAAC,cAAc,GAAG,iBAAiB;AACrD,IAAA,CAAC,iBAAiB,CAAC,SAAS,GAAG,gBAAgB;AAC/C,IAAA,CAAC,iBAAiB,CAAC,IAAI,GAAG,KAAK;AAC/B,IAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG,iBAAiB;AAClD,IAAA,CAAC,iBAAiB,CAAC,QAAQ,GAAG,kBAAkB;AAChD,IAAA,CAAC,iBAAiB,CAAC,OAAO,GAAG,qBAAqB;AAClD,IAAA,CAAC,iBAAiB,CAAC,MAAM,GAAG,iBAAiB;AAC7C,IAAA,CAAC,iBAAiB,CAAC,cAAc,GAAG,eAAe;AACnD,IAAA,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,cAAc;AACzD,IAAA,CAAC,iBAAiB,CAAC,eAAe,GAAG,qBAAqB;AAC1D,IAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG,eAAe;AAChD,IAAA,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,iBAAiB;AAC5D,IAAA,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,cAAc;AACzD,IAAA,CAAC,iBAAiB,CAAC,eAAe,GAAG,mBAAmB;AACxD,IAAA,CAAC,iBAAiB,CAAC,aAAa,GAAG,kBAAkB;AACrD,IAAA,CAAC,iBAAiB,CAAC,eAAe,GAAG,kBAAkB;AAEvD,IAAA,CAAC,iBAAiB,CAAC,OAAO,GAAG,SAAS;AACtC,IAAA,CAAC,iBAAiB,CAAC,SAAS,GAAG,kBAAkB;AACjD,IAAA,CAAC,iBAAiB,CAAC,UAAU,GAAG,mBAAmB;AACnD,IAAA,CAAC,iBAAiB,CAAC,cAAc,GAAG,oCAAoC;AACxE,IAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG,iBAAiB;AAClD,IAAA,CAAC,iBAAiB,CAAC,YAAY,GAAG,kBAAkB;AACpD,IAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG,eAAe;AAChD,IAAA,CAAC,iBAAiB,CAAC,QAAQ,GAAG,aAAa;AAC3C,IAAA,CAAC,iBAAiB,CAAC,SAAS,GAAG,cAAc;AAC7C,IAAA,CAAC,iBAAiB,CAAC,QAAQ,GAAG,aAAa;AAC3C,IAAA,CAAC,iBAAiB,CAAC,SAAS,GAAG,cAAc;AAC7C,IAAA,CAAC,iBAAiB,CAAC,SAAS,GAAG,WAAW;AAC1C,IAAA,CAAC,iBAAiB,CAAC,UAAU,GAAG,gBAAgB;AAChD,IAAA,CAAC,iBAAiB,CAAC,sBAAsB,GAAG,kBAAkB;AAC9D,IAAA,CAAC,iBAAiB,CAAC,SAAS,GAAG,eAAe;;;AC3CnC,MAAA,wBAAwB,GAAG;AACtC,IAAA,CAAC,YAAY,CAAC,MAAM,GAAG,cAAc;AACrC,IAAA,CAAC,YAAY,CAAC,SAAS,GAAG,WAAW;AACrC,IAAA,CAAC,YAAY,CAAC,KAAK,GAAG,UAAU;AAChC,IAAA,CAAC,YAAY,CAAC,KAAK,GAAG,QAAQ;AAC9B,IAAA,CAAC,YAAY,CAAC,UAAU,GAAG,gBAAgB;AAC3C,IAAA,CAAC,YAAY,CAAC,aAAa,GAAG,iBAAiB;AAC/C,IAAA,CAAC,YAAY,CAAC,OAAO,GAAG,UAAU;AAClC,IAAA,CAAC,YAAY,CAAC,YAAY,GAAG,sBAAsB;AACnD,IAAA,CAAC,YAAY,CAAC,OAAO,GAAG,SAAS;AACjC,IAAA,CAAC,YAAY,CAAC,SAAS,GAAG,WAAW;;;ACJ1B,MAAA,kCAAkC,GAAG;AAChD,IAAA,CAAC,sBAAsB,CAAC,WAAW,GAAG,wBAAwB;AAC9D,IAAA,CAAC,sBAAsB,CAAC,cAAc,GAAG,oBAAoB;AAC7D,IAAA,CAAC,sBAAsB,CAAC,aAAa,GAAG,gBAAgB;AACxD,IAAA,CAAC,sBAAsB,CAAC,aAAa,GAAG,gBAAgB;AACxD,IAAA,CAAC,sBAAsB,CAAC,MAAM,GAAG,WAAW;EAC5C;AAEW,MAAA,uCAAuC,GAAG;AACrD,IAAA,CAAC,sBAAsB,CAAC,WAAW,GAAG,IAAI;AAC1C,IAAA,CAAC,sBAAsB,CAAC,cAAc,GAAG,IAAI;AAC7C,IAAA,CAAC,sBAAsB,CAAC,aAAa,GAAG,IAAI;AAC5C,IAAA,CAAC,sBAAsB,CAAC,aAAa,GAAG,IAAI;AAC5C,IAAA,CAAC,sBAAsB,CAAC,MAAM,GAAG,GAAG;EACpC;AAEW,MAAA,oBAAoB,GAAG;AAClC,IAAA,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO;AACxB,IAAA,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ;EAC1B;AAEW,MAAA,0BAA0B,GAAG;AACxC,IAAA,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO;AACxB,IAAA,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ;EAC1B;AAEW,MAAA,kCAAkC,GAAG;AAChD,IAAA,CAAC,sBAAsB,CAAC,MAAM,GAAG,WAAW;AAC5C,IAAA,CAAC,sBAAsB,CAAC,MAAM,GAAG,QAAQ;AACzC,IAAA,CAAC,sBAAsB,CAAC,aAAa,GAAG,yBAAyB;AACjE,IAAA,CAAC,sBAAsB,CAAC,iBAAiB,GAAG,YAAY;AACxD,IAAA,CAAC,sBAAsB,CAAC,QAAQ,GAAG,cAAc;EACjD;AAEW,MAAA,uCAAuC,GAAG;AACrD,IAAA,CAAC,sBAAsB,CAAC,MAAM,GAAG,GAAG;AACpC,IAAA,CAAC,sBAAsB,CAAC,MAAM,GAAG,GAAG;AACpC,IAAA,CAAC,sBAAsB,CAAC,aAAa,GAAG,IAAI;AAC5C,IAAA,CAAC,sBAAsB,CAAC,iBAAiB,GAAG,IAAI;AAChD,IAAA,CAAC,sBAAsB,CAAC,QAAQ,GAAG,GAAG;EACtC;AAEW,MAAA,yCAAyC,GAAG;AACvD,IAAA,CAAC,sBAAsB,CAAC,MAAM,GAAG,OAAO;AACxC,IAAA,CAAC,sBAAsB,CAAC,MAAM,GAAG,QAAQ;AACzC,IAAA,CAAC,sBAAsB,CAAC,aAAa,GAAG,OAAO;AAC/C,IAAA,CAAC,sBAAsB,CAAC,iBAAiB,GAAG,QAAQ;AACpD,IAAA,CAAC,sBAAsB,CAAC,QAAQ,GAAG,OAAO;EAC1C;AAEW,MAAA,8BAA8B,GAAG;AAC5C,IAAA,CAAC,kBAAkB,CAAC,IAAI,GAAG,OAAO;AAClC,IAAA,CAAC,kBAAkB,CAAC,KAAK,GAAG,QAAQ;EACpC;AAEW,MAAA,8BAA8B,GAAG;AAC5C,IAAA,CAAC,kBAAkB,CAAC,UAAU,GAAG,SAAS;AAC1C,IAAA,CAAC,kBAAkB,CAAC,UAAU,GAAG,UAAU;AAC3C,IAAA,CAAC,kBAAkB,CAAC,OAAO,GAAG,YAAY;EAC1C;AAEW,MAAA,gCAAgC,GAAG;AAC9C,IAAA,CAAC,oBAAoB,CAAC,UAAU,GAAG,SAAS;AAC5C,IAAA,CAAC,oBAAoB,CAAC,UAAU,GAAG,UAAU;AAC7C,IAAA,CAAC,oBAAoB,CAAC,UAAU,GAAG,cAAc;AACjD,IAAA,CAAC,oBAAoB,CAAC,OAAO,GAAG,YAAY;EAC5C;AAEW,MAAA,4BAA4B,GAAG;AAC1C,IAAA,CAAC,gBAAgB,CAAC,IAAI,GAAG,OAAO;AAChC,IAAA,CAAC,gBAAgB,CAAC,KAAK,GAAG,QAAQ;AAClC,IAAA,CAAC,gBAAgB,CAAC,IAAI,GAAG,KAAK;EAC9B;AAEW,MAAA,gCAAgC,GAAG;AAC9C,IAAA,CAAC,oBAAoB,CAAC,UAAU,GAAG,SAAS;AAC5C,IAAA,CAAC,oBAAoB,CAAC,MAAM,GAAG,SAAS;AACxC,IAAA,CAAC,oBAAoB,CAAC,KAAK,GAAG,UAAU;AACxC,IAAA,CAAC,oBAAoB,CAAC,WAAW,GAAG,aAAa;AACjD,IAAA,CAAC,oBAAoB,CAAC,QAAQ,GAAG,aAAa;EAC9C;AAEW,MAAA,6BAA6B,GAAG;AAC3C,IAAA,CAAC,iBAAiB,CAAC,UAAU,GAAG,uBAAuB;AACvD,IAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG,yBAAyB;AAC1D,IAAA,CAAC,iBAAiB,CAAC,SAAS,GAAG,yBAAyB;AACxD,IAAA,CAAC,iBAAiB,CAAC,QAAQ,GAAG,cAAc;AAC5C,IAAA,CAAC,iBAAiB,CAAC,aAAa,GAAG,gBAAgB;AACnD,IAAA,CAAC,iBAAiB,CAAC,QAAQ,GAAG,YAAY;EAC1C;AAEW,MAAA,iCAAiC,GAAG;AAC/C,IAAA,CAAC,qBAAqB,CAAC,UAAU,GAAG,UAAU;AAC9C,IAAA,CAAC,qBAAqB,CAAC,UAAU,GAAG,SAAS;AAC7C,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,wBAAwB;AAChE,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,sBAAsB;EAC9D;AAEW,MAAA,wCAAwC,GAAG;AACtD,IAAA,CAAC,qBAAqB,CAAC,UAAU,GAAG,GAAG;AACvC,IAAA,CAAC,qBAAqB,CAAC,UAAU,GAAG,IAAI;AACxC,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,IAAI;AAC5C,IAAA,CAAC,qBAAqB,CAAC,cAAc,GAAG,IAAI;EAC5C;AAEW,MAAA,6BAA6B,GAAG;AAC3C,IAAA,CAAC,iBAAiB,CAAC,IAAI,GAAG,OAAO;AACjC,IAAA,CAAC,iBAAiB,CAAC,KAAK,GAAG,QAAQ;;;ACjHxB,MAAA,iCAAiC,GAAG;AAC/C,IAAA,CAAC,qBAAqB,CAAC,UAAU,GAAG,mBAAmB;AACvD,IAAA,CAAC,qBAAqB,CAAC,SAAS,GAAG,iBAAiB;AACpD,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,qBAAqB;AAC1D,IAAA,CAAC,qBAAqB,CAAC,SAAS,GAAG,KAAK;AACxC,IAAA,CAAC,qBAAqB,CAAC,SAAS,GAAG,QAAQ;AAC3C,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,kBAAkB;AACvD,IAAA,CAAC,qBAAqB,CAAC,UAAU,GAAG,oBAAoB;AACxD,IAAA,CAAC,qBAAqB,CAAC,YAAY,GAAG,sBAAsB;AAC5D,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,OAAO;AAC5C,IAAA,CAAC,qBAAqB,CAAC,YAAY,GAAG,cAAc;AACpD,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,qBAAqB;AAC1D,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,MAAM;AAC7C,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,iBAAiB;AACtD,IAAA,CAAC,qBAAqB,CAAC,iBAAiB,GAAG,gBAAgB;AAC3D,IAAA,CAAC,qBAAqB,CAAC,OAAO,GAAG,OAAO;AACxC,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,kBAAkB;AACzD,IAAA,CAAC,qBAAqB,CAAC,aAAa,GAAG,cAAc;AACrD,IAAA,CAAC,qBAAqB,CAAC,uBAAuB,GAAG,uBAAuB;AACxE,IAAA,CAAC,qBAAqB,CAAC,mBAAmB,GAAG,sBAAsB;AACnE,IAAA,CAAC,qBAAqB,CAAC,KAAK,GAAG,MAAM;AACrC,IAAA,CAAC,qBAAqB,CAAC,KAAK,GAAG,QAAQ;AACvC,IAAA,CAAC,qBAAqB,CAAC,OAAO,GAAG,SAAS;AAC1C,IAAA,CAAC,qBAAqB,CAAC,WAAW,GAAG,gBAAgB;AACrD,IAAA,CAAC,qBAAqB,CAAC,QAAQ,GAAG,aAAa;;;ACxBpC,MAAA,gCAAgC,GAAG;AAC9C,IAAA,CAAC,oBAAoB,CAAC,MAAM,GAAG,SAAS;AACxC,IAAA,CAAC,oBAAoB,CAAC,OAAO,GAAG,cAAc;AAC9C,IAAA,CAAC,oBAAoB,CAAC,aAAa,GAAG,gBAAgB;;;ICH5C,YAGX;AAHD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAOM,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS,CAAA;EASxC;AATY,UAAU,GAAA,UAAA,CAAA;AALtB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC;AAC9B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,UAAU,CAStB;;ICjBW,yBAIX;AAJD,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,wBAAA,CAAA,wBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,wBAAA,CAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,GAInC,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,kCAAkC,GAAG;AAChD,IAAA,CAAC,wBAAwB,CAAC,OAAO,GAAG,OAAO;AAC3C,IAAA,CAAC,wBAAwB,CAAC,IAAI,GAAG,SAAS;AAC1C,IAAA,CAAC,wBAAwB,CAAC,QAAQ,GAAG,SAAS;EAC9C;AAaK,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,SAAS,CAAA;EAU9C;AAVY,gBAAgB,GAAA,UAAA,CAAA;AAX5B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,MAAM,EAAE,SAAS,CAAC,wBAAwB,CAAC;AAC3C,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,gBAAgB,CAU5B;;IChCW,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,0BAA0B,GAAG;AACxC,IAAA,CAAC,gBAAgB,CAAC,OAAO,GAAG,OAAO;AACnC,IAAA,CAAC,gBAAgB,CAAC,IAAI,GAAG,SAAS;AAClC,IAAA,CAAC,gBAAgB,CAAC,QAAQ,GAAG,SAAS;EACtC;AAWK,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,SAAS,CAAA;EAQtC;AARY,QAAQ,GAAA,UAAA,CAAA;AATpB,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;AACvB,YAAA,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC;AAC/C,YAAA,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC;AACnC,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,SAAS,EAAE,aAAa;AACzB,SAAA;KACF,CAAC;AACW,CAAA,EAAA,QAAQ,CAQpB;;AC1BM,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,SAAS,CAAA;EAK5C;AALY,cAAc,GAAA,UAAA,CAAA;AAL1B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACpC,SAAA;KACF,CAAC;AACW,CAAA,EAAA,cAAc,CAK1B;;ACFM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAA;EAKhD;AALY,kBAAkB,GAAA,UAAA,CAAA;AAN9B,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;AACvC,YAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;AAC1B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,kBAAkB,CAK9B;;ACZM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,SAAS,CAAA;EAOnD;AAPY,qBAAqB,GAAA,UAAA,CAAA;AADjC,IAAA,KAAK,EAAE;AACK,CAAA,EAAA,qBAAqB,CAOjC;;ACFM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,SAAS,CAAA;EAQnD;AARY,qBAAqB,GAAA,UAAA,CAAA;AANjC,IAAA,KAAK,CAAC;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC;AAC9B,SAAA;KACF,CAAC;AACW,CAAA,EAAA,qBAAqB,CAQjC;;MCAY,iBAAiB,CAAA;AAO5B,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;AAED,IAAA,WAAA,CACU,UAAsB,EACtB,aAA4B,EACP,UAAkB,EAAA;QAFvC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QACP,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;QAbzC,IAAS,CAAA,SAAA,GAAoC,EAAE,CAAC;QAChD,IAAa,CAAA,aAAA,GAAoC,EAAE,CAAC;AAGpD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;KAU1D;AAEL,IAAA,MAAM,CAAI,OAAO,EAAA;AACf,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACvC,YAAA,OAAO,IAAI,UAAU,CAAC,QAAQ,IAAG;AAC/B,gBAAA,QAAQ,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC5D,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,SAAA;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,EAAK,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,SAAS,IAAG;AACnC,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACpE,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KAChC;AAED,IAAA,WAAW,CAAC,OAAO,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACnC,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,SAAA;KACF;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACvC,YAAA,OAAO,IAAI,UAAU,CAAC,QAAQ,IAAG;AAC/B,gBAAA,QAAQ,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC5D,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YACjC,IAAI,CAAC,uBAAuB,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAEpD,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAmB,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC;iBAC/F,SAAS,CAAC,MAAM,IAAG;gBAClB,IAAI,CAAC,gBAAgB,CAAC;oBACpB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC;oBAC5C,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,CAAC,WAAW,CAAC;AAC1B,iBAAA,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAK;AACnC,oBAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,iBAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,MAAK;AACtC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,oBAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC5B,aAAC,CAAC,CAAC;AACN,SAAA;QAED,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAClF;AAED,IAAA,MAAM,OAAO,CAAC,OAAe,EAAE,OAAY,EAAA;AACzC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC5D,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAChG,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAChD,SAAA;QACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACxD;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC3B,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KACzB;AAEO,IAAA,gBAAgB,CAAC,MAIxB,EAAA;QACC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YAC3C,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA,CAAC,CAAC;;AAEH,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,KAAK,CAAC;KACvC;AAEO,IAAA,qBAAqB,CAAC,OAAe,EAAA;QAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,EAAE;YACR,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC/C,YAAA,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,IAAG;gBAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACzC,aAAC,CAAC,CAAC;AACJ,SAAA;QACD,GAAG,CAAC,SAAS,EAAE,CAAC;AAChB,QAAA,OAAO,GAAG,CAAC;KACZ;IAEO,cAAc,CAAC,OAAe,EAAE,OAAY,EAAA;AAClD,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO;AACR,SAAA;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;;AArIU,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,sEAclB,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAdV,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADL,MAAM,EAAA,CAAA,CAAA;2FAClB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;0BAe3B,MAAM;2BAAC,WAAW,CAAA;;;MCxBD,cAAc,CAAA;AAApC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;KActC;AAZC,IAAA,UAAU,CAAoB,IAAS,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;KAClE;IAED,OAAO,CAAC,SAAS,GAAG,IAAI,EAAA;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;AAChC,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACpB,SAAA;KACF;AACF;;MChBY,iBAAiB,CAAA;AAC5B,IAAA,WAAA,CACiC,QAAa,EAAA;QAAb,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;KAE7C;AAED,IAAA,MAAM,GAAG,GAAA;AACP,QAAA,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;AACpC,QAAA,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,IAAI,UAAU,CAAC;YACpB,QAAQ,EAAE,WAAW,CAAC,SAAS;AAC/B,YAAA,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI;AAC3B,YAAA,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO;AACjC,YAAA,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI;AACrC,YAAA,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO;AAC3C,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,IACE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChC,kBAAE;AACE,oBAAA,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;AACnC,oBAAA,KAAK,EAAE,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO;0BACjF,WAAW,CAAC,IAAI;AAClB,0BAAE,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC,OAAO;8BAC/E,WAAW,CAAC,KAAK;AACnB,8BAAE,IAAI;AACT,iBAAA;kBACD,EAAE,CACL;AACF,SAAA,CAAC,CAAC;KACJ;;AA9BU,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAElB,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFV,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADL,MAAM,EAAA,CAAA,CAAA;2FAClB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;0BAG3B,MAAM;2BAAC,WAAW,CAAA;;;MCPV,qBAAqB,CAAA;IAGhC,WACE,CAAA,YAAkB,EACR,KAAwB,EAAA;QAAxB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;AAElC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KAClC;AAED,IAAA,MAAM,CAAC,KAAU,EAAA;AACf,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,YAAA,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;AAC3B,SAAA;QACD,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,IAAI,CAAC,KAAQ,EAAA;QACX,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AACF,CAAA;MAEqB,gBAAgB,CAAA;IACpC,WAAsB,CAAA,IAAY,EAAY,MAAmE,EAAA;QAA3F,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAAY,IAAM,CAAA,MAAA,GAAN,MAAM,CAA6D;KAChH;IAED,QAAQ,CAAC,GAAY,EAAE,KAA2C,EAAA;AAChE,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAC1B;IAED,IAAI,CAAC,GAAY,EAAE,KAAoB,EAAA;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrB,OAAO;AACR,SAAA;QACD,IAAI,CAAC,OAAO,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,CAAI,CAAA,EAAA,GAAG,CAAC,QAAQ,EAAE,CAAA,CAAE,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9E;AAED,IAAA,GAAG,CAAC,GAAY,EAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrB,OAAO;AACR,SAAA;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,KAAK,GAAA;QACH,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;KACF;AAKF;;AC5DK,MAAO,qBAAyB,SAAQ,gBAAmB,CAAA;IACrD,OAAO,CAAC,GAAW,EAAE,KAAU,EAAA;AACvC,QAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KAClD;AAES,IAAA,OAAO,CAAC,GAAW,EAAA;QAC3B,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YACV,OAAO;AACR,SAAA;KACF;AAES,IAAA,UAAU,CAAC,GAAW,EAAA;AAC9B,QAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC9B;AACF;;MCdY,OAAO,CAAA;AAKlB,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CACrC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,QAAQ,KACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;AACjF,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC9D,CACF,CAAC;KACH;AAED,IAAA,MAAM,CAAoB,GAAM,EAAA;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CACrC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EACtB,oBAAoB,EAAE,CACvB,CAAC;KACH;AAED,IAAA,OAAO,CAAoB,IAAS,EAAA;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CACrC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM;AACrC,YAAA,GAAG,GAAG;AACN,YAAA,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACjB,SAAA,CAAC,EAAE,EAAsB,CAAC,CAAC,EAC5B,oBAAoB,CAAC,CAAC,QAAQ,EAAE,QAAQ,KACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;AACjF,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC9D,CACF,CAAC;KACH;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;KAChC;IAED,WAAY,CAAA,OAAoB,EAAE,MAAkC,EAAA;AAClE,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAI;AACpC,YAAA,GAAG,OAAO;AACV,YAAA,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;AACnC,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACtB;AAED,IAAA,MAAM,CAAC,IAAgB,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,YAAA,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;AACrB,YAAA,GAAG,IAAI;AACR,SAAA,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,SAAA;KACF;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,CAAC,OAAO,EAAC,CAAC,CAAC;KACtC;IAED,SAAS,CAAI,KAAoB,EAAE,MAAA,GAA4B,IAAI,IAAI,IAAI,EAAA;AACzE,QAAA,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,QAAA,OAAO,IAAI,CAAC;KACb;AACF;;MChEY,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAAsB,KAAwB,EAAA;QAAxB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;KAAI;AAElD,IAAA,MAAM,CAAC,KAAU,EAAA;QACf,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb;AAED,IAAA,IAAI,CAAC,KAAQ,EAAA;QACX,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AACF,CAAA;MAEqB,aAAa,CAAA;IAIjC,WAAY,CAAA,IAAY,EAAE,MAAgE,EAAA;AACxF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACtB;AAED,IAAA,IAAI,CAAC,KAAiB,EAAA;QACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACrB,SAAS;AACV,aAAA;YACD,IAAI,CAAC,OAAO,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,CAAI,CAAA,EAAA,GAAG,CAAE,CAAA,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxE,SAAA;KACF;AAED,IAAA,QAAQ,CAAoB,GAAM,EAAA;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM;AACpD,YAAA,GAAG,GAAG;YACN,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;SAC1B,CAAC,EAAE,EAAE,CAAM,CAAC;KACd;IAED,KAAK,GAAA;QACH,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC1C,IAAI,CAAC,UAAU,CAAC,CAAG,EAAA,IAAI,CAAC,IAAI,CAAI,CAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAC;AACxC,SAAA;KACF;AAKF;;AC5DK,MAAO,kBAAgD,SAAQ,aAAgB,CAAA;IACzE,OAAO,CAAC,GAAW,EAAE,KAAU,EAAA;AACvC,QAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KAClD;AAES,IAAA,OAAO,CAAC,GAAW,EAAA;QAC3B,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YACV,OAAO;AACR,SAAA;KACF;AAES,IAAA,UAAU,CAAC,GAAW,EAAA;AAC9B,QAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC9B;AACF;;ACLK,SAAU,kBAAkB,CAAC,SAAwB,EAAA;AACzD,IAAA,IAAI,CAAE,SAAiB,CAAC,kBAAkB,EAAE;AAC1C,QAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACzD,KAAA;AAED,IAAA,IAAI,CAAE,SAAiB,CAAC,qBAAqB,EAAE;AAC5C,QAAA,SAAiB,CAAC,qBAAqB,GAAG,IAAI,OAAO,EAAE,CAAC;AAC1D,KAAA;IACD,OAAQ,SAAiB,CAAC,qBAAqB,CAAC;AAClD,CAAC;AAEK,SAAU,YAAY,CAAC,OAAY,EAAA;AACvC,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;AAC/C,IAAA,OAAO,CAAC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC5C,IAAA,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,YAAA;AAC9B,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC5B,QAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,qBAAqB,CAAC;AACnC,SAAA;AACH,KAAC,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CACb,IAAyC,EAAA;AAEzC,IAAA,OAAQ,IAAyB,CAAC,IAAI,IAAK,IAAyB,CAAC,IAAI,CAAC;AAC5E;;AC1CM,SAAU,SAAS,CAAC,IAAY,EAAA;AACpC,IAAA,MAAM,KAAK,GAAG,CAAA,EAAA,EAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAK,EAAA,EAAA,IAAI,CAAG,CAAA,CAAA,CAAC,CAAC;AACxC,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,QAAA,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACvC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACd;;SCPgB,SAAS,CAAC,KAAa,EAAE,SAAiB,YAAY,EAAA;IACpE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,MAAM,GAIR,EAAE,CAAC;;IAEP,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAY,KAAI;QAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,OAAO,EAAE,CAAC;AACZ,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACzD;;SCfgB,aAAa,GAAA;IAC3B,MAAM,QAAQ,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxD,IAAA,MAAM,EAAE,GAAG,CAAC,CAAC,KAAI;QACf,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACtC,KAAC,CAAC;AAEF,IAAA,IAAI,CAAC,cAAc,IAAI,MAAM,KAAM,MAAc,CAAC,aAAa,IAAI,QAAQ,YAAa,MAAc,CAAC,aAAa,EAAE;AACpH,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;;;IAID,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/E,IAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACnB;;ACdM,SAAU,cAAc,CAAC,SAAS,EAAA;AACtC,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SAC1B,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACtB,SAAA,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;SAChC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB;;ACHM,SAAU,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,UAAU,GAAG,IAAI,EAAA;AACjE,IAAA,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;QAC7F,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACzB,KAAA;AAED,IAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvB;;ACAM,SAAU,YAAY,CAAC,MAAc,EAAA;IACzC,OAAO;AACL,QAAA,EAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAmB,gBAAA,EAAA,MAAM,sBAAsB,EAAC;AAClG,QAAA,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAmB,gBAAA,EAAA,MAAM,mBAAmB,EAAC;AACpG,QAAA,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAmB,gBAAA,EAAA,MAAM,mBAAmB,EAAC;QACpG,EAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,CAAA,gBAAA,EAAmB,MAAM,CAAA,WAAA,CAAa,EAAC;QACpE,EAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA,gBAAA,EAAmB,MAAM,CAAA,gBAAA,CAAkB,EAAC;AACpE,QAAA,EAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAmB,gBAAA,EAAA,MAAM,CAAuB,qBAAA,CAAA,EAAE,KAAK,EAAE,SAAS,EAAC;KAC7F,CAAC;AACJ,CAAC;AAEe,SAAA,cAAc,CAAC,QAAkB,EAAE,WAAmB,EAAA;IACpE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,WAAW,KAAK,WAAW,EAAE;QAC/B,MAAM,GAAG,MAAM,CAAC;AACjB,KAAA;AACD,IAAA,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,IAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;QACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACjC,KAAA;AACH;;AC9BM,SAAU,oBAAoB,CAAC,SAAoB,EAAA;AACtD,IAAA,MAAc,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,IAAG;QAC3D,OAAO,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,CAAC,WAAW,EAAE,CAAC;QAEtB,IAAI,OAAO,YAAY,SAAS,EAAE;YAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC/B,SAAA;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC3B,YAAA,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAG;gBAC3B,IAAI,CAAC,YAAY,SAAS,EAAE;oBAC1B,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACzB,iBAAA;AAAM,qBAAA;oBACL,CAAC,CAAC,aAAa,EAAE,CAAC;oBAClB,CAAC,CAAC,WAAW,EAAE,CAAC;AACjB,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AACH,KAAC,CAAC,CAAC;AACL;;ACZa,MAAA,uBAAuB,GAAG,CAAC,SAAiB,KAAI;IAC3D,OAAO,CAAC,CAAkB,KAAI;AAC5B,QAAA,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS;cAC7B,EAAC,cAAc,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC,EAAC;cAChC,IAAI,CAAC;AACX,KAAC,CAAC;AACJ,EAAE;AAEW,MAAA,aAAa,GAAG,CAAC,OAAwB,KAAI;AACxD,IAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAClB,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,MAAM,KAAK,GAAG,CAAG,EAAA,OAAO,CAAC,KAAK,CAAA,CAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,MAAM,KAAK,EAAE,GAAG,IAAI,GAAG,EAAC,YAAY,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC,EAAC,CAAC;AACrE,EAAE;AAEW,MAAA,YAAY,GAAG,CAAC,OAAwB,KAAI;IACvD,MAAM,EAAE,GAAG,uBAAuB,CAAC;AACnC,IAAA,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC5C,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IACD,OAAO,EAAC,WAAW,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC,EAAC,CAAC;AACvC,EAAE;AAEK,MAAM,aAAa,GAAG,CAAC,WAAuC,EAAE,SAAS,GAAG,IAAI,EAAE,MAAM,GAAG,EAAE,KAAI;AACtG,IAAA,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAC3B,KAAK,CAAC,GAAG,CAAC,CACX,CAAC;IACF,OAAO,CAAC,OAAwB,KAAI;QAClC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AACtC,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AACjB,SAAA;QACD,OAAO,OAAO,CAAC,IAAI,CACjB,SAAS,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CACnE,GAAG,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAChD,CAAC,CACH,CAAC;AACJ,KAAC,CAAC;AACJ,EAAE;AAEW,MAAA,WAAW,GAAG,CAAC,OAAwB,KAAI;IACtD,MAAM,EAAE,GAAG,+EAA+E,CAAC;AAC3F,IAAA,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC5C,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC;AAC5B,EAAE;AAEI,SAAU,iBAAiB,CAAC,WAAmB,EAAA;IACnD,OAAO,CAAC,OAAwB,KAAiC;AAC/D,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACH,KAAC,CAAC;AACJ;;MCtDa,qBAAqB,CAAA;AAGhC,IAAA,WAAA,CACU,QAAkB,EAClB,aAA4B,EACP,UAAkB,EAAA;QAFvC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QACP,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;AALzC,QAAA,IAAA,CAAA,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAOtD;IAED,SAAS,CAAC,GAAqB,EAAE,IAAiB,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAA,IAAI,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;YAC/C,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AACpC,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;AACd,gBAAA,UAAU,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC;AAClC,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACzB;;AAzBU,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,oEAMtB,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sHANV,qBAAqB,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;0BAON,MAAM;2BAAC,WAAW,CAAA;;;ACNvB,IAAK,mBAYJ,CAAA;AAZD,CAAA,UAAK,mBAAmB,EAAA;AACtB,IAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,mBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,mBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,mBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,IAAA,mBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,IAAA,mBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvC,IAAA,mBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACnD,CAAC,EAZI,mBAAmB,KAAnB,mBAAmB,GAYvB,EAAA,CAAA,CAAA,CAAA;MAQY,aAAa,CAAA;AAGxB,IAAA,WAAA,CACY,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAHtC,IAAa,CAAA,aAAA,GAAkC,EAAE,CAAC;KAK3D;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAiB,QAAQ,MAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,YAAY,CAAC,EAChE,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACjC,CAAC;KACH;AAED,IAAA,aAAa,CAAC,MAAc,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAiB,QAAQ,MAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,WAAW,CAAC,EAC/D,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACjC,CAAC;KACH;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAiB,QAAQ,MAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,YAAY,CAAC,EAChE,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACjC,CAAC;KACH;AAED,IAAA,mBAAmB,CAAC,MAAc,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAiB,QAAQ,MAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,kBAAkB,CAAC,EACtE,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACjC,CAAC;KACH;AAED,IAAA,gBAAgB,CAAC,MAAc,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAiB,QAAQ,MAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,gBAAgB,CAAC,EACpE,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC;KACH;AAED,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAiB,QAAQ,MAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,oBAAoB,CAAC,EACxE,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC;KACH;AAED,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAiB,QAAQ,MAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,oBAAoB,CAAC,EACxE,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC;KACH;AAED,IAAA,eAAe,CAAC,MAAc,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAiB,QAAQ,MAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,eAAe,CAAC,EACnE,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACrC,CAAC;KACH;AAED,IAAA,iBAAiB,CAAC,MAAc,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAiB,QAAQ,MAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,iBAAiB,CAAC,EACrE,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACrC,CAAC;KACH;;0GArEU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADD,MAAM,EAAA,CAAA,CAAA;2FAClB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;AC3BhC;;AAEG;;;;"}
|