{"version":3,"file":"sunbird-cb-utils-v2.mjs","sources":["../../../../library/sunbird-cb/utils-v2/src/lib/services/configurations.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/value.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/components/image-crop/image-crop.component.ts","../../../../library/sunbird-cb/utils-v2/src/lib/components/image-crop/image-crop.component.html","../../../../library/sunbird-cb/utils-v2/src/lib/components/image-crop/image-crop.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/constants/features.enum.ts","../../../../library/sunbird-cb/utils-v2/src/lib/constants/instances.enum.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/class-change-on-scroll/class-change-on-scroll.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/default-thumbnail/default-thumbnail.directive.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/default-thumbnail/default-thumbnail.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/image-responsive/image-responsive.directive.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/image-responsive/image-responsive.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/in-view-port/in-view-port.directive.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/in-view-port/in-view-port.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/navigation/navigation.directive.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/navigation/navigation.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/permission/permission.directive.ts","../../../../library/sunbird-cb/utils-v2/src/lib/directives/permission/permission.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/helpers/functions/getStringifiedQueryParams.ts","../../../../library/sunbird-cb/utils-v2/src/lib/helpers/horizontal-scroller/horizontal-scroller.component.ts","../../../../library/sunbird-cb/utils-v2/src/lib/helpers/horizontal-scroller/horizontal-scroller.component.html","../../../../library/sunbird-cb/utils-v2/src/lib/helpers/horizontal-scroller/horizontal-scroller.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/event.model.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/utility.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/event.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.component.ts","../../../../library/sunbird-cb/utils-v2/src/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.component.html","../../../../library/sunbird-cb/utils-v2/src/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/logger.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/auth-microsoft.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/domain-conf.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/auth-keycloak.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/helpers/logout/logout.component.ts","../../../../library/sunbird-cb/utils-v2/src/lib/helpers/logout/logout.component.html","../../../../library/sunbird-cb/utils-v2/src/lib/helpers/logout/logout.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-count-transform/pipe-count-transform.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-date-concat/pipe-date-concat.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-filter/pipe-filter.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-filter/pipe-filter.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-ordinal/pipe-ordinal.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-ordinal/pipe-ordinal.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-email/pipe-email.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-email/pipe-email.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-filter-v2/pipe-filter-v2.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-filter-v2/pipe-filter-v2.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-filter-v3/pipe-filter-v3.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-filter-v3/pipe-filter-v3.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-filter-search/pipe-filter-search.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-list-filter/pipe-list-filter.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-relative-time/pipe-relative-time.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-order-by/pipe-order-by.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-order-by/pipe-order-by.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-limit-to/pipe-limit-to.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-name-transform/pipe-name-transform.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-partial-content/pipe-partial-content.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-public-URL/pipe-public-URL.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-public-URL/pipe-public-URL.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-nic-relative/pipe-nic-relative.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-nic-relative/pipe-nic-relative.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-coursename/pipe-coursename.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-coursename/PipeCourseNameModule.ts","../../../../library/sunbird-cb/utils-v2/src/lib/resolvers/explore-detail.resolver.ts","../../../../library/sunbird-cb/utils-v2/src/lib/resolvers/marketing-offering.resolve.ts","../../../../library/sunbird-cb/utils-v2/src/lib/resolvers/page.constant.ts","../../../../library/sunbird-cb/utils-v2/src/lib/resolvers/page.resolver.ts","../../../../library/sunbird-cb/utils-v2/src/lib/resolvers/page-name.resolver.ts","../../../../library/sunbird-cb/utils-v2/src/lib/resolvers/module-name.resolver.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/widget-content.model.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/widget-content.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/nps-grid.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/telemetry.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/subapplication-respond.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/user-preference.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/multilingual-translations.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services-new/widget-enroll.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services-new/data-transfer.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/services/notifications.service.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/custumdate-sorting/custum-date-sorting-pipe.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/custumdate-sorting/custumdate-sorting.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-ascendingorder/acsending-order.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-ascendingorder/pipe-ascendingorder.module.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-content-type/pipe-content-type.pipe.ts","../../../../library/sunbird-cb/utils-v2/src/lib/pipes/pipe-content-type/pipe-content-type.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { NSProfileDataV3 } from '../models/profile-v3.models'\nimport { BehaviorSubject, Observable, of, ReplaySubject, Subject, throwError } from 'rxjs'\nimport { catchError, map, shareReplay, tap } from 'rxjs/operators'\n// import { environment } from '../../../../../../src/environments/environment'\nimport { NsPage } from '../resolvers/page.model'\nimport { NsAppsConfig, NsInstanceConfig, NsUser } from './configurations.model'\nimport { IPortalUrls, IUserPreference } from './user-preference.model'\nimport * as _ from 'lodash'\n\n// const instanceConfigPath: string | null = window.location.host\n// const locationHost: string | null = window.location.host\n\n// if (!environment.production && Boolean(environment.sitePath)) {\n//   locationHost = environment.sitePath\n//   instanceConfigPath = environment.sitePath\n// }\n@Injectable({\n  providedIn: 'root',\n})\nexport class ConfigurationsService {\n  // update as the single source of truth\n  constructor(private http: HttpClient) {\n    // @Inject('env') env: any\n    // if (!env.production && Boolean(env.sitePath)) {\n    //   locationHost = env.sitePath\n    //   instanceConfigPath = env.sitePath\n    // }\n  }\n  appSetup = true\n  // The url the user tried to access while landing in the app before accepting tnc\n  userUrl = ''\n  baseUrl = `assets/configurations`\n  sitePath = `assets/configurations`\n  hostPath = (window.location.host).replace(':', '_')\n\n  userRoles: Set<string> | null = null\n  userAllRoles: Set<string> | null = null\n  userGroups: Set<string> | null = null\n  restrictedFeatures: Set<string> | null = null\n  restrictedWidgets: Set<string> | null = null\n  instanceConfig: NsInstanceConfig.IConfig | null = null\n  appsConfig: NsAppsConfig.IAppsConfig | null = null\n  rootOrg: string | null = null\n  courseContentPath?: string\n  org: string[] | null = null\n  activeOrg: string | null = ''\n  isProduction = false\n  hasAcceptedTnc = false\n  profileDetailsStatus = false\n  isActive = true\n  userPreference: IUserPreference | null = null\n  userProfile: NsUser.IUserProfile | null = null\n  userProfileV2: NsUser.IUserProfile | null = null\n  nodebbUserProfile: NsUser.INodebbUserProfile | null = null\n  // created to store complete user details sent by pid\n  unMappedUser: any\n  isAuthenticated = false\n  isNewUser = false\n  portalUrls: IPortalUrls | undefined\n  positions: any\n  overrideThemeChanges: any\n  profileTimelyNudges: any\n\n  // pinnedApps\n  pinnedApps = new BehaviorSubject<Set<string>>(new Set())\n\n  // Notifier\n  prefChangeNotifier = new ReplaySubject<Partial<IUserPreference>>(1)\n  tourGuideNotifier = new ReplaySubject<boolean>()\n  authChangeNotifier = new ReplaySubject<boolean>(1)\n\n  private updateProfile = new BehaviorSubject(false)\n  updateProfileObservable = this.updateProfile.asObservable()\n\n  updateTourGuide = new BehaviorSubject(true)\n  updateTourGuideObservable = this.updateTourGuide.asObservable()\n\n  // platform rating\n  updatePlatformRating = new BehaviorSubject({ bottom: '120px' })\n  updatePlatformRatingObservable$ = this.updatePlatformRating.asObservable()\n\n  languageTranslationFlag = new Subject()\n\n  // Preference Related Values\n  activeThemeObject: NsInstanceConfig.ITheme | null = null\n  activeFontObject: NsInstanceConfig.IFontSize | null = null\n  isDarkMode = false\n  isIntranetAllowed = false\n  isRTL = false\n  activeLocale: NsInstanceConfig.ILocalsConfig | null = null\n  activeLocaleGroup = ''\n  completedActivity: string[] | null = null\n  completedTour = false\n  profileSettings = ['profilePicture', 'learningTime', 'learningPoints']\n\n  primaryNavBar: Partial<NsPage.INavBackground> = {\n    color: 'primary',\n  }\n  pageNavBar: Partial<NsPage.INavBackground> = {\n    color: 'primary',\n  }\n  primaryNavBarConfig: NsInstanceConfig.IPrimaryNavbarConfig | null = null\n  /* for temp Fix */\n  // setBaseUrl = (sitePath: string) => `assets/configurations/${(sitePath).replace(':', '_')}`\n  // setSitePath = (sitePath: string) => `assets/configurations/${(sitePath).replace(\n  //   ':',\n  //   '_',\n  // )}`\n  // setHostPath = (sitePath: string) => (sitePath).replace(':', '_')\n  welcomeTabs: NSProfileDataV3.IProfileTab | null = null\n  compentency: any = null\n  competency: any\n  iGOTAIConfig: any\n  // variable setting for csJwtToken\n  cstoken = ''\n  netcoreConfig: any = {}\n  completionSurvey: any = {}\n  globalConfig: any = {}\n\n  changeNavBarFullView = new Subject()\n  openExploreMenuForMWeb = new Subject()\n\n  orgReadData: any\n  spvOrgReadData: any\n  menus: any\n  // Stores form read API response for reuse across calls\n  formReadData: any = null\n  // Holds the in-flight Observable so concurrent callers share one HTTP request\n  private formDataRequest$: Observable<any> | null = null\n\n  public readonly noSpecialChar = new RegExp(/^[\\p{L}\\p{M}\\p{N}\\p{Cf}._\\-$/:।()\\[\\]'! ]+$/u)\n  public readonly assessmentNoSpecialChar = new RegExp(/^[\\p{L}\\p{M}\\p{N}\\p{Cf}._\\-\\s$\":/?,।()\\[\\]'! ]+$/u)\n  public readonly htmlTasRemovalRegex = /<\\/?[^>]+>|&nbsp;|<br\\s*\\/?>|<\\/br>|&#39;|&quot;/gi\n  public readonly noSpecialCharHowToSection = new RegExp(/^[\\p{L}\\p{M}\\p{N}\\p{Cf}._\\-$/:,।()\\[\\]'! ]+$/u)\n  updateGlobalProfile(state: boolean) {\n    this.updateProfile.next(state)\n  }\n\n  updateTourGuideMethod(state: boolean) {\n    this.updateTourGuide.next(state)\n  }\n\n  updatePlatformRatingMethod(state: any) {\n    this.updatePlatformRating.next(state)\n  }\n\n  private updateOrgReadData: BehaviorSubject<string> = new BehaviorSubject('')\n  updateOrgReadDataObservable = this.updateOrgReadData.asObservable()\n  updateOrgData(id: string) {\n    this.updateOrgReadData.next(id)\n  }\n\n  /**\n   * Parent method — returns filtered form data as an Observable.\n   * Uses cached data if available; otherwise fetches from the form read API.\n   * @param formSubType  Key-value pairs used to filter the form fields\n   */\n  getFormData(formSubType: string): Observable<any> {\n    if (this.formReadData) {\n      return of(this.filterFormData(this.formReadData, formSubType))\n    }\n    if (!this.formDataRequest$) {\n      this.formDataRequest$ = this.fetchAndStoreFormData().pipe(shareReplay(1))\n    }\n    return this.formDataRequest$.pipe(\n      map(() => this.filterFormData(this.formReadData, formSubType))\n    )\n  }\n\n  /**\n   * Fetches form data from the form read API and stores it in formReadData.\n   */\n  private fetchAndStoreFormData(): Observable<any> {\n    const url = '/apis/v1/form/read'\n    const requestData: any = {\n      'request': {\n        'type': 'page',\n        'subType': 'portal-global-config',\n        'action': 'page-configuration',\n        'component': 'portal',\n        'rootOrgId': '*',\n      },\n    }\n    return this.http.post<any>(url, requestData).pipe(\n      tap((data: any) => {\n        this.formReadData = _.get(data, 'result.form.data', null)\n      }),\n      catchError((err: any) => {\n        this.formDataRequest$ = null\n        return throwError(err)\n      })\n    )\n  }\n\n  /**\n   * Filters form data based on the provided params.\n   * If data is an array, returns items where every param key-value matches.\n   * If data is an object, returns it as-is (extend as needed).\n   */\n  private filterFormData(data: any, formSubType: string): any {\n    if (data && typeof data === 'object' && formSubType) {\n      return _.get(data, formSubType, null)\n    }\n    return null\n  }\n\n}\n","import { Injectable } from '@angular/core'\r\nimport { Observable } from 'rxjs'\r\nimport { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout'\r\nimport { map } from 'rxjs/operators'\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ValueService {\r\n\r\n  constructor(\r\n    private breakpointObserver: BreakpointObserver,\r\n  ) { }\r\n\r\n  public isXSmall$: Observable<boolean> = this.breakpointObserver\r\n    .observe([Breakpoints.XSmall])\r\n    .pipe(map((res: BreakpointState) => res.matches))\r\n  public isLtMedium$: Observable<boolean> = this.breakpointObserver\r\n    .observe([Breakpoints.XSmall, Breakpoints.Small])\r\n    .pipe(map((res: BreakpointState) => res.matches))\r\n\r\n}\r\n","import { Component, EventEmitter, Inject, OnInit, Output } from '@angular/core'\r\nimport { MatLegacyDialogRef as MatDialogRef, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'\r\nimport { MatLegacySnackBar as MatSnackBar } from '@angular/material/legacy-snack-bar'\r\n\r\nimport { ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper'\r\nimport { ConfigurationsService } from '../../services/configurations.service'\r\nimport { ValueService } from '../../services/value.service'\r\nexport interface IDialogueDta {\r\n  isRoundCrop: boolean,\r\n  imageFile: File,\r\n  height: number,\r\n  width: number,\r\n  imageFileName: string\r\n}\r\n@Component({\r\n  selector: 'ws-utils-image-crop',\r\n  templateUrl: './image-crop.component.html',\r\n  styleUrls: ['./image-crop.component.scss'],\r\n})\r\nexport class ImageCropComponent implements OnInit {\r\n  // need to set for creator Logo\r\n  @Output() data = new EventEmitter<File>()\r\n  isRoundCrop = false\r\n  isNotOfRequiredSize = false\r\n  imageFile!: File\r\n  cropimageFile!: File\r\n  imageFileBase64: any = ''\r\n  width: any = ''\r\n  height: any = ''\r\n  opHeight: any\r\n  opWidth: any\r\n  imageDimensions: any = ''\r\n  croppedHeight: any = ''\r\n  croppedWidth: any = ''\r\n  cropperReadyToStart: any = false\r\n  fileName = ''\r\n  canvasRotation = 0\r\n  transform: ImageTransform = {}\r\n  resetValue = false\r\n  element: any\r\n  isXSmall = false\r\n  isThumbnail = true\r\n\r\n  constructor(\r\n    private dialogRef: MatDialogRef<ImageCropComponent>,\r\n    private configSvc: ConfigurationsService,\r\n    private snackBar: MatSnackBar,\r\n    private valueSvc: ValueService,\r\n    @Inject(MAT_DIALOG_DATA) data: IDialogueDta\r\n  ) {\r\n    this.isRoundCrop = data.isRoundCrop\r\n    if (data.imageFile) {\r\n      this.imageFile = data.imageFile\r\n    }\r\n    if (data.imageFileName) {\r\n      this.fileName = data.imageFileName\r\n    }\r\n    if (!data.isRoundCrop) {\r\n      if (data.height) {\r\n        this.opHeight = data.height\r\n      }\r\n      if (data.width) {\r\n        this.opWidth = data.width\r\n      }\r\n    }\r\n\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.thumbnailSizeDetection()\r\n    this.valueSvc.isXSmall$.subscribe((isXSmall: boolean) => {\r\n      this.isXSmall = isXSmall\r\n      if (this.isXSmall) {\r\n        this.dialogRef.updateSize('90%')\r\n      } else {\r\n        this.dialogRef.updateSize('70%')\r\n      }\r\n    })\r\n\r\n  }\r\n\r\n  // displays the default image\r\n  changeToDefaultImg($event: any) {\r\n    $event.target.src = this.configSvc.instanceConfig ?\r\n      this.configSvc.instanceConfig.logos.defaultContent : ''\r\n  }\r\n\r\n  // image cropping event\r\n  imageCropped(event: ImageCroppedEvent) {\r\n\r\n    this.imageFileBase64 = event.base64 // store the cropped image as a base64 value\r\n    this.cropimageFile = this.base64ImageToBlob(this.imageFileBase64) // convert the cropped image as a file\r\n    this.croppedHeight = event.height\r\n    this.croppedWidth = event.width\r\n\r\n  }\r\n\r\n  openSnackBar(message: string) {\r\n    this.snackBar.open(message, 'X', {\r\n      duration: 2000,\r\n    })\r\n  }\r\n  continueToImageCrop() {\r\n    this.isNotOfRequiredSize = false\r\n  }\r\n\r\n  // checks if the image is of the correct dimensions\r\n  thumbnailSizeDetection() {\r\n    const fr = new FileReader()\r\n    fr.readAsDataURL(this.imageFile)\r\n    fr.onload = () => { // when file has loaded\r\n      const img = new Image()\r\n      img.src = fr.result as string\r\n      img.onload = () => {\r\n        this.width = img.width\r\n        this.height = img.height\r\n        if (!this.isRoundCrop) {\r\n          if ((this.height === this.opHeight) && (this.width === this.opWidth)) {\r\n            this.openSnackBar('Image is of the required dimensions of the thumbnail, croping is not available!')\r\n            return\r\n          }\r\n          if ((this.height < this.opHeight) || (this.width < this.opWidth)) {\r\n            this.isNotOfRequiredSize = true\r\n          }\r\n        }\r\n      }\r\n\r\n    }\r\n\r\n  }\r\n\r\n  base64ImageToBlob(str: string): File {\r\n    // extract content type and base64 payload from original string\r\n\r\n    const pos = str.indexOf(';base64,')\r\n    // var type = str.substring(5, pos);\r\n    const b64 = str.substr(pos + 8)\r\n    // decode base64\r\n    const imageContent = atob(b64)\r\n    // create an ArrayBuffer and a view (as unsigned 8-bit)\r\n    const buffer = new ArrayBuffer(imageContent.length)\r\n    const view = new Uint8Array(buffer)\r\n    // fill the view, using the decoded base64\r\n    for (let n = 0; n < imageContent.length; n = n + 1) {\r\n      view[n] = imageContent.charCodeAt(n)\r\n    }\r\n    // convert ArrayBuffer to Blob\r\n    const blob = new Blob([view], { type: 'image/png' })\r\n    const b: any = blob\r\n    // Cast to a File() type\r\n    b.lastModifiedDate = new Date()\r\n    b.name = this.fileName\r\n    const file = new File([blob], this.fileName, { type: 'image/jpeg' })\r\n    return file\r\n\r\n  }\r\n\r\n  private flipAfterRotate() {\r\n    const flippedH = this.transform.flipH\r\n    const flippedV = this.transform.flipV\r\n    this.transform = {\r\n      ...this.transform,\r\n      flipH: flippedV,\r\n      flipV: flippedH,\r\n    }\r\n  }\r\n\r\n  rotateLeft() {\r\n    this.canvasRotation = this.canvasRotation - 1\r\n    this.flipAfterRotate()\r\n  }\r\n\r\n  rotateRight() {\r\n    this.canvasRotation = this.canvasRotation + 1\r\n    this.flipAfterRotate()\r\n  }\r\n\r\n  flipHorizontal() {\r\n    this.transform = {\r\n      ...this.transform,\r\n      flipH: !this.transform.flipH,\r\n    }\r\n  }\r\n\r\n  zoom(event: any) {\r\n    this.resetValue = false\r\n    this.transform = {\r\n      ...this.transform,\r\n      scale: event.value,\r\n    }\r\n  }\r\n\r\n  // calls when apply button is clicked,and returns the cropped image\r\n  croppingImage() {\r\n    this.dialogRef.close(this.cropimageFile)\r\n  }\r\n\r\n  reset() {\r\n    this.resetValue = true\r\n    this.canvasRotation = 0\r\n    this.transform = {}\r\n  }\r\n  // closes the dialog box\r\n  close(): void {\r\n    this.dialogRef.close()\r\n  }\r\n\r\n}\r\n","<ng-container *ngIf=\"isNotOfRequiredSize\">\r\n  <mat-dialog-content>\r\n    <div class=\"flex pl-4\">\r\n      <mat-icon class=\"ws-mat-warn-text largeicon padding-remove-left\">warning</mat-icon>\r\n      <h2 class=\"text-xl\" i18n>This image will appear stretched as it is not in proper dimension. Do you want to\r\n        continue?</h2>\r\n    </div>\r\n    <div class=\"text-sm pl-4\">\r\n      <div i18n class=\"pb-2\">Note:</div>\r\n      <div i18n class=\"pb-2\">Required dimensions : 265 * 150</div>\r\n      <div class=\"flex flex-wrap items-baseline\">\r\n        <div>Current dimensions:</div>\r\n        <div class=\"pl-1\">{{ width }} * {{ height }} px</div>\r\n      </div>\r\n    </div>\r\n  </mat-dialog-content>\r\n  <mat-dialog-actions class=\"flex flex-end\">\r\n    <div class=\"flex flex-end\">\r\n      <button mat-raised-button autofocus type=\"button\" (click)=\" close()\">\r\n        <span i18n>No</span>\r\n      </button>\r\n      <button mat-raised-button type=\"button\" class=\"text-white ws-mat-primary-background text-white\"\r\n        (click)=\" continueToImageCrop()\">\r\n        <span class=\"text-white\" i18n>Yes</span>\r\n      </button>\r\n    </div>\r\n  </mat-dialog-actions>\r\n</ng-container>\r\n<ng-container *ngIf=\"isRoundCrop\">\r\n  <!-- For Profile image - start -->\r\n  <div class=\"flex flex-between\">\r\n    <mat-icon class=\" ws-mat-primary-text margin-bottom-xxs\">crop</mat-icon>\r\n    <p mat-dialog-title class=\"text-3xl font-weight-bold ws-mat-primary-text\" i18n>Profile Photo</p>\r\n    <mat-icon class=\"float-right flex-end cursor-pointer\" (click)=\"close()\" i18n>close</mat-icon>\r\n\r\n  </div>\r\n  <mat-dialog-content class=\"p-0 overflow-hidden \" *ngIf=\"isRoundCrop\">\r\n    <div class=\"flex flex-between\">\r\n      <div class=\"profile-slides\">\r\n        <image-cropper #imageCropper class=\"image-cropper-profile\" [imageFile]=\"imageFile\" [maintainAspectRatio]=\"true\"\r\n          [aspectRatio]=\"250 / 250\" [resizeToWidth]=\"100\" [roundCropper]=\"isRoundCrop\" [resizeToHeight]=\"120\"\r\n          [cropperMinWidth]=\"500\" [format]=\"'jpeg'\" [transform]=\"transform\" [canvasRotation]=\"canvasRotation\"\r\n          (imageCropped)=\"imageCropped($event)\">\r\n        </image-cropper>\r\n      </div>\r\n    </div>\r\n    <ul class=\"toolbar cf\">\r\n      <li><button mat-raised-button class=\"mat-button\" (click)=\"rotateLeft()\">\r\n          <mat-icon class=\"text-white large-icon ws-mat-primary-text\">rotate_left</mat-icon>\r\n          <span class=\"button-text\" i18n>Rotate Left</span>\r\n        </button>\r\n      </li>\r\n      <li><button mat-raised-button class=\"mat-button\" (click)=\"rotateRight()\">\r\n          <mat-icon class=\"text-white medium-icon ws-mat-primary-text\">rotate_right</mat-icon>\r\n          <span class=\"button-text\" i18n>Rotate Right</span>\r\n        </button></li>\r\n      <li><button mat-raised-button class=\"mat-button\" (click)=\"flipHorizontal()\">\r\n          <mat-icon class=\"text-white medium-icon ws-mat-primary-text\">flip</mat-icon>\r\n          <span class=\"button-text\" i18n>Flip Horizontal</span>\r\n        </button></li>\r\n      <li><a href=\"#\"><i class=\"icon-cloud\"></i></a></li>\r\n    </ul>\r\n  </mat-dialog-content>\r\n</ng-container> <!-- For Profile image - end -->\r\n<ng-container>\r\n  <ng-container *ngIf=\"!isNotOfRequiredSize && !isRoundCrop \">\r\n    <div class=\"flex flex-between\">\r\n      <mat-icon class=\" ws-mat-primary-text margin-bottom-xxs\">crop</mat-icon>\r\n      <p mat-dialog-title class=\"text-3xl title-margin font-weight-bold ws-mat-primary-text\" i18n>Edit Image</p>\r\n      <mat-icon class=\"float-right flex-end cursor-pointer\" (click)=\"close()\" i18n>\r\n        close</mat-icon>\r\n    </div>\r\n    <mat-dialog-content *ngIf=\"!isRoundCrop\">\r\n      <div class=\"flex flex-between\">\r\n        <div class=\"Slides\">\r\n          <image-cropper #imageCropper class=\"image-cropper padding-remove\" [imageFile]=\"imageFile\"\r\n            [maintainAspectRatio]=\"true\" [aspectRatio]=\"opWidth / opHeight\" [resizeToWidth]=\"opWidth\"\r\n            [roundCropper]=\"isRoundCrop\" [resizeToHeight]=\"opHeight\" [cropperMinWidth]=\"opWidth\" [format]=\"'jpeg'\"\r\n            [transform]=\"transform\" [canvasRotation]=\"canvasRotation\" (imageCropped)=\"imageCropped($event)\">\r\n          </image-cropper>\r\n          <div class=\"flex flex-between\">\r\n            <span class=\"my-3\" i18n>Zoom</span>\r\n            <mat-slider class=\"w-full mx-3\" color=\"primary\" (input)=\"zoom($event)\" min=\"1\" max=\"2.5\" step=\"0.1\">\r\n            </mat-slider>\r\n          </div>\r\n          <div class=\"edit-feature-window \" *ngIf=\"!isXSmall\">\r\n            <div class=\"flex flex-between\">\r\n              <button mat-raised-button class=\"mat-button\" (click)=\"rotateLeft()\">\r\n                <mat-icon class=\"text-white large-icon ws-mat-primary-text\">rotate_left</mat-icon>\r\n                <span class=\"button-text\" i18n>Rotate Left</span>\r\n              </button>\r\n              <button mat-raised-button class=\"mat-button\" (click)=\"rotateRight()\">\r\n                <mat-icon class=\"text-white medium-icon ws-mat-primary-text\">rotate_right</mat-icon>\r\n                <span class=\"button-text\" i18n>Rotate Right</span>\r\n              </button>\r\n              <button mat-raised-button class=\"mat-button\" (click)=\"flipHorizontal()\">\r\n                <mat-icon class=\"text-white medium-icon ws-mat-primary-text\">flip</mat-icon>\r\n                <span class=\"button-text\" i18n>Flip Horizontal</span>\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <mat-card class=\"ws-mat-primary-border-top-bolder mat-elevation-z6 margin-bottom-l button-text\"\r\n          *ngIf=\"isThumbnail\">\r\n          <img [src]=\"imageFileBase64\" height=\"auto\" width=\"100%\" (error)=\"changeToDefaultImg($event)\" />\r\n          <div class=\"flex flex-middle justify-center margin-bottom-s padding-top-s\">\r\n            <mat-icon class=\"ws-mat-primary-text padding-right-s\">image</mat-icon>\r\n            <b class=\"mat-title margin-remove ws-mat-primary-text\" i18n>Preview</b>\r\n          </div>\r\n        </mat-card>\r\n      </div>\r\n      <div class=\"edit-feature-window heightwidth\">\r\n        <!-- <div class=\"flex flex-middle margin-left-l margin-bottom-s padding-top-s\">\r\n          <mat-icon class=\"ws-mat-primary-text padding-right-s\">swap_horiz</mat-icon>\r\n          <b class=\"mat-body margin-remove \" i18n>Cropped dimensions: {{ opWidth }} * {{ opHeight }} px</b>\r\n        </div> -->\r\n        <div class=\"flex flex-middle margin-left-l margin-bottom-s padding-top-s\">\r\n          <mat-icon class=\"ws-mat-primary-text padding-right-s\">swap_horiz</mat-icon>\r\n          <b class=\"mat-body margin-remove \">\r\n            <span i18n>Cropped Width: </span>\r\n            <span>{{ croppedWidth }}</span>\r\n            <span i18n>px</span>\r\n          </b>\r\n        </div>\r\n        <div class=\"flex flex-middle margin-left-l margin-bottom-s padding-top-s\">\r\n          <mat-icon class=\"ws-mat-primary-text padding-right-s\">swap_vert</mat-icon>\r\n          <b class=\"mat-body margin-remove \">\r\n            <span i18n>Cropped Height: </span>\r\n            <span>{{ croppedHeight }}</span>\r\n            <span i18n>px</span>\r\n          </b>\r\n        </div>\r\n      </div>\r\n    </mat-dialog-content>\r\n  </ng-container>\r\n  <mat-dialog-actions align=\"end\" *ngIf=\"!isNotOfRequiredSize \">\r\n    <div class=\"flex flex-end margin-bottom-s\">\r\n      <!--  <button mat-raised-button type=\"button\" (click)=\" reset()\">\r\n        <span i18n>Reset</span>\r\n      </button> -->\r\n      <button mat-raised-button type=\"button\" class=\"text-white ws-mat-primary-background text-white\"\r\n        (click)=\" croppingImage()\">\r\n        <span class=\"text-white\" i18n>Apply</span>\r\n      </button>\r\n    </div>\r\n  </mat-dialog-actions>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common'\r\nimport { NgModule } from '@angular/core'\r\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button'\nimport { MatLegacyCardModule as MatCardModule } from '@angular/material/legacy-card'\nimport { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatLegacySliderModule as MatSliderModule } from '@angular/material/legacy-slider'\nimport { MatToolbarModule } from '@angular/material/toolbar'\nimport { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip'\r\nimport { ImageCropperModule } from 'ngx-image-cropper'\r\nimport { ImageCropComponent } from './image-crop.component'\r\n// @dynamic\r\n@NgModule({\n    declarations: [ImageCropComponent],\n    imports: [\n        CommonModule,\n        ImageCropperModule,\n        MatIconModule,\n        MatButtonModule,\n        MatDialogModule,\n        MatToolbarModule,\n        MatDialogModule,\n        MatCardModule,\n        MatTooltipModule,\n        MatSliderModule,\n    ],\n    exports: [ImageCropComponent]\n})\r\nexport class ImageCropModule { }\r\n","export enum EFeatures {\r\n  // Playlists\r\n  PLAYLIST = 'playlist',\r\n  PLAYLIST_CREATE = 'playlistCreate',\r\n  PLAYLIST_ADD_NEW_CONTENT = 'playlistAddNewContent',\r\n  PLAYLIST_REMOVE_EXISTING_CONTENT = 'playlistRemoveExistingContent',\r\n  PLAYLIST_DELETE = 'playlistDelete',\r\n  PLAYLIST_SHARE = 'playlistShare',\r\n\r\n  // Goals\r\n  GOAL = 'goal',\r\n  GOAL_CREATE_OWN = 'goalCreateOwn',\r\n  GOAL_CREATE_SUGGESTED = 'goalCreateSuggested',\r\n  GOAL_EDIT_EXISTING_GOAL = 'goalEditExistingGoal',\r\n  GOAL_DELETE_EXISTING_GOAL = 'goalDeleteExistingGoal',\r\n  GOAL_SHARE_GOAL_WITH_OTHERS = 'goalShareGoalWithOthers',\r\n  GOAL_VIEW_ALL_GOALS_SECTION = 'goalViewAllGoalsSection',\r\n  GOAL_VIEW_IN_PROGRESS_GOALS_SECTION = 'goalViewInProgressGoalsSection',\r\n  GOAL_VIEW_COMPLETED_GOALS_SECTION = 'goalViewCompletedGoalsSection',\r\n\r\n  // Navigator\r\n  NAVIGATOR = 'navigator',\r\n  NAVIGATOR_VIEW_NAVIGATOR_CAROUSEL = 'navigatorViewNavigatorCarousel',\r\n  NAVIGATOR_VIEW_ROLES_PAGE = 'navigatorViewRolesPage',\r\n  NAVIGATOR_SELECT_ANY_PILLAR = 'navigatorSelectAnyPillar',\r\n  NAVIGATOR_PURSUE_ANY_OFFERING = 'navigatorPursueAnyOffering',\r\n  NAVIGATOR_CREATE_GOAL_FROM_OFFERING = 'navigatorCreateGoalFromOffering',\r\n  NAVIGATOR_VIEW_EXPLORE_PAGE = 'navigatorViewExplorePage',\r\n  NAVIGATOR_SELECT_ANY_LEARNING_PATH = 'navigatorSelectAnyLearningPath',\r\n  NAVIGATOR_CREATE_GOAL_FROM_LEARNING_PATH = 'navigatorCreateGoalFromLearningPath',\r\n  NAVIGATOR_VIEW_SUGGESTIONS_PAGE = 'navigatorViewSuggestionsPage',\r\n  NAVIGATOR_SELECT_SUGGESTED_TOPICS = 'navigatorSelectSuggestedTopics',\r\n  NAVIGATOR_GET_SUGGESTIONS_OF_SELECTED_TOPICS = 'navigatorGetSuggestionsOfSelectedTopics',\r\n  NAVIGATOR_CREATE_GOAL_FROM_SELECTED_LEARNING_PATHS = 'navigatorCreateGoalFromSelectedLearningPaths',\r\n  NAVIGATOR_VIEW_INDUSTRIES_PAGE = 'navigatorViewIndustriesPage',\r\n  NAVIGATOR_VIEW_CME_PAGE = 'navigatorViewCmePage',\r\n  NAVIGATOR_SELECT_SUBDOMAIN = 'navigatorSelectSubdomain',\r\n  NAVIGATOR_SELECT_PILLAR = 'navigatorSelectPillar',\r\n  NAVIGATOR_SELECT_THEME = 'navigatorSelectTheme',\r\n  NAVIGATOR_VIEW_CPG_PAGE = 'navigatorViewCpgPage',\r\n  NAVIGATOR_VIEW_ENERGY_PAGE = 'navigatorViewEnergyPage',\r\n  NAVIGATOR_VIEW_FINANCIAL_SERVICES_PAGE = 'navigatorViewFinancialServicesPage',\r\n  NAVIGATOR_VIEW_HEALTH_CARE_PAGE = 'navigatorViewHealthCarePage',\r\n  NAVIGATOR_VIEW_INSURANCE_PAGE = 'navigatorViewInsurancePage',\r\n  NAVIGATOR_VIEW_LIFE_SCIENCES_PAGE = 'navigatorViewLifeSciencesPage',\r\n  NAVIGATOR_VIEW_MFG_PAGE = 'navigatorViewMfgPage',\r\n  NAVIGATOR_VIEW_RETAIL_PAGE = 'navigatorViewRetailPage',\r\n  NAVIGATOR_VIEW_TRAVEL_AND_HOSPITALITY_PAGE = 'navigatorViewTravelAndHospitalityPage',\r\n  NAVIGATOR_VIEW_UTILITIES_PAGE = 'navigatorViewUtilitiesPage',\r\n  NAVIGATOR_VIEW_CME_ANALYTICS = 'navigatorViewCmeAnalytics',\r\n  NAVIGATOR_VIEW_GPG_ANALYTICS = 'navigatorViewGpgAnalytics',\r\n  NAVIGATOR_VIEW_ENERGY_ANALYTICS = 'navigatorViewEnergyAnalytics',\r\n  NAVIGATOR_VIEW_FINANCIAL_SERVICES_ANALYTICS = 'navigatorViewFinancialServicesAnalytics',\r\n  NAVIGATOR_VIEW_HEALTH_CARE_ANALYTICS = 'navigatorViewHealthCareAnalytics',\r\n  NAVIGATOR_VIEW_INSURANCE_ANALYTICS = 'navigatorViewInsuranceAnalytics',\r\n  NAVIGATOR_VIEW_LIFE_SCIENCES_ANALYTICS = 'navigatorViewLifeSciencesAnalytics',\r\n  NAVIGATOR_VIEW_MFG_ANALYTICS = 'navigatorViewMfgAnalytics',\r\n  NAVIGATOR_VIEW_RETAIL_ANALYTICS = 'navigatorViewRetailAnalytics',\r\n  NAVIGATOR_VIEW_TRAVEL_AND_HOSPITALITY_ANALYTICS = 'navigatorViewTravelAndHospitalityAnalytics',\r\n  NAVIGATOR_VIEW_UTILITIES_ANALYTICS = 'navigatorViewUtilitiesAnalytics',\r\n  NAVIGATOR_VIEW_PILLARS_PAGE = 'navigatorViewPillarsPage',\r\n  NAVIGATOR_VIEW_DIFFERENT_COURSES_IN_PILLAR = 'navigatorViewDifferentCoursesInPillar',\r\n  NAVIGATOR_VIEW_FULL_STACK_PAGE = 'navigatorViewFullStackPage',\r\n  NAVIGATOR_VIEW_DIFFERENT_FULL_STACK_PROGRAMS = 'navigatorViewDifferentFullStackPrograms',\r\n\r\n  // Catalog\r\n  CATALOG = 'catalog',\r\n  CATALOG_VIEW_CATALOG_LIST = 'catalogViewCatalogList',\r\n  CATALOG_SELECT_ITEM_FROM_CATALOG_LIST = 'catalogSelectItemFromCatalogList',\r\n  CATALOG_VIEW_PROGRAMS_STRIP = 'catalogViewProgramsStrip',\r\n  CATALOG_VIEW_COURSES_STRIP = 'catalogViewCoursesStrip',\r\n  CATALOG_VIEW_LEARNING_MODULES_STRIP = 'catalogViewLearningModulesStrip',\r\n  CATALOG_VIEW_RESOURCES_STRIP = 'catalogViewResourcesStrip',\r\n\r\n  // Marketing Page\r\n  MARKETING_PAGE = 'marketingPage',\r\n  MARKETING_PAGE_VIEW_BRAND_ASSETS_PAGE = 'marketingPageViewBrandAssetsPage',\r\n  MARKETING_PAGE_VIEW_CORPORATE_STRIP = 'marketingPageViewCorporateStrip',\r\n  MARKETING_PAGE_VIEW_EMPLOYEE_STRIP = 'marketingPageViewEmployeeStrip',\r\n  MARKETING_PAGE_VIEW_EXPERIMENTAL_SHOWCASE_PAGE = 'marketingPageViewExperimentalShowcasePage',\r\n  MARKETING_PAGE_VIEW_HUBS_PAGE = 'marketingPageViewHubsPage',\r\n  MARKETING_PAGE_VIEW_CONNECTICUT_STRIP = 'marketingPageViewConnecticutStrip',\r\n  MARKETING_PAGE_VIEW_INDIANA_STRIP = 'marketingPageViewIndianaStrip',\r\n  MARKETING_PAGE_VIEW_RHODE_ISLAND_STRIP = 'marketingPageViewRhodeIslandStrip',\r\n  MARKETING_PAGE_VIEW_CLIENT_STORIES_PAGE = 'marketingPageViewClientStoriesPage',\r\n  MARKETING_PAGE_VIEW_AGILE_SCALE_AT_DIGITAL_STRIP = 'marketingPageViewAgileScaleAtDigitalStrip',\r\n  MARKETING_PAGE_VIEW_AI_POWERED_CORE_STRIP = 'marketingPageViewAiPoweredCoreStrip',\r\n  MARKETING_PAGE_VIEW_ALWAYS_ON_LEAVING_STRIP = 'marketingPageViewAlwaysOnLeavingStrip',\r\n  MARKETING_PAGE_VIEW_SERVICES_PAGE = 'marketingPageViewServicesPage',\r\n  MARKETING_PAGE_VIEW_SERVICES_PENTAGON = 'marketingPageViewServicesPentagon',\r\n  MARKETING_PAGE_VIEW_OFFERINGS_LIST = 'marketingPageViewOfferingsList',\r\n  MARKETING_PAGE_SELECT_ANY_OFFERING = 'marketingPageSelectAnyOffering',\r\n  MARKETING_PAGE_SELECT_ANY_PILLAR_FROM_PENTAGON = 'marketingPageSelectAnyPillarFromPentagon',\r\n  MARKETING_PAGE_VIEW_INDUSTRIES_PAGE = 'marketingPageViewIndustriesPage',\r\n  MARKETING_PAGE_VIEW_INDUSTRIES_LIST = 'marketingPageViewIndustriesList',\r\n  MARKETING_PAGE_SELECT_ANY_INDUSTRY = 'marketingPageSelectAnyIndustry',\r\n  MARKETING_PAGE_VIEW_PRODUCT_AND_SUBSIDIARIES_PAGE = 'marketingPageViewProductAndSubsidiariesPage',\r\n  MARKETING_PAGE_VIEW_PRODUCT_AND_SUBSIDIARIES_LIST = 'marketingPageViewProductAndSubsidiariesList',\r\n  MARKETING_PAGE_SELECT_ANY_PRODUCT_AND_SUBSIDIARY = 'marketingPageSelectAnyProductAndSubsidiary',\r\n\r\n  // Interests\r\n  INTERESTS = 'interests',\r\n  INTERESTS_ADD_INTERESTS_FROM_SEARCH = 'interestsAddInterestsFromSearch',\r\n  INTERESTS_ADD_INTERESTS_FROM_OUR_SUGGESTIONS_SECTION = 'interestsAddInterestsFromOurSuggestionsSection',\r\n  INTERESTS_REMOVE_INTERESTS_FROM_MY_INTERESTS_SECTION = 'interestsRemoveInterestsFromMyInterestsSection',\r\n  INTERESTS_VIEW_INTERESTS_SEARCH_FIELD = 'interestsViewInterestsSearchField',\r\n  INTERESTS_VIEW_MY_INTERESTS_SECTION = 'interestsViewMyInterestsSection',\r\n  INTERESTS_VIEW_OWN_SUGGESTIONS_SECTION = 'interestsViewOwnSuggestionsSection',\r\n  INTERESTS_VIEW_MORE_SUGGESTIONS_BUTTON = 'interestsViewMoreSuggestionsButton',\r\n\r\n  // Feedback\r\n  FEEDBACK = 'feedback',\r\n  FEEDBACK_VIEW_PLATFORM_FEEDBACK_SECTION = 'feedbackViewPlatformFeedbackSection',\r\n  FEEDBACK_STAR_RATING_FOR_PLATFORM = 'feedbackStarRatingForPlatform',\r\n  FEEDBACK_WRITE_PLATFORM_FEEDBACK = 'feedbackWritePlatformFeedback',\r\n  FEEDBACK_RESET_PLATFORM_FEEDBACK = 'feedbackResetPlatformFeedback',\r\n  FEEDBACK_SUBMIT_PLATFORM_FEEDBACK = 'feedbackSubmitPlatformFeedback',\r\n  FEEDBACK_VIEW_CONTENT_FEEDBACK_SECTION = 'feedbackViewContentFeedbackSection',\r\n  FEEDBACK_STAR_RATING_FOR_CONTENT = 'feedbackStarRatingForContent',\r\n  FEEDBACK_WRITE_CONTENT_FEEDBACK = 'feedbackWriteContentFeedback',\r\n  FEEDBACK_RESET_CONTENT_FEEDBACK = 'feedbackResetContentFeedback',\r\n  FEEDBACK_SUBMIT_CONTENT_FEEDBACK = 'feedbackSubmitContentFeedback',\r\n  FEEDBACK_VIEW_ISSUE_REPORTING_SECTION = 'feedbackViewIssueReportingSection',\r\n  FEEDBACK_WRITING_ISSUE = 'feedbackWritingIssue',\r\n  FEEDBACK_RESET_ISSUE = 'feedbackResetIssue',\r\n  FEEDBACK_SUBMIT_ISSUE = 'feedbackSubmitIssue',\r\n\r\n  // Contact Us\r\n  CONTACT_US = 'contactUs',\r\n  CONTACT_US_VIEW_RAISE_AHD_SECTION = 'contactUsViewRaiseAhdSection',\r\n  CONTACT_US_VIEW_MAIL_US_SECTION = 'contactUsViewMailUsSection',\r\n  CONTACT_US_VIEW_TALK_TO_US_SECTION = 'contactUsViewTalkToUsSection',\r\n  CONTACT_US_RAISE_AHD = 'contactUsRaiseAhd',\r\n  CONTACT_US_WRITE_EMAIL = 'contactUsWriteEmail',\r\n  CONTACT_US_DIAL_FROM_PHONE = 'contactUsDialFromPhone',\r\n\r\n  // FAQs\r\n  FAQ = 'faq',\r\n  FAQ_VIEW_LOGIN_FAQS = 'faqViewLoginFaqs',\r\n  FAQ_VIEW_ODC_ACCESS_FAQS = 'faqViewOdcAccessFaqs',\r\n  FAQ_VIEW_COMPATIBILITY_FAQS = 'faqViewCompatibilityFaqs',\r\n  FAQ_VIEW_INSTALLATION_FAQS = 'faqViewInstallationFaqs',\r\n  FAQ_VIEW_PROGRESS_COMPLETION_FAQS = 'faqViewProgressCompletionFaqs',\r\n  FAQ_VIEW_VIDEO_FAQS = 'faqViewVideoFaqs',\r\n  FAQ_VIEW_AUTHORING_FAQS = 'faqViewAuthoringFaqs',\r\n\r\n  // Mobile Apps\r\n  MOBILE_APPS = 'mobileApps',\r\n  MOBILE_APPS_VIEW_ANDROID_APP_SECTION = 'mobileAppsViewAndroidAppSection',\r\n  MOBILE_APPS_DOWNLOAD_APP_FROM_PLAY_STORE = 'mobileAppsDownloadAppFromPlayStore',\r\n  MOBILE_APPS_DOWNLOAD_APP_FROM_OUR_SERVER = 'mobileAppsDownloadAppFromOurServer',\r\n  MOBILE_APPS_VIEW_QR_CODE_FOR_ANDROID_APP = 'mobileAppsViewQrCodeForAndroidApp',\r\n  MOBILE_APPS_VIEW_IOS_APP_SECTION = 'mobileAppsViewIosAppSection',\r\n  MOBILE_APPS_DOWNLOAD_IOS_APP = 'mobileAppsDownloadIosApp',\r\n  MOBILE_APPS_VIEW_QR_CODE_FOR_IOS_APP = 'mobileAppsViewQrCodeForIosApp',\r\n\r\n  // About Us\r\n  ABOUT_US = 'aboutUs',\r\n  ABOUT_US_VIEW_ABOUT_US_PAGE_SECTIONS = 'aboutUsViewAboutUsPageSections',\r\n\r\n  // Settings\r\n  SETTINGS = 'settings',\r\n  SETTINGS_VIEW_LANGUAGE_SECTION = 'settingsViewLanguageSection',\r\n  SETTINGS_VIEW_FONT_SIZE_SECTION = 'settingsViewFontSizeSection',\r\n  SETTINGS_VIEW_THEME_SECTION = 'settingsViewThemeSection',\r\n  SETTINGS_CHANGE_LANGUAGE = 'settingsChangeLanguage',\r\n  SETTINGS_CHANGE_FONT_SIZE = 'settingsChangeFontSize',\r\n  SETTINGS_CHANGE_THEME = 'settingsChangeTheme',\r\n\r\n  // Login Page\r\n  LOGIN_PAGE = 'loginPage',\r\n  LOGIN_PAGE_LOGIN_FOR_INFOSCIONS = 'loginPageLoginForInfoscions',\r\n  LOGIN_PAGE_LOGIN_FOR_SUBSIDIARIES = 'loginPageLoginForSubsidiaries',\r\n  LOGIN_PAGE_LOGIN_FOR_NEW_RECRUITS = 'loginPageLoginForNewRecruits',\r\n  LOGIN_PAGE_ABOUT_US = 'loginPageAboutUs',\r\n  LOGIN_PAGE_TERMS_OF_USE = 'loginPageTermsOfUse',\r\n  LOGIN_PAGE_FAQS = 'loginPageFaqs',\r\n  LOGIN_PAGE_CONTACT_US = 'loginPageContactUs',\r\n\r\n  // TOC Page\r\n  TOC_PAGE = 'tocPage',\r\n  TOC_PAGE_VIEW_OVERVIEW_SECTION = 'tocPageViewOverviewSection',\r\n  TOC_PAGE_VIEW_INSTRUCTOR_LED_SECTION = 'tocPageViewInstructorLedSection',\r\n  TOC_PAGE_VIEW_COHORTS_SECTION = 'tocPageViewCohortsSection',\r\n  TOC_PAGE_VIEW_DISCUSSION_FORUM_SECTION = 'tocPageViewDiscussionForumSection',\r\n  TOC_PAGE_VIEW_COURSE_ANALYTICS_SECTION = 'tocPageViewCourseAnalyticsSection',\r\n  TOC_PAGE_VIEW_WHATS_NEXT_SECTION = 'tocPageViewWhatsNextSection',\r\n  TOC_PAGE_VIEW_PART_OF_SECTION = 'tocPageViewPartOfSection',\r\n  TOC_PAGE_REGISTER_FOR_UPCOMING_TRAINING = 'tocPageRegisterForUpcomingTraining',\r\n  TOC_PAGE_UNREGISTER_FROM_REGISTERED_TRAINING = 'tocPageUnregisterFromRegisteredTraining',\r\n  TOC_PAGE_SHARE_INSTRUCTOR_LED_TRAININGS = 'tocPageShareInstructorLedTrainings',\r\n  TOC_PAGE_VIEW_EDUCATORS_OF_TRAININGS = 'tocPageViewEducatorsOfTrainings',\r\n  TOC_PAGE_NOMINATE_OTHERS_FOR_TRAININGS = 'tocPageNominateOthersForTrainings', // Applicable only for JL6 and above.\r\n  TOC_PAGE_REQUEST_TRAINING = 'tocPageRequestTraining', // Applicable only for JL6 and above.\r\n  TOC_PAGE_VIEW_ACTIVE_LEARNERS_SECTION = 'tocPageViewActiveLearnersSection',\r\n  TOC_PAGE_VIEW_ALL_ACTIVE_LEARNERS = 'tocPageViewAllActiveLearners',\r\n  TOC_PAGE_VIEW_CURRENTLY_ACTIVE_LEARNERS = 'tocPageViewCurrentlyActiveLearners',\r\n  TOC_PAGE_VIEW_LEARNERS_SHARING_THE_SAME_GOALS = 'tocPageViewLearnersSharingTheSameGoals',\r\n  TOC_PAGE_VIEW_EXPERTS_AND_TUTORS_SECTION = 'tocPageViewExpertsAndTutorsSection',\r\n  TOC_PAGE_VIEW_ALL_EXPERTS_AND_TUTORS = 'tocPageViewAllExpertsAndTutors',\r\n  TOC_PAGE_VIEW_AUTHORS_OF_COURSE = 'tocPageViewAuthorsOfCourse',\r\n  TOC_PAGE_VIEW_EDUCATORS_OF_COURSE = 'tocPageViewEducatorsOfCourse',\r\n  TOC_PAGE_VIEW_TOPPERS_OF_COURSE = 'tocPageViewToppersOfCourse',\r\n  TOC_PAGE_MAIL_THE_PERSON = 'tocPageMailThePerson',\r\n  TOC_PAGE_CALL_THE_PERSON = 'tocPageCallThePerson',\r\n  TOC_PAGE_POST_VIEWS_IN_DISCUSSION_FORUM = 'tocPagePostViewsInDiscussionForum',\r\n  TOC_PAGE_LEARN_THE_COURSE = 'tocPageLearnTheCourse',\r\n  TOC_PAGE_LIKE_THE_COURSE = 'tocPageLikeTheCourse',\r\n  TOC_PAGE_SHARE_THE_COURSE = 'tocPageShareTheCourse',\r\n  TOC_PAGE_ADD_COURSE_TO_GOALS = 'tocPageAddCourseToGoals',\r\n  TOC_PAGE_ADD_COURSE_TO_PLAYLIST = 'tocPageAddCourseToPlaylist',\r\n  TOC_PAGE_ADD_COURSE_TO_WATCHLIST = 'tocPageAddCourseToWatchlist',\r\n  TOC_PAGE_GIVE_COURSE_FEEDBACK = 'tocPageGiveCourseFeedback',\r\n  TOC_PAGE_RESUME_THE_COURSE = 'tocPageResumeTheCourse',\r\n  TOC_PAGE_START_OVER_THE_COURSE = 'tocPageStartOverTheCourse',\r\n  TOC_PAGE_GO_TO_COURSE_QUIZ = 'tocPageGoToCourseQuiz',\r\n  TOC_PAGE_GO_TO_COURSE_HANDS_ON = 'tocPageGoToCourseHandsOn',\r\n\r\n  // Navbar\r\n  NAVBAR = 'navbar',\r\n  NAVBAR_VIEW_LOGO = 'navbarViewLogo',\r\n  NAVBAR_CATALOG_ICON = 'navbarCatalogIcon',\r\n  NAVBAR_NAVIGATOR_ICON = 'navbarNavigatorIcon',\r\n  NAVBAR_NOTIFICATION_ICON = 'navbarNotificationIcon',\r\n  NAVBAR_SETTINGS_ICON = 'navbarSettingsIcon',\r\n  NAVBAR_SEARCH_ICON = 'navbarSearchIcon',\r\n  NAVBAR_APPS_ICON = 'navbarAppsIcon',\r\n\r\n  // Home Page\r\n  HOME_PAGE = 'homePage',\r\n  HOME_PAGE_VIEW_CAROUSEL = 'homePageViewCarousel',\r\n  HOME_PAGE_VIEW_CONTINUE_LEARNING_STRIP = 'homePageViewContinueLearningStrip',\r\n  HOME_PAGE_VIEW_FEATURED_APPS_STRIP = 'homePageViewFeaturedAppsStrip',\r\n  HOME_PAGE_VIEW_RECENT_ADDITION_TO_PLAYLISTS_STRIP = 'homePageViewRecentAdditionToPlaylistsStrip',\r\n  HOME_PAGE_VIEW_BASED_ON_YOUR_INTERESTS_STRIP = 'homePageViewBasedOnYourInterestsStrip',\r\n  HOME_PAGE_VIEW_BASED_ON_WHAT_YOU_VIEWED_STRIP = 'homePageViewBasedOnWhatYouViewedStrip',\r\n  HOME_PAGE_VIEW_LATEST_STRIP = 'homePageViewLatestStrip',\r\n  HOME_PAGE_VIEW_TRENDING_STRIP = 'homePageViewTrendingStrip',\r\n  HOME_PAGE_SHOW_COMPLETED_FILTER = 'homePageShowCompletedFilter',\r\n  HOME_PAGE_SHOW_RESOURCES_FILTER = 'homePageShowResourcesFilter',\r\n\r\n  // TNC Page\r\n  TNC_PAGE = 'tncPage',\r\n  TNC_PAGE_VIEW_CONTEST_RULES_SECTION = 'tncPageViewContestRulesSection',\r\n  TNC_PAGE_VIEW_DATA_PRIVACY_SECTION = 'tncPageViewDataPrivacySection',\r\n  TNC_PAGE_ACCEPT_TERMS_AND_CONDITIONS = 'tncPageAcceptTermsAndConditions',\r\n\r\n  // Blogs\r\n  BLOGS = 'blogs',\r\n  BLOG_VIEW_OTHERS_BLOGS = 'blogViewOthersBlogs',\r\n  BLOGS_LIKE_OTHER_BLOGS = 'blogsLikeOtherBlogs',\r\n  BLOGS_VIEW_MY_BLOGS = 'blogsViewMyBlogs',\r\n  BLOGS_WRITE_NEW_BLOG = 'blogsWriteNewBlog',\r\n  BLOGS_SAVE_BLOG_AS_DRAFT = 'blogsSaveBlogAsDraft',\r\n  BLOGS_EDIT_MY_SAVED_BLOG = 'blogsEditMySavedBlog',\r\n  BLOGS_PUBLISH_MY_BLOG = 'blogsPublishMyBlog',\r\n  BLOGS_UPVOTE_FOR_BLOG = 'blogsUpvoteForBlog',\r\n  BLOGS_DOWNVOTE_FOR_BLOG = 'blogsDownvoteForBlog',\r\n  BLOGS_WRITE_RESPONSE_FOR_BLOG = 'blogsWriteResponseForBlog',\r\n  BLOGS_DELETE_MY_BLOG = 'blogsDeleteMyBlog',\r\n  BLOGS_EDIT_MY_RESPONSE = 'blogsEditMyResponse',\r\n  BLOGS_DELETE_MY_RESPONSE = 'blogsDeleteMyResponse',\r\n  BLOGS_VIEW_DRAFTS_SECTION = 'blogsViewDraftsSection',\r\n  BLOGS_VIEW_PUBLISHED_SECTION = 'blogsViewPublishedSection',\r\n\r\n  // Question and Answer\r\n  QUESTION_AND_ANSWER = 'questionAndAnswer',\r\n  QUESTION_AND_ANSWER_VIEW_ALL_QUESTIONS_AND_ANSWERS = 'questionAndAnswerViewAllQuestionsAndAnswers',\r\n  QUESTION_AND_ANSWER_VIEW_ONLY_UNANSWERED_QUESTIONS = 'questionAndAnswerViewOnlyUnansweredQuestions',\r\n  QUESTION_AND_ANSWER_VIEW_MY_TIMELINE = 'questionAndAnswerViewMyTimeline',\r\n  QUESTION_AND_ANSWER_ASK_NEW_QUESTION = 'questionAndAnswerAskNewQuestion',\r\n  QUESTION_AND_ANSWER_VIEW_SPECIFIC_QUESTION = 'questionAndAnswerViewSpecificQuestion',\r\n  QUESTION_AND_ANSWER_UPVOTE_FOR_ANSWER = 'questionAndAnswerUpvoteForAnswer',\r\n  QUESTION_AND_ANSWER_DOWNVOTE_FOR_ANSWER = 'questionAndAnswerDownvoteForAnswer',\r\n  QUESTION_AND_ANSWER_LIKE_AN_ANSWER = 'questionAndAnswerLikeAnAnswer',\r\n  QUESTION_AND_ANSWER_ADD_COMMENT_FOR_ANY_ANSWER = 'questionAndAnswerAddCommentForAnyAnswer',\r\n  QUESTION_AND_ANSWER_ADD_ANSWER_FOR_ANY_QUESTION = 'questionAndAnswerAddAnswerForAnyQuestion',\r\n  QUESTION_AND_ANSWER_SAVE_QUESTION_AS_DRAFT = 'questionAndAnswerSaveQuestionAsDraft',\r\n  QUESTION_AND_ANSWER_PUBLISH_SAVED_QUESTION = 'questionAndAnswerPublishedSavedQuestion',\r\n  QUESTION_AND_ANSWER_VIEW_DRAFTS_SECTION = 'questionAndAnswerViewDraftsSection',\r\n  QUESTION_AND_ANSWER_VIEW_PUBLISHED_SECTION = 'questionAndAnswerViewPublishedSection',\r\n\r\n  // Badges\r\n  BADGES = 'badges',\r\n  BADGES_VIEW_RECENTLY_EARNED_BADGE = 'badgesViewRecentlyEarnedBadge',\r\n  BADGES_VIEW_ALL_EARNED_BADGES = 'badgesViewAllEarnedBadges',\r\n  BADGES_VIEW_NEXT_TARGETTED_BADGES = 'badgesViewNextTargettedBadges',\r\n\r\n  // Hands on Dashboard\r\n  HANDS_ON_DASHBOARD = 'handsOnDashboard',\r\n  HANDS_ON_DASHBOARD_VIEW_MY_DASHBOARD = 'handsOnDashboardViewMyDashboard',\r\n  HANDS_ON_DASHBOARD_VIEW_SHARED_PROFILE_SECTION = 'handsOnDashboardViewSharedProfileSection',\r\n\r\n  // Learning History\r\n  LEARNING_HISTORY = 'learningHistory',\r\n  LEARNING_HISTORY_VIEW_PROGRAMS_SECTION = 'learningHistoryViewProgramsSection',\r\n  LEARNING_HISTORY_VIEW_COURSES_SECTION = 'learningHistoryViewCoursesSection',\r\n  LEARNING_HISTORY_VIEW_LEARNING_MODULES_SECTION = 'learningHistoryViewLearningModulesSection',\r\n  LEARNING_HISTORY_VIEW_RESOURCES_SECTION = 'learningHistoryViewResourcesSection',\r\n  LEARNING_HISTORY_VIEW_CERTIFICATIONS_SECTION = 'learningHistoryViewCertificationsSection',\r\n  LEARNING_HISTORY_APPLY_COMPLETED_FILTER = 'learningHistoryApplyCompletedFilter',\r\n  LEARNING_HISTORY_VIEW_MORE_BUTTON = 'learningHistoryViewMoreButton',\r\n\r\n  // Learning Time\r\n  LEARNING_TIME = 'learningTime',\r\n  LEARNING_TIME_VIEW_LEARNING_TIME_GRAPH = 'learningTimeViewLearningTimeGraph',\r\n  LEARNING_TIME_APPLY_BAR_GRAPH_FILTER = 'learningTimeApplyBarGraphFilter',\r\n  LEARNING_TIME_APPLY_DATE_RANGE_FILTER = 'learningTimeApplyDateRangeFilter',\r\n  LEARNING_TIME_APPLY_TIME_SPENT_FILTER = 'learningTimeApplyTimeSpentFilter',\r\n  LEARNING_TIME_APPLY_APP_AVERAGE_FILTER = 'learningTimeApplyAppAverageFilter',\r\n  LEARNING_TIME_APPLY_USER_AVERAGE_OVER_PERIOD_FILTER = 'learningTimeApplyUserAverageOverPeriodFilter',\r\n\r\n  // Notification\r\n  NOTIFICATION = 'notification',\r\n  NOTIFICATION_VIEW_RECENT_BADGE_EARNED = 'notificationViewRecentBadgeEarned',\r\n  NOTIFICATION_VIEW_SHARED_PLAYLIST = 'notificationViewSharedPlaylist',\r\n  NOTIFICATION_VIEW_SHARED_GOALS = 'notificationViewSharedGoals',\r\n\r\n  // Profile\r\n  PROFILE = 'profile',\r\n  PROFILE_VIEW_BASIC_INFORMATION = 'profileViewBasicInformation',\r\n  PROFILE_VIEW_RECENTLY_LEARNED_COURSES = 'profileViewRecentlyLearnedCourses',\r\n  PROFILE_VIEW_LIKED_ITEMS = 'profileViewLikedItems',\r\n  PROFILE_VIEW_BADGES_EARNED = 'profileViewBadgesEarned',\r\n\r\n  // Behavioural Skills\r\n  BEHAVIORAL_SKILLS = 'behavioralSkills',\r\n  BEHAVIORAL_SKILLS_VIEW_MODEL_CLIENT_INTERACTIONS = 'behavioralSkillsViewModalClientInteractions',\r\n  BEHAVIORAL_SKILLS_VIEW_CLIENT_INTERACTION_TESTS = 'behavioralSkillsViewClientInteractionTests',\r\n\r\n  // Certifications\r\n  CERTIFICATIONS = 'certifications',\r\n  CERTIFICATIONS_VIEW_MY_APPROVALS_SECTION = 'certificationsViewMyApprovalsSection',\r\n  CERTIFICATIONS_VIEW_MY_REQUESTS_SECTION = 'certificationsViewMyRequestsSection',\r\n  CERTIFICATIONS_VIEW_MY_CERTIFICATIONS_SECTION = 'certificationsViewMyCertificationsSection',\r\n  CERTIFICATIONS_APPLY_COMPLETION_STATUS_FILTER = 'certificationsApplyCompletionStatusFilter',\r\n\r\n  // Code Crack\r\n  CODE_CRACK = 'codeCrack',\r\n  CODE_CRACK_VIEW_PUZZLE_MANIA = 'codeCrackViewPuzzleMania',\r\n  CODE_CRACK_VIEW_CODE_CRACK = 'codeCrackViewCodeCrack',\r\n  CODE_CRACK_VIEW_TECHNOLOGY_PLAYGROUND = 'codeCrackViewTechnologyPlayground',\r\n  CODE_CRACK_WATCH_PROGRAMMING_CHALLENGES_VIDEO = 'codeCrackWatchProgrammingChallengesVideo',\r\n  CODE_CRACK_VIEW_ACCELERATE = 'codeCrackViewAccelerate',\r\n  CODE_CRACK_START_CODE_CRACK_TEST = 'codeCrackStartCodeCrackTest',\r\n  CODE_CRACK_START_PUZZLE_MANIA = 'codeCrackStartPuzzleMania',\r\n  CODE_CRACK_START_TECHNOLOGY_PLAYGROUND = 'codeCrackStartTechnologyPlayground',\r\n\r\n  // Instructor Led Training\r\n  INSTRUCTOR_LED_TRAINING = 'instructorLedTraining',\r\n  INSTRUCTOR_LED_TRAINING_VIEW_TRAINING_SCHEDULE_SECTION = 'instructorLedTrainingViewTrainingScheduleSection',\r\n  INSTRUCTOR_LED_TRAINING_VIEW_FEEDBACK_SECTION = 'instructorLedTrainingViewFeedbackSection',\r\n  INSTRUCTOR_LED_TRAINING_VIEW_TRAININGS_PLANNED_BY_YOUR_TEAM_SECTION = 'instructorLedTrainingViewTrainingsPlannedByYourTeamSection',\r\n  INSTRUCTOR_LED_TRAINING_SEARCH_TRAINING = 'instructorLedTrainingSearchTraining',\r\n  INSTRUCTOR_LED_TRAINING_REGISTER_FOR_TRAINING = 'instructorLedTrainingRegisterForTraining',\r\n  INSTRUCTOR_LED_TRAINING_GIVE_TRAINING_FEEDBACK = 'instructorLedTrainingGiveTrainingFeedback',\r\n\r\n  // LeaderBoard\r\n  LEADERBOARD = 'leaderboard',\r\n  LEADERBOARD_VIEW_WEEKLY_SECTION = 'leaderboardViewWeeklySection',\r\n  LEADERBOARD_VIEW_MONTHLY_SECTION = 'leaderboardViewMonthlySection',\r\n  LEADERBOARD_VIEW_HALL_OF_FAME_SECTION = 'leaderboardViewHallOfSection',\r\n  LEADERBOARD_APPLY_LEARNER_COLLABORATOR_FILTER = 'leaderboardApplyLearnerCollaboratorFilter',\r\n  LEADERBOARD_BACK_DATE_BUTTON = 'leaderboardBackDatebutton',\r\n  LEADERBOARD_FORWARD_DATE_BUTTON = 'leaderboardForwardDateButton',\r\n\r\n  // Playground\r\n  PLAYGROUND = 'playground',\r\n  PLAYGROUND_VIEW_TECHNOLOGY_PLAYGROUNDS_STRIP = 'playgroundViewTechnologyPlaygorundsStrip',\r\n  PLAYGROUND_VIEW_ASSESSMENTS_PLAYGROUNDS_STRIP = 'playgroundViewAssessmentsPlaygroundsStrip',\r\n\r\n  // Puzzle Mania\r\n  PUZZLE_MANIA = 'puzzleMania',\r\n  PUZZLE_MANIA_VIEW_PUZZLE_MANIA = 'puzzleManiaViewPuzzleMania',\r\n  PUZZLE_MANIA_VIEW_CODE_CRACK = 'puzzleManiaViewCodeCrack',\r\n  PUZZLE_MANIA_VIEW_TECHNOLOGY_PLAYGROUND = 'puzzleManiaViewTechnologyPlayground',\r\n  PUZZLE_MANIA_WATCH_PROGRAMMING_CHALLENGES_VIDEO = 'puzzleManiaWatchProgrammingChallengesVideo',\r\n  PUZZLE_MANIA_VIEW_ACCELERATE = 'puzzleManiaViewAccelerate',\r\n  PUZZLE_MANIA_START_CODE_CRACK_TEST = 'puzzleManiaStartCodeCrackTest',\r\n  PUZZLE_MANIA_START_PUZZLE_MANIA = 'puzzleManiaStartPuzzleMania',\r\n  PUZZLE_MANIA_START_TECHNOLOGY_PLAYGROUND = 'puzzleManiaStartTechnologyPlayground',\r\n\r\n  // Full Stack Sales Leader\r\n  FULL_STACK_SALES_LEADER = 'fullStackSalesLeader',\r\n  FULL_STACK_SALES_LEADER_WATCH_LEADER_VIDEO = 'fullStackSalesLeaderWatchLeaderVideo',\r\n  FULL_STACK_SALES_LEADER_EMBARK_ON_THIS_LEARNING_JOURNEY_BUTTON = 'fullStackSalesLeaderEmbarkOnThisLearningJourneyButton',\r\n  FULL_STACK_SALES_LEADER_QUICK_TOUR_VIDEO_LINK = 'fullStackSalesLeaderQuickTourVideoLink',\r\n  FULL_STACK_SALES_LEADER_FEEDBACK_LINK = 'fullStackSalesLeaderFeedbackLink',\r\n  FULL_STACK_SALES_LEADER_DROP_NOTE_LINK = 'fullStackSalesLeaderDropNoteLink',\r\n\r\n  // Onboarding\r\n  ONBOARDING = 'onboarding',\r\n  ONBOARDING_VIEW_DC_ONBOARDING_PROGRAMS_STRIP = 'onboardingViewDcOnboardingProgramsStrip',\r\n  ONBOARDING_VIEW_ORGANISATIONAL_ONBOARDING_PROGRAMS_STRIP = 'onboardingViewOrganisationalOnboardingProgramsStrip',\r\n  ONBOARDING_VIEW_ROLE_BASED_ONBOARDING_PROGRAMS_STRIP = 'onboardingViewRoleBasedOnboardingProgramsStrip',\r\n  ONBOARDING_VIEW_UNIT_AND_PROJECT_ONBOARDING_PROGRAMS_STRIP = 'onboardingViewUnitAndProjectOnboardingProgramsStrip',\r\n\r\n  // Search\r\n  SEARCH = 'search',\r\n  SEARCH_SEARCHING_CONTENT = 'searchSearchingContent',\r\n\r\n  // Knowledge Hub\r\n  KNOWLEDGE_HUB = 'knowledgeHub',\r\n  KNOWLEDGE_HUB_SUBMIT_KNOWLEDGE_ARTIFACTS = 'knowledgeHubSubmitKnowledgeArtifacts',\r\n  KNOWLEDGE_HUB_VIEW_TOP_PROJECTS_SECTION = 'knowledgeHubViewTopProjectsSection',\r\n  KNOWLEDGE_HUB_VIEW_INTERESTING_READS_SECTION = 'knowledgeHubViewInterestingReadsSection',\r\n  KNOWLEDGE_HUB_VIEW_MARKETING_SECTION = 'knowledgeHubViewMarketingSection',\r\n  KNOWLEDGE_HUB_VIEW_KSHOP_CLASSIC_SECTION = 'knowledgeHubViewKshopClassicSection',\r\n  KNOWLEDGE_HUB_VIEW_TRENDING_TOOLS_SECTION = 'knowledgeHubViewTrendingToolsSection',\r\n  KNOWLEDGE_HUB_VIEW_DOCUMENTS_STRIP = 'knowledgeHubViewDocumentsStrip',\r\n  KNOWLEDGE_HUB_VIEW_TOOLS_STRIP = 'knowledgeHubViewProjectReferencesStrip',\r\n  KNOWLEDGE_HUB_VIEW_MARKETING_STRIP = 'knowledgeHubViewMarketingStrip',\r\n\r\n  // Channels\r\n  CHANNELS = 'channels',\r\n  CHANNELS_VIEW_LEADERSHIP_SECTION = 'channelsViewLeadershipSection',\r\n  CHANNELS_VIEW_RAVI_KUMAR_PAGE = 'channelsViewRaviKumarPage',\r\n  CHANNELS_VIEW_MOHIT_JOSHI_PAGE = 'channelsViewMohitJoshiPage',\r\n  CHANNELS_FOLLOW_RAVI_KUMAR = 'channelsFollowRaviKumar',\r\n  CHANNELS_MAIL_TO_RAVI_KUMAR = 'channelsMailToRaviKumar',\r\n  CHANNELS_VIEW_ABOUT_RAVI_KUMAR_SECTION = 'channelsViewAboutRaviKumarSection',\r\n  CHANNELS_VIEW_RAVI_KUMAR_TWEETS_SECTION = 'channelsViewRaviKumarTweetsSection',\r\n  CHANNELS_VIEW_RAVI_KUMAR_ARTICLES_SECTION = 'channelsViewRaviKumarArticlesSection',\r\n  CHANNELS_VIEW_RAVI_KUMAR_TRAILBLAZERS_SECTION = 'channelsViewRaviKumarTrailblazersSection',\r\n  CHANNELS_VIEW_RAVI_KUMAR_COMMUNICATIONS_SECTION = 'channelsViewRaviKumarCommunicationsSection',\r\n  CHANNELS_VIEW_RAVI_KUMAR_DISCUSSION_SECTION = 'channelsViewraviKumarDiscussionSection',\r\n  CHANNELS_LIKE_TWEET_RAVI_KUMAR = 'channelsLikeTweetRaviKumar',\r\n  CHANNELS_SHARE_TWEET_RAVI_KUMAR = 'channelsShareTweetRaviKumar',\r\n  CHANNELS_POST_YOUR_THOUGHTS_IN_DISCUSSION_RAVI_KUMAR = 'channelsPostYourThoughtsInDiscussionRaviKumar',\r\n  CHANNELS_FOLLOW_MOHIT_JOSHI = 'channelsFollowMohitJoshi',\r\n  CHANNELS_MAIL_TO_MOHIT_JOSHI = 'channelsMailToMohitJoshi',\r\n  CHANNELS_VIEW_ABOUT_MOHIT_JOSHI_SECTION = 'channelsViewAboutMohitJoshiSection',\r\n  CHANNELS_VIEW_MOHIT_JOSHI_TWEETS_SECTION = 'channelsViewMohitJoshiTweetsSection',\r\n  CHANNELS_VIEW_MOHIT_JOSHI_ARTICLES_SECTION = 'channelsViewMohitJoshiArticlesSection',\r\n  CHANNELS_VIEW_MOHIT_JOSHI_TRAILBLAZERS_SECTION = 'channelsViewMohitJoshiTrailblazersSection',\r\n  CHANNELS_VIEW_MOHIT_JOSHI_COMMUNICATIONS_SECTION = 'channelsViewMohitJoshiCommunicationsSection',\r\n  CHANNELS_VIEW_MOHIT_JOSHI_DISCUSSION_SECTION = 'channelsViewMohitJoshiDiscussionSection',\r\n  CHANNELS_LIKE_TWEET_MOHIT_JOSHI = 'channelsLikeTweetMohitJoshi',\r\n  CHANNELS_SHARE_TWEET_MOHIT_JOSHI = 'channelsShareTweetMohitJoshi',\r\n  CHANNELS_POST_YOUR_THOUGHTS_IN_DISCUSSION_MOHIT_JOSHI = 'channelsPostYourThoughtsInDiscussionMohitJoshi',\r\n  CHANNELS_VIEW_CORPORATE_SECTION = 'channelsViewCorporateSection',\r\n  CHANNELS_VIEW_EXPERIENCE_WOW_PAGE = 'channelsViewExperienceWowPage',\r\n  CHANNELS_VIEW_iGOT_KNOWLEDGE_INSTITUTE_PAGE = 'channelsViewiGOTKnowledgeInstitutePage',\r\n  CHANNELS_VIEW_CMT_LEARNING_HUB_PAGE = 'channelsViewCmtLearningHubPage',\r\n  CHANNELS_VIEW_FULL_STACK_SALES_LEADERS_PAGE = 'channelsViewFullStackSalesLeaderPage',\r\n\r\n  // Experience Wow Page\r\n  EXPERIENCE_WOW_PAGE = 'experienceWowPage',\r\n  EXPERIENCE_WOW_PAGE_VIEW_PAGE_SECTIONS = 'experienceWowPageViewPageSections',\r\n  EXPERIENCE_WOW_PAGE_CHECK_iGOT_STATISTICS = 'experienceWowPageCheckiGOTStatistics',\r\n  EXPERIENCE_WOW_PAGE_CHECK_iGOT_ME_STATISTICS = 'experienceWowPageCheckiGOTMeStatistics',\r\n  EXPERIENCE_WOW_PAGE_PROVIDE_SUGGESTIONS = 'experienceWowPageProvideSuggestions',\r\n  EXPERIENCE_WOW_PAGE_SEND_MAIL_FOR_BECOMING_COCREATOR = 'experienceWowPageSendMailForBecomingCocreator',\r\n\r\n  // iGOT Radio\r\n  iGOT_RADIO = 'iGOTRadio',\r\n  iGOT_RADIO_VIEW_PODCASTS_STRIP = 'iGOTRadioViewPodcastsStrip',\r\n\r\n  // iGOT TV\r\n  iGOT_TV = 'iGOTTv',\r\n  iGOT_TV_VIEW_JUST_FOR_YOU_SECTION = 'iGOTTvViewJustForYouSection',\r\n  iGOT_TV_VIEW_MUST_VIEW_STRIP = 'iGOTTvViewMustViewStrip',\r\n  iGOT_TV_VIEW_LATEST_STRIP = 'iGOTTvViewLatestStrip',\r\n  iGOT_TV_VIEW_CHANNELS_SECTION = 'iGOTTvViewChannelsSection',\r\n  iGOT_TV_VIEW_CHANNELS_STRIP = 'iGOTTvViewChannelsStrip',\r\n  iGOT_TV_VIEW_BROADCAST_SECTION = 'iGOTTvViewBroadcastSection',\r\n  iGOT_TV_VIEW_PREVIOUS_EVENTS_LIST = 'iGOTTvViewPreviousEventsList',\r\n  iGOT_TV_VIEW_LIVE_EVENTS_LIST = 'iGOTTvViewLiveEventsList',\r\n  iGOT_TV_VIEW_UPCOMING_EVENTS_LIST = 'iGOTTvViewUpcomingEventsList',\r\n\r\n  // Leadership Messages\r\n  LEADERSHIP_MESSAGES = 'leadershipMessages',\r\n  LEADERSHIP_MESSAGES_VIEW_LEADERSHIP_VIDEO = 'leadershipMessagesViewLeadershipVideo',\r\n\r\n  // Living Labs\r\n  LIVING_LABS = 'livingLabs',\r\n  LIVING_LABS_VIEW_LIVING_LABS_STRIP = 'livingLabsViewLivingLabsStrip',\r\n\r\n  // Americas Confluence 2018\r\n  AMERICAS_CONFLUENECE = 'americasConfluence',\r\n  AMERICAS_CONFLUENECE_VIEW_CONFLUENCE_VIDEOS_STRIPS = 'americasConfluenceViewConfluenceVideosStrips',\r\n\r\n  // APAC Confluence 2019\r\n  APAC_CONFLUENECE = 'apacConfluence',\r\n  APAC_CONFLUENECE_VIEW_CONFLUENCE_VIDEOS_STRIPS = 'apacConfluenceViewConfluenceVideosStrips',\r\n\r\n  // EMEA Confluence 2018\r\n  EMEA_CONFLUENECE = 'emeaConfluence',\r\n  EMEA_CONFLUENECE_VIEW_CONFLUENCE_VIDEOS_STRIPS = 'emeaConfluenceViewConfluenceVideosStrips',\r\n\r\n  // Connect 2019\r\n  CONNECT = 'connect',\r\n  CONNECT_VIEW_CONTENT_STRIP = 'connectViewContentStrip',\r\n\r\n  // Live Events\r\n  LIVE_EVENTS = 'liveEvents',\r\n  LIVE_EVENTS_WATCH_LIVE = 'liveEventsWatchLive',\r\n  LIVE_EVENTS_WATCH_CLASSROOM_BROADCAST = 'liveEventsWatchClassroomBroadcast',\r\n  LIVE_EVENTS_WATCH_THREE_SIXTY_VIDEO = 'liveEventsWatchThreeSixtyVideo',\r\n  LIVE_EVENTS_WATCH_FAMILY_MATTERS_VIDEO = 'liveEventsWatchFamilyMattersVideo',\r\n  LIVE_EVENTS_WATCH_CONFLUENCE_EVENTS = 'liveEventsWatchConfluenceEvents',\r\n\r\n  // Digital Assistant Tour\r\n  DIGITAL_ASSISTANT_TOUR = 'digitalAssistantTour',\r\n  DIGITAL_ASSISTANT_TOUR_WATCH_TOUR_VIDEO = 'digitalAssistantTourWatchTourVideo',\r\n\r\n  // Quick Tour\r\n  QUICK_TOUR = 'quickTour',\r\n  QUICK_TOUR_WATCH_TOUR_VIDEO = 'quickTourWatchTourVideo',\r\n\r\n  // Logout\r\n  LOGOUT = 'logout',\r\n  LOGOUT_LOGS_OUT_FROM_APPLICATION = 'logoutLogsOutFromApplication',\r\n\r\n  // My Analytics\r\n  MY_ANALYTICS = 'myAnalytics',\r\n  MY_ANALYTICS_APPLY_QUARTER_FILTERS = 'myAnalyticsApplyQuarterFilters',\r\n  MY_ANALYTICS_VIEW_MY_LEARNING_SECTION = 'myAnalyticsViewMyLearningSection',\r\n  MY_ANALYTICS_VIEW_MY_ASSESSMENT_SECTION = 'myAnalyticsViewMyAssessmentSection',\r\n  MY_ANALYTICS_VIEW_MY_REFACTORING_SECTION = 'myAnalyticsViewMyRefactoringSection',\r\n  MY_ANALYTICS_VIEW_MY_PLANS_SECTION = 'myAnalyticsViewMyPlansSection',\r\n  MY_ANALYTICS_VIEW_MY_COLLABORATORS_SECTION = 'myAnalyticsViewMyCollaboratorsSection',\r\n  MY_ANALYTICS_VIEW_MY_FEATURES_USAGE_SECTION = 'myAnalyticsViewTopCoursesSection',\r\n  MY_ANALYTICS_VIEW_MY_LEARNING_MINUTES = 'myAnalyticsViewMyLearningMinutes',\r\n  MY_ANALYTICS_VIEW_MY_LEARNING_POINTS = 'myAnalyticsViewMyLearningPoints',\r\n  MY_ANALYTICS_VIEW_BADGES = 'myAnalyticsViewBadges',\r\n  MY_ANALYTICS_VIEW_TIME_SPENT_BY_USER = 'myAnalyticsViewTimeSpentByUser',\r\n  MY_ANALYTICS_VIEW_AVERAGE_MINUTES_ON_iGOT = 'myAnalyticsViewAverageMinutesOniGOT',\r\n  MY_ANALYTICS_VIEW_AVERAGE_MINUTES_ACROSS_DIMENSIONS = 'myAnalyticsViewAverageMinutesAcrossDimensions',\r\n  MY_ANALYTICS_VIEW_PERCENTAGE_TIME_SPENT_BY_USER = 'myAnalyticsViewPercentageTimeSpentByUser',\r\n  MY_ANALYTICS_VIEW_PERCENTAGE_TIME_SPENT_BY_INFOSCIONS = 'myAnalyticsViewPercentageTimeSpentByInfoscions',\r\n  MY_ANALYTICS_VIEW_PERCENTAGE_TIME_SPENT_BY_PEERS = 'myAnalyticsViewPercentageTimeSpentByPeers',\r\n  MY_ANALYTICS_VIEW_TOTAL_ASSESSMENTS = 'myAnalyticsViewTotalAssessments',\r\n  MY_ANALYTICS_VIEW_PENDING_ASSESSMENTS = 'myAnalyticsViewPendingAssessments',\r\n  MY_ANALYTICS_VIEW_CERTIFICATIONS = 'myAnalyticsViewCertifications',\r\n  MY_ANALYTICS_VIEW_ASSESSMENTS = 'myAnalyticsViewAssessments',\r\n  MY_ANALYTICS_VIEW_RECENT_ASSESSMENTS = 'myAnalyticsViewRecentAssessments',\r\n  MY_ANALYTICS_VIEW_ASSESSMENT_DETAILS = 'myAnalyticsViewAssessmentDetails',\r\n  MY_ANALYTICS_VIEW_RECENT_ASSESSMENT = 'myAnalyticsViewRecentAssessment',\r\n  MY_ANALYTICS_VIEW_MY_REFACTORING_PROGRAM = 'myAnalyticsViewMyRefactoringProgram',\r\n  MY_ANALYTICS_VIEW_NAVIGATOR = 'myAnalyticsViewNavigator',\r\n  MY_ANALYTICS_VIEW_AI_AND_AUTOMATION_PROGRESS = 'myAnalyticsViewAiAndAutomationProcess',\r\n  MY_ANALYTICS_VIEW_MY_GOALS = 'myAnalyticsViewMyGoals',\r\n  MY_ANALYTICS_VIEW_PLAYLIST = 'myAnalyticsViewPlaylist',\r\n  MY_ANALYTICS_VIEW_GOALS_SHARED_WITH_USER = 'myAnalyticsViewGoalsSharedWithUser',\r\n  MY_ANALYTICS_VIEW_DETAILED_COURSES_PROGRESS = 'myAnalyticsViewDetailedCoursesProgress',\r\n  MY_ANALYTICS_VIEW_GOALS_SHARED_BY_USER = 'myAnalyticsViewGoalsSharedByUser',\r\n  MY_ANALYTICS_VIEW_ARTIFACTS_SHARED_BY_USER = 'myAnalyticsViewArtifactsSharedByUser',\r\n  MY_ANALYTICS_VIEW_EXPERTS_USER_CONTACTED = 'myAnalyticsViewExpertsUserContacted',\r\n  MY_ANALYTICS_VIEW_DETAILED_GOALS_SHARING = 'myAnalyticsViewDetailedGoalsSharing',\r\n  MY_ANALYTICS_VIEW_PLAYGROUNDS = 'myAnalyticsViewPlaygrounds',\r\n  MY_ANALYTICS_VIEW_LIKES = 'myAnalyticsViewLikes',\r\n  MY_ANALYTICS_VIEW_SEARCH = 'myAnalyticsViewSearch',\r\n  MY_ANALYTICS_VIEW_iGOT_TV = 'myAnalyticsViewiGOTTv',\r\n  MY_ANALYTICS_VIEW_iGOT_RADIO = 'myAnalyticsViewiGOTRadio',\r\n  MY_ANALYTICS_VIEW_iGOT_LIVE = 'myAnalyticsViewiGOTLive',\r\n  MY_ANALYTICS_VIEW_TOP_COURSES_BY_USER_UNIT = 'myAnalyticsViewTopCoursesByUserUnit',\r\n  MY_ANALYTICS_VIEW_TOP_COURSES_BY_USER_PEERS = 'myAnalyticsViewTopCoursesbyUserPeers',\r\n\r\n  // Learning Analytics\r\n  LEARNING_ANALYTICS = 'learningAnalytics',\r\n  LEARNING_ANALYTICS_SEARCH_FOR_PARTICIPANTS_AND_EDUCATORS = 'learningAnalyticsSearchForParticipantsAndEducators',\r\n  LEARNING_ANALYTICS_UNIT_FILTER = 'learningAnalyticsUnitFilter',\r\n  LEARNING_ANALYTICS_PU_FILTER = 'learningAnalyticsPuFilter',\r\n  LEARNING_ANALYTICS_DU_FILTER = 'learningAnalyticsDuFilter',\r\n  LEARNING_ANALYTICS_ACCOUNT_FILTER = 'learningAnalyticsAccountFilter',\r\n  LEARNING_ANALYTICS_LOCATION_FILTER = 'learningAnalyticsLocationFilter',\r\n  LEARNING_ANALYTICS_QUARTER_FILTER = 'learningAnalyticsQuarterFilter',\r\n  LEARNING_ANALYTICS_COMPLETED_FILTER = 'learningAnalyticsCompletedFilter',\r\n  LEARNING_ANALYTICS_ETA_FILTER = 'learningAnalyticsEtaFilter',\r\n  LEARNING_ANALYTICS_UNIQUE_USERS_DATA = 'learningAnalyticsUniqueUsersData',\r\n  LEARNING_ANALYTICS_USERS_BY_ONSITE_OFFSHORE = 'learningAnalyticsUsersByOnsiteOffshore',\r\n  LEARNING_ANALYTICS_USERS_BY_DEVICE_TYPE = 'learningAnalyticsUsersByDeviceType',\r\n  LEARNING_ANALYTICS_USERS_BY_UNIT = 'learningAnalyticsUsersByUnit',\r\n  LEARNING_ANALYTICS_USERS_BY_TRACK = 'learningAnalyticsUsersByTrack',\r\n  LEARNING_ANALYTICS_USERS_BY_PU_SALES = 'learningAnalyticsUsersByPuSales',\r\n  LEARNING_ANALYTICS_USERS_BY_CU_TYPE = 'learningAnalyticsUsersByCuType',\r\n  LEARNING_ANALYTICS_USERS_BY_SKILL = 'learningAnalyticsUsersBySkill',\r\n  LEARNING_ANALYTICS_USERS_BY_TOPICS = 'learningAnalyticsUsersByTopics',\r\n  LEARNING_ANALYTICS_USERS_BY_HORIZON = 'learningAnalyticsUsersByHorizon',\r\n  LEARNING_ANALYTICS_USERS_GROWTH = 'learningAnalyticsUsersGrowth',\r\n  LEARNING_ANALYTICS_USERS_DETAILS = 'learningAnalyticsUsersDetails',\r\n  LEARNING_ANALYTICS_VIEW_ALL_TRAININGS_SECTION = 'learningAnalyticsViewAllTrainingsSection',\r\n  LEARNING_ANALYTICS_TALENT_GRID_FILTER = 'learningAnalyticstalentGridFilter',\r\n  LEARNING_ANALYTICS_STACK_FILTER = 'learningAnalyticsStackFilter',\r\n  LEARNING_ANALYTICS_UNIQUE_PARTICIPANTS = 'learningAnalyticsUniqueParticipants',\r\n  LEARNING_ANALYTICS_OVERALL_PARTICIPANTS = 'learningAnalyticsOverallParticipants',\r\n  LEARNING_ANALYTICS_AVERAGE_DAYS = 'learningAnalyticsAverageDays',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_ONSITE_ONSHORE = 'learningAnalyticsParticipantsByOnsiteOnshore',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_UNIT = 'learningAnalyticsParticipantsByUnit',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_PU = 'learningAnalyticsParticipantsByPu',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_SKILL_TYPE = 'learningAnalyticsParticipantsBySkillType',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_SKILL = 'learningAnalyticsParticipantsBySkill',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_STACKS = 'learningAnalyticsParticipantsByStacks',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_NEW_SERVICES = 'learningAnalyticsParticipantsByNewServices',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_LEARNING_TRACK = 'learningAnalyticsParticipantsByLearningTrack',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_OFFERING_MODE = 'learningAnalyticsParticipantsByOfferingMode',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_TOPICS = 'learningAnalyticsParticipantsByTopics',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_BY_ABCD = 'learningAnalyticsParticipantsByAbcd',\r\n  LEARNING_ANALYTICS_PARTICIPANTS_DETAILS = 'learningAnalyticsParticipantsDetails',\r\n  LEARNING_ANALYTICS_SCHEDULES_SECTION = 'learningAnalyticsSchedulesSection',\r\n  LEARNING_ANALYTICS_SCHEDULE_DATE_FILTER = 'learningAnalyticsScheduleDateFilter',\r\n  LEARNING_ANALYTICS_PARTICIPANTS = 'learningAnalyticsParticipants',\r\n  LEARNING_ANALYTICS_EDUCATORS = 'learningAnalyticsEducators',\r\n  LEARNING_ANALYTICS_COURSES = 'learningAnalyticsCourses',\r\n  LEARNING_ANALYTICS_SCHEDULES = 'learningAnalyticsSchedules',\r\n  LEARNING_ANALYTICS_VIEW_TRAINING_SCHEDULES_SECTION = 'learningAnalyticsTrainingSchedulesSection',\r\n  LEARNING_ANALYTICS_COURSES_BY_OFFERING_MODE = 'learningAnalyticsCoursesByOfferingMode',\r\n  LEARNING_ANALYTICS_COURSES_BY_TRACK = 'learningAnalyticsCoursesByTrack',\r\n  LEARNING_ANALYTICS_COURSES_BY_TOPIC = 'learningAnalyticsCoursesByTopic',\r\n  LEARNING_ANALYTICS_COURSES_BY_ABCD = 'learningAnalyticsCoursesByAbcd',\r\n  LEARNING_ANALYTICS_COURSES_BY_SKILL = 'learningAnalyticsCoursesBySkill',\r\n\r\n  // Apps Page\r\n  APPS_PAGE = 'appsPage',\r\n  APPS_PAGE_VIEW_DIFFERENT_APPS_ICONS = 'appsPageViewDifferentAppsIcons',\r\n\r\n  // Course Card\r\n  COURSE_CARD = 'courseCard',\r\n  COURSE_CARD_LIKE_THE_COURSE_BUTTON = 'courseCardLikeTheCourseButton',\r\n  COURSE_CARD_SHARE_THE_COURSE_BUTTON = 'courseCardShareTheCourseButton',\r\n  COURSE_CARD_ADD_COURSE_TO_GOALS_BUTTON = 'courseCardAddCourseToGoalsButton',\r\n  COURSE_CARD_ADD_COURSE_TO_PLAYLIST_BUTTON = 'courseCardAddCourseToPlaylistButton',\r\n  COURSE_CARD_VIEW_MORE_OPTIONS_BUTTON = 'courseCardViewMoreOptionsButton',\r\n  COURSE_CARD_START_COURSE_OPTION = 'courseCardStartCourseOption',\r\n  COURSE_CARD_VIEW_TOC_OPTION = 'courseCardViewTocOption',\r\n  COURSE_CARD_COHORTS_OPTION = 'courseCardCohortsOption',\r\n  COURSE_CARD_ANALYTICS_OPTION = 'courseCardAnalyticsOption',\r\n\r\n  // Search Results Page\r\n  SEARCH_RESULTS_PAGE = 'searchResultsPage',\r\n  SEARCH_RESULTS_PAGE_VIEW_LEARNING_SECTION = 'searchResultsPageViewLearningSection',\r\n  SEARCH_RESULTS_PAGE_VIEW_CERTIFICATIONS_SECTION = 'searchResultsPageViewCertificationsSection',\r\n  SEARCH_RESULTS_PAGE_VIEW_KNOWLEDGE_SECTION = 'searchResultsPageViewKnowledgeSection',\r\n  SEARCH_RESULTS_PAGE_VIEW_PROJECTS_SECTION = 'searchResultsPageViewProjectsSection',\r\n  SEARCH_RESULTS_PAGE_VIEW_SOCIAL_SECTION = 'searchResultsPageViewSocialSection',\r\n  SEARCH_RESULTS_PAGE_CATALOG_FILTER = 'searchResultsPageCatalogFilter',\r\n  SEARCH_RESULTS_PAGE_DURATION_FILTER = 'searchResultsPageDurationFilter',\r\n  SEARCH_RESULTS_PAGE_CONTENT_TYPE_FILTER = 'searchResultsPageContentTypeFilter',\r\n  SEARCH_RESULTS_PAGE_LEVEL_FILTER = 'searchResultsPageLevelFilter',\r\n  SEARCH_RESULTS_PAGE_SOURCE_FILTER = 'searchResultsPageSourceFilter',\r\n  SEARCH_RESULTS_PAGE_UNIT_FILTER = 'searchResultsPageUnitFilter',\r\n  SEARCH_RESULTS_PAGE_TYPE_FILTER = 'searchResultsPageTypeFilter',\r\n  SEARCH_RESULTS_PAGE_PUBLISHED_DATE_FILTER = 'searchResultsPagePublishedDateFilter',\r\n  SEARCH_RESULTS_PAGE_CATEGORY_FILTER = 'searchResultsPageCategoryFilter',\r\n  SEARCH_RESULTS_PAGE_ITEM_TYPE_FILTER = 'searchResultsPageItemTypeFilter',\r\n  SEARCH_RESULTS_PAGE_TOPICS_FILTER = 'searchResultsPageTopicsFilter',\r\n  SEARCH_RESULTS_PAGE_AUTHORS_FILTER = 'searchResultsPageAuthorsFilter',\r\n  SEARCH_RESULTS_PAGE_TAGS_FILTER = 'searchResultsPageTagsFilter',\r\n  SEARCH_RESULTS_PAGE_GROUPS_FILTER = 'searchResultsPageGroupsFilter',\r\n  SEARCH_RESULTS_PAGE_VIEW_RESULT_CARDS = 'searchResultsPageViewResultCards',\r\n  SEARCH_RESULTS_PAGE_VIEW_RELATED_CONCEPTS = 'searchResultsPageViewRelatedConcepts',\r\n\r\n  // Lab42 Pages\r\n  LAB_42_INTERVIEW = 'interview',\r\n  LAB_42_DIALOGUE = 'dialogue',\r\n  LAB_42_STRATEGY_MAP = 'strategyMap',\r\n  LAB_42_VIRTUAL_CLASSROOM = 'virtualClassroom',\r\n  LAB_42_PROJECT_STACK = 'projectStack',\r\n  LAB_42_LIVE_TRANSCRIBE = 'liveTranscribe',\r\n  LAB_42_EPOCH = 'epoch',\r\n\r\n  // Learning Assistant Pages\r\n  LEARNING_ASSISTANT_MAQ = 'learning-assistant-maq',\r\n  LEARNING_ASSISTANT_ILIPDP = 'learning-assistant-ilipdp',\r\n}\r\n","export enum EInstance {\r\n  INSTANCE = 'RootOrg',\r\n}\r\n","import { Directive, Input, OnInit, HostBinding, OnDestroy, AfterViewInit } from '@angular/core'\r\nimport { Subscription, fromEvent } from 'rxjs'\r\nimport { debounceTime } from 'rxjs/operators'\r\n\r\nenum ScrollingStateEnum {\r\n  ScrollingUp,\r\n  ScrollingDown,\r\n  NoScrolling,\r\n}\r\n\r\n@Directive({\r\n  selector: '[wsUtilsClassChangeOnScroll]',\r\n})\r\nexport class ClassChangeOnScrollDirective implements OnInit, OnDestroy, AfterViewInit {\r\n\r\n  @Input() wsClassOnScrollDirChange = 5000\r\n\r\n  @HostBinding('class.scrolling-down') get isScrollingDown() {\r\n    return this.currState === ScrollingStateEnum.ScrollingDown\r\n  }\r\n  @HostBinding('class.scrolling-up') get isScrollingUp() {\r\n    return this.currState === ScrollingStateEnum.ScrollingUp\r\n  }\r\n  @HostBinding('class.scrolling-no') get isNotScrolling() {\r\n    return this.currState === ScrollingStateEnum.NoScrolling\r\n  }\r\n  @HostBinding('class.scrolled-down') hasScrolledDown = false\r\n\r\n  private windowScrollSubscription: Subscription | null = null\r\n  private timeoutTimer: any\r\n\r\n  private lastScreenTop = 0\r\n  private currState: ScrollingStateEnum = ScrollingStateEnum.NoScrolling\r\n  constructor() { }\r\n  ngOnInit() {\r\n    this.windowScrollSubscription = fromEvent<Event>(window, 'scroll')\r\n      .pipe(debounceTime(50))\r\n      .subscribe(() => {\r\n        clearTimeout(this.timeoutTimer)\r\n        const curr = window.scrollY\r\n        this.hasScrolledDown = curr > 56\r\n        this.setScrollState(this.lastScreenTop, curr)\r\n        this.lastScreenTop = curr\r\n      })\r\n  }\r\n\r\n  ngAfterViewInit() { }\r\n  ngOnDestroy() {\r\n    if (this.windowScrollSubscription) {\r\n      this.windowScrollSubscription.unsubscribe()\r\n    }\r\n  }\r\n\r\n  private setScrollState(prev: number = 0, curr: number = 0) {\r\n    if (prev > curr) {\r\n      this.currState = ScrollingStateEnum.ScrollingUp\r\n    } else if (prev < curr) {\r\n      this.currState = ScrollingStateEnum.ScrollingDown\r\n    } else {\r\n      this.currState = ScrollingStateEnum.NoScrolling\r\n    }\r\n    if (this.currState !== ScrollingStateEnum.NoScrolling) {\r\n      this.resetScrollingState()\r\n    }\r\n  }\r\n  private resetScrollingState() {\r\n    this.timeoutTimer = setTimeout(\r\n      () => {\r\n        this.setScrollState()\r\n      },\r\n      this.wsClassOnScrollDirChange || 5000,\r\n    )\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { ClassChangeOnScrollDirective } from './class-change-on-scroll.directive'\r\n\r\n@NgModule({\r\n  declarations: [ClassChangeOnScrollDirective],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [ClassChangeOnScrollDirective],\r\n})\r\nexport class ClassChangeOnScrollModule { }\r\n","import { Directive, Input, HostListener, HostBinding, OnChanges } from '@angular/core'\r\n\r\n@Directive({\r\n  selector: '[wsUtilsDefaultThumbnail]',\r\n})\r\nexport class DefaultThumbnailDirective implements OnChanges {\r\n\r\n  @Input() wsUtilsDefaultThumbnail = ''\r\n  @Input() src = ''\r\n  isSrcUpdateAttemptedForDefault = false\r\n\r\n  @HostBinding('src') srcUrl = ''\r\n  @HostListener('error') updateSrc() {\r\n    if (!this.isSrcUpdateAttemptedForDefault) {\r\n      this.srcUrl = this.wsUtilsDefaultThumbnail\r\n      this.isSrcUpdateAttemptedForDefault = true\r\n    }\r\n  }\r\n\r\n  ngOnChanges() {\r\n    if (this.src) {\r\n      this.srcUrl = this.src\r\n    }\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { DefaultThumbnailDirective } from './default-thumbnail.directive'\r\n\r\n@NgModule({\r\n  declarations: [DefaultThumbnailDirective],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [DefaultThumbnailDirective],\r\n})\r\nexport class DefaultThumbnailModule { }\r\n","import { BreakpointObserver } from '@angular/cdk/layout'\r\nimport { Directive, HostBinding, Input, OnChanges, OnDestroy } from '@angular/core'\r\nimport { Subscription } from 'rxjs'\r\nimport { distinctUntilChanged } from 'rxjs/operators'\r\n\r\nexport interface IImageResponsiveUnit {\r\n  [key: string]: string\r\n}\r\n\r\nconst customBreakPoints = {\r\n  xs: '(max-width: 450px)',\r\n  s: '(min-width: 450.001px) and (max-width: 768px)',\r\n  m: '(min-width: 768.001px) and (max-width: 1024px)',\r\n  l: '(min-width: 1024.001px) and (max-width: 1400px)',\r\n  xl: '(min-width: 1400.001px) and (max-width: 1920px)',\r\n  xxl: '(min-width: 1920.001px)',\r\n}\r\n\r\n@Directive({\r\n  selector: '[wsUtilsImageResponsive]',\r\n})\r\nexport class ImageResponsiveDirective implements OnChanges, OnDestroy {\r\n\r\n  @Input() src: IImageResponsiveUnit | null = null\r\n  @HostBinding('src') srcBindUrl = ''\r\n\r\n  currentSize = ''\r\n  breakpointSubscription: Subscription | null = null\r\n  constructor(\r\n    private breakpointObserver: BreakpointObserver,\r\n  ) {\r\n    this.breakpointSubscription = this.breakpointObserver\r\n      .observe([\r\n        customBreakPoints.xs,\r\n        customBreakPoints.s,\r\n        customBreakPoints.m,\r\n        customBreakPoints.l,\r\n        customBreakPoints.xl,\r\n        customBreakPoints.xxl,\r\n      ])\r\n      .pipe(distinctUntilChanged())\r\n      .subscribe(data => {\r\n        // //console.log('data >',  data)\r\n        if (data.breakpoints[customBreakPoints.xxl]) {\r\n          this.currentSize = 'xxl'\r\n        } else if (data.breakpoints[customBreakPoints.xl]) {\r\n          this.currentSize = 'xl'\r\n        } else if (data.breakpoints[customBreakPoints.l]) {\r\n          this.currentSize = 'l'\r\n        } else if (data.breakpoints[customBreakPoints.m]) {\r\n          this.currentSize = 'm'\r\n        } else if (data.breakpoints[customBreakPoints.s]) {\r\n          this.currentSize = 's'\r\n        } else if (data.breakpoints[customBreakPoints.xs]) {\r\n          this.currentSize = 'xs'\r\n        } else {\r\n          this.currentSize = 'xl'\r\n        }\r\n        this.setSrc()\r\n      })\r\n  }\r\n\r\n  ngOnChanges() {\r\n    if (this.src) {\r\n      this.setSrc()\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.breakpointSubscription) {\r\n      this.breakpointSubscription.unsubscribe()\r\n    }\r\n  }\r\n\r\n  private setSrc() {\r\n    if (\r\n      this.currentSize &&\r\n      this.src &&\r\n      this.src[this.currentSize]\r\n    ) {\r\n      this.srcBindUrl = this.src[this.currentSize]\r\n    }\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { ImageResponsiveDirective } from './image-responsive.directive'\r\n\r\n@NgModule({\r\n  declarations: [ImageResponsiveDirective],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [ImageResponsiveDirective],\r\n})\r\nexport class ImageResponsiveModule { }\r\n","import { Directive, OnInit, Output, EventEmitter, ElementRef, OnDestroy } from '@angular/core'\r\nimport { fromEvent } from 'rxjs'\r\nimport { debounceTime } from 'rxjs/operators'\r\n\r\n@Directive({\r\n  selector: '[wsUtilsInViewPort]',\r\n})\r\nexport class InViewPortDirective implements OnInit, OnDestroy {\r\n\r\n  private scroll: any\r\n  private resize: any\r\n\r\n  @Output() inViewport: EventEmitter<boolean> = new EventEmitter<boolean>()\r\n\r\n  constructor(private _el: ElementRef) { }\r\n\r\n  ngOnInit() {\r\n    this.check()\r\n    this.scroll =\r\n      fromEvent(window, 'scroll').pipe(debounceTime(100)).subscribe(() => {\r\n        this.check()\r\n      })\r\n    this.resize =\r\n      fromEvent(window, 'resize').pipe(debounceTime(100)).subscribe(() => {\r\n        this.check()\r\n      })\r\n\r\n    // let limit = 1\r\n    // this.scroll =\r\n    //   fromEvent(window, 'scroll').pipe(debounceTime(100)).subscribe(() => {\r\n    //     if (limit) {\r\n    //       this.check()\r\n    //       limit -= 1\r\n    //     }\r\n    //   })\r\n\r\n    // this.resize =\r\n    //   fromEvent(window, 'resize').toPromise().then(() => {\r\n    //     this.check()\r\n    //   })\r\n\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.scroll.unsubscribe()\r\n    this.resize.unsubscribe()\r\n  }\r\n\r\n  check(partial: boolean = true, direction: string = 'both') {\r\n    const el = this._el.nativeElement\r\n\r\n    const elSize = (el.offsetWidth * el.offsetHeight)\r\n\r\n    const rec = el.getBoundingClientRect()\r\n\r\n    const vp = {\r\n      width: window.innerWidth,\r\n      height: window.innerHeight,\r\n    }\r\n\r\n    const tViz = rec.top >= 0 && rec.top < vp.height\r\n    const bViz = rec.bottom > 0 && rec.bottom <= vp.height\r\n\r\n    const lViz = rec.left >= 0 && rec.left < vp.width\r\n    const rViz = rec.right > 0 && rec.right <= vp.width\r\n\r\n    const vVisible = partial ? tViz || bViz : tViz && bViz\r\n    const hVisible = partial ? lViz || rViz : lViz && rViz\r\n\r\n    let event = false\r\n\r\n    if (direction === 'both') {\r\n      event = (elSize && vVisible && hVisible) ? true : false\r\n    } else if (direction === 'vertical') {\r\n      event = (elSize && vVisible) ? true : false\r\n    } else if (direction === 'horizontal') {\r\n      event = (elSize && hVisible) ? true : false\r\n    }\r\n    this.inViewport.emit(event)\r\n  }\r\n}\r\n","import { InViewPortDirective } from './in-view-port.directive'\r\nimport { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\n\r\n@NgModule({\r\n  declarations: [InViewPortDirective],\r\n  exports: [InViewPortDirective],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n})\r\nexport class InViewPortModule { }\r\n","import { Directive, OnChanges, Input, HostBinding, HostListener } from '@angular/core'\r\n\r\n@Directive({\r\n  selector: '[wsUtilsNavigation]',\r\n})\r\nexport class NavigationDirective implements OnChanges {\r\n  @Input() wsUtilsNavigation = ''\r\n  @Input() openInNewTab = false\r\n  @Input()\r\n  @HostBinding('attr.routerLink') routeUrl = ''\r\n  @HostListener('mousedown', ['$event']) onMouseEnter($event: Event) {\r\n    if (this.openInNewTab || this.wsUtilsNavigation.includes('mailto')) {\r\n      $event.preventDefault()\r\n      $event.stopPropagation()\r\n      this.routeUrl = './'\r\n      window.open(this.wsUtilsNavigation)\r\n    }\r\n  }\r\n  constructor() { }\r\n\r\n  ngOnChanges() {\r\n    if (this.openInNewTab || this.wsUtilsNavigation.includes('mailto')) {\r\n      this.routeUrl = './'\r\n    }\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { NavigationDirective } from './navigation.directive'\r\n\r\n@NgModule({\r\n  declarations: [NavigationDirective],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [NavigationDirective],\r\n})\r\nexport class NavigationModule { }\r\n","import { Directive } from '@angular/core'\r\n\r\n@Directive({\r\n  selector: '[wsUtilsPermission]',\r\n})\r\nexport class PermissionDirective {\r\n\r\n  constructor() { }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PermissionDirective } from './permission.directive'\r\n\r\n@NgModule({\r\n  declarations: [PermissionDirective],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PermissionDirective],\r\n})\r\nexport class PermissionModule { }\r\n","export function getStringifiedQueryParams(obj: { [key: string]: number | string | undefined | string[] }) {\r\n  return Object.entries(obj)\r\n    .filter(u => u[1])\r\n    .map(u => {\r\n      return `${u[0]}=${u[1]}`\r\n    })\r\n    .join('&')\r\n}\r\n","import { Component, OnInit, OnChanges, OnDestroy, Input, Output, ViewChild, EventEmitter, ElementRef } from '@angular/core'\r\nimport {\r\n  fromEvent,\r\n  Subscription,\r\n  timer,\r\n} from 'rxjs'\r\nimport { debounceTime, throttleTime } from 'rxjs/operators'\r\nimport { TFetchStatus } from '../../constants/misc.constants'\r\n\r\n@Component({\r\n  selector: 'ws-utils-horizontal-scroller',\r\n  templateUrl: './horizontal-scroller.component.html',\r\n  styleUrls: ['./horizontal-scroller.component.scss'],\r\n})\r\nexport class HorizontalScrollerComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n  @Input()\r\n  loadStatus: TFetchStatus = 'none'\r\n  @Input()\r\n  onHover = false\r\n  @Output()\r\n  loadNext = new EventEmitter()\r\n  @ViewChild('horizontalScrollElem', { static: true })\r\n  horizontalScrollElem: ElementRef | null = null\r\n\r\n  enablePrev = false\r\n  enableNext = false\r\n  private scrollObserver: Subscription | null = null\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n    if (this.horizontalScrollElem) {\r\n      const horizontalScrollElem = this.horizontalScrollElem\r\n      this.scrollObserver = fromEvent(\r\n        horizontalScrollElem.nativeElement,\r\n        'scroll',\r\n      )\r\n        .pipe(debounceTime(100), throttleTime(100))\r\n        .subscribe(_ => {\r\n          this.updateNavigationBtnStatus(horizontalScrollElem\r\n            .nativeElement as HTMLElement)\r\n        })\r\n    }\r\n  }\r\n  ngOnChanges() {\r\n    timer(100).subscribe(() => {\r\n      if (this.horizontalScrollElem) {\r\n        this.updateNavigationBtnStatus(this.horizontalScrollElem\r\n          .nativeElement as HTMLElement)\r\n      }\r\n    })\r\n  }\r\n  ngOnDestroy() {\r\n    if (this.scrollObserver) {\r\n      this.scrollObserver.unsubscribe()\r\n    }\r\n  }\r\n  showPrev() {\r\n    if (this.horizontalScrollElem) {\r\n      // const elem = this.horizontalScrollElem.nativeElement\r\n      // elem.scrollLeft -= 0.20 * elem.clientWidth\r\n      if (this.horizontalScrollElem) {\r\n        // const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth * 0.24)\r\n        const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth)\r\n        this.horizontalScrollElem.nativeElement.scrollTo({\r\n          left: this.horizontalScrollElem.nativeElement.scrollLeft - clientWidth,\r\n          behavior: 'smooth',\r\n        })\r\n      }\r\n    }\r\n  }\r\n  showNext() {\r\n    if (this.horizontalScrollElem) {\r\n      // const elem = this.horizontalScrollElem.nativeElement\r\n      // elem.scrollLeft += 0.20 * elem.clientWidth\r\n      if (this.horizontalScrollElem) {\r\n        // const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth * 0.24)\r\n        const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth)\r\n        this.horizontalScrollElem.nativeElement.scrollTo({\r\n          left: this.horizontalScrollElem.nativeElement.scrollLeft + clientWidth,\r\n          behavior: 'smooth',\r\n        })\r\n      }\r\n    }\r\n  }\r\n  private updateNavigationBtnStatus(elem: HTMLElement) {\r\n    this.enablePrev = true\r\n    this.enableNext = true\r\n    if (elem.scrollLeft === 0) {\r\n      this.enablePrev = false\r\n    }\r\n    if (elem.scrollWidth === elem.clientWidth + elem.scrollLeft) {\r\n      if (this.loadStatus === 'hasMore') {\r\n        this.loadNext.emit()\r\n      } else {\r\n        this.enableNext = false\r\n      }\r\n    }\r\n  }\r\n}\r\n","<section class=\"horizontal-scroll-container h-full\">\r\n  <button i18n-aria-label aria-label=\"back\" name=\"content-backward-button\" mat-mini-fab color=\"primary\" (click)=\"showPrev()\"\r\n    class=\"prevBtn hidden-touch border-radius-xs\" [hidden]=\"!enablePrev\" [ngClass]=\"{'prevBtnHover': onHover}\">\r\n    <mat-icon>navigate_before</mat-icon>\r\n  </button>\r\n  <div name=\"horizontal-scroll-content-strip\" class=\"horizontal-scroll-content\" #horizontalScrollElem>\r\n    <ng-content></ng-content>\r\n  </div>\r\n  <button i18n-aria-label aria-label=\"next\" name=\"content-forward-button\" mat-mini-fab (click)=\"showNext()\" color=\"primary\"\r\n    class=\"nextBtn hidden-touch border-radius-xs\" [ngClass]=\"{'nextBtnHover': onHover}\"\r\n    [hidden]=\"!enableNext || loadStatus === 'fetching'\">\r\n    <mat-icon>navigate_next</mat-icon>\r\n  </button>\r\n  <div class=\"nextLoading\" *ngIf=\"loadStatus === 'fetching'\">\r\n    <mat-spinner></mat-spinner>\r\n  </div>\r\n</section>","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { HorizontalScrollerComponent } from './horizontal-scroller.component'\r\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner'\r\n\r\n@NgModule({\r\n  declarations: [HorizontalScrollerComponent],\r\n  imports: [\r\n    CommonModule,\r\n    MatButtonModule,\r\n    MatIconModule,\r\n    MatProgressSpinnerModule,\r\n  ],\r\n  exports: [HorizontalScrollerComponent],\r\n})\r\nexport class HorizontalScrollerModule { }\r\n","export namespace WsEvents {\r\n  export interface IWsEventsFromWidget {\r\n    type: 'widget'\r\n    widgetType: string\r\n    widgetSubType: string\r\n  }\r\n  export interface IWsEventsFromPage {\r\n    type: 'page'\r\n    pageUrl: string\r\n    pageType: string\r\n  }\r\n  export enum WsEventType {\r\n    Action = 'Action',\r\n    Telemetry = 'Telemetry',\r\n    PageNavigation = 'PageNavigation',\r\n    AccessRestrictedContentAccessed = 'AccessRestrictedContentAccessed',\r\n    PageSlow = 'PageSlow',\r\n    ErrorOccurred = 'ErrorOccurred',\r\n    WidgetResolveError = 'WidgetResolveError',\r\n  }\r\n  export enum WsEventLogLevel {\r\n    Warn = 'Warn',\r\n    Error = 'Error',\r\n    Info = 'Info',\r\n    Log = 'Log',\r\n    Trace = 'Trace',\r\n  }\r\n   export enum WsAuditTypes {\r\n     Created = 'Created',\r\n     Updated = 'Updated',\r\n     Deleted = 'Deleted',\r\n   }\r\n  export enum WsTimeSpentType {\r\n    Page = 'Page',\r\n    Player = 'Player',\r\n  }\r\n  export enum WsTimeSpentMode {\r\n    Play = 'Play',\r\n    View = 'View',\r\n  }\r\n  export enum externalTelemetrypdata {\r\n    RBCP = 'rbcp-web-ui',\r\n  }\r\n\r\n  export interface IWsEvents<T> {\r\n    eventType: WsEventType\r\n    eventLogLevel: WsEventLogLevel\r\n    from: IWsEventsFromWidget | IWsEventsFromPage | string\r\n    to: string\r\n    data: T\r\n    passThroughData?: any\r\n    pageContext?: any\r\n  }\r\n\r\n  export enum EnumTelemetrySubType {\r\n    Init = 'Init',\r\n    Interact = 'Interact',\r\n    Loaded = 'Loaded',\r\n    Unloaded = 'Unloaded',\r\n    StateChange = 'StateChange',\r\n    HeartBeat = 'HeartBeat',\r\n    Search = 'Search',\r\n    Feedback = 'Feedback',\r\n    Impression = 'Impression',\r\n    Chatbot = 'Chatbot',\r\n    GetStarted = 'Get Started',\r\n    PlatformRating = 'PlatformRating',\r\n  }\r\n\r\n  export interface ITelemetryPageContext {\r\n    pageId?: string,\r\n    module?: string,\r\n    pageIdExt?: string\r\n  }\r\n\r\n  export interface ITelemetryEdata {\r\n    type: string\r\n    subType?: string\r\n    id?: string\r\n    pageid?: string\r\n    target?: string\r\n  }\r\n\r\n  export interface ITelemetryTabData {\r\n    label: string,\r\n    index: number,\r\n  }\r\n\r\n  export interface IWsEventTelemetry {\r\n    eventSubType: EnumTelemetrySubType\r\n    pageContext?: ITelemetryPageContext\r\n  }\r\n\r\n  // PDF Telemetry Event\r\n  export enum EnumTelemetryPdfActivity {\r\n    PAGE_CHANGED = 'PAGE_CHANGED',\r\n    FULLSCREEN_ACTIVATED = 'FULLSCREEN_ACTIVATED',\r\n    FULLSCREEN_DEACTIVATED = 'FULLSCREEN_DEACTIVATED',\r\n    ZOOM_CHANGE = 'ZOOM_CHANGE',\r\n    NONE = 'NONE',\r\n  }\r\n  export interface IWsEventTelemetryPdfData extends IWsEventTelemetry {\r\n    activityType: EnumTelemetryPdfActivity\r\n    currentPage: number\r\n    totalPage: number\r\n    activityStartedAt: Date | null\r\n    object: any\r\n  }\r\n\r\n  export interface IWsEventTelemetrySurveyData extends IWsEventTelemetry {\r\n    object: any\r\n  }\r\n  export type WsEventTelemetryPDF = IWsEvents<IWsEventTelemetryPdfData>\r\n  export type WsEventTelemetrySurvey = IWsEvents<IWsEventTelemetrySurveyData>\r\n\r\n  // Interact Telemetry Event\r\n  export interface IWsEventTelemetryInteract extends IWsEventTelemetry {\r\n    edata: ITelemetryEdata\r\n    object: any\r\n    pageContext?: ITelemetryPageContext\r\n  }\r\n\r\n  export interface IWsEventTelemetryFeedback extends IWsEventTelemetry {\r\n    edata: ITelemetryEdata\r\n    object: any\r\n    pageContext?: ITelemetryPageContext\r\n  }\r\n\r\n  export interface IWsEventTelemetryImpression extends IWsEventTelemetry {\r\n    edata?: ITelemetryEdata\r\n    object?: any\r\n    pageContext?: ITelemetryPageContext\r\n  }\r\n\r\n  export interface IWsEventTelemetrySearch extends IWsEventTelemetry {\r\n    type: string\r\n    subType?: string\r\n    query?: string\r\n    filters?: string\r\n    size?: number\r\n    locale?: any\r\n  }\r\n  export interface IWsEventTelemetryHeartBeat extends IWsEventTelemetry {\r\n    type: string\r\n    // subType?: string\r\n    // mode: string\r\n    id: string\r\n    // mimeType: string\r\n  }\r\n  export type WsEventTelemetryInteract = IWsEvents<IWsEventTelemetryInteract>\r\n  export type WsEventTelemetryFeedback = IWsEvents<IWsEventTelemetryFeedback>\r\n  export type WsEventTelemetryImpression = IWsEvents<IWsEventTelemetryImpression>\r\n  export type WsEventTelemetrySearch = IWsEvents<IWsEventTelemetrySearch>\r\n  export type WsEventTelemetryHeartBeat = IWsEvents<IWsEventTelemetryHeartBeat>\r\n\r\n  // Multimedia Telemetry Data\r\n  export enum EnumTelemetryMediaActivity {\r\n    PLAYED = 'PLAYED',\r\n    PAUSED = 'PAUSED',\r\n    SEEKED = 'SEEKED',\r\n    ENDED = 'ENDED',\r\n    VOLUME_CHANGE = 'VOLUME_CHANGE',\r\n    MUTE = 'MUTE',\r\n    UNMUTE = 'UNMUTE',\r\n    PLAYBACK_SPEED_CHANGE = 'PLAYBACK_SPEED_CHANGE',\r\n    FULLSCREEN_ACTIVATED = 'FULLSCREEN_ACTIVATED',\r\n    FULLSCREEN_DEACTIVATED = 'FULLSCREEN_DEACTIVATED',\r\n    PICTURE_IN_PICTURE_ACTIVATED = 'PICTURE_IN_PICTURE_ACTIVATED',\r\n    PICTURE_IN_PICTURE_DEACTIVATED = 'PICTURE_IN_PICTURE_DEACTIVATED',\r\n    NONE = 'NONE',\r\n  }\r\n  export enum EnumTelemetryMediaState {\r\n    PLAYING = 'PLAYING',\r\n    PAUSED = 'PAUSED',\r\n    ENDED = 'ENDED',\r\n    BUFFERING = 'BUFFERING',\r\n    NOT_STARTED = 'NOT_STARTED',\r\n  }\r\n  export interface IWsEventTelemetryMediaData extends IWsEventTelemetry {\r\n    currentState: EnumTelemetryMediaState\r\n    activityType: EnumTelemetryMediaActivity\r\n    currentTime: number | null\r\n    totalTime: number | null\r\n    maxedSeekedTime: number\r\n    activityStartedAt?: Date | null\r\n  }\r\n  export type WsEventTelemetryMedia = IWsEvents<IWsEventTelemetryMediaData>\r\n\r\n  export enum EnumTelemetrymodules {\r\n    CONTENT = 'content',\r\n    FEEDBACK = 'feedback',\r\n    COURSE = 'course',\r\n    PROGRAM = 'program',\r\n    EXPLORE = 'explore',\r\n    LEARN = 'learn',\r\n    HOME = 'home',\r\n    DASHBOARD = 'dashboard',\r\n    SEARCH = 'search',\r\n    DISCUSS = 'Discuss',\r\n    COMPETENCY = 'competency',\r\n    EVENTS = 'events',\r\n    CAREER = 'career',\r\n    PROFILE = 'profile',\r\n    NETWORK = 'network',\r\n    SUPPORT = 'support',\r\n    KARMAPOINTS = 'karmapoints',\r\n    PLATFORM_RATING = 'platformrating',\r\n  }\r\n  export enum EnumInteractTypes {\r\n    CLICK = 'click',\r\n    subType = 'subType',\r\n  }\r\n  export enum EnumInteractSubTypes {\r\n    COURSE_TAB = 'course-tab',\r\n    CAREER_TAB = 'career-tab',\r\n    NETWORK_TAB = 'network-tab',\r\n    COMPETENCY_TAB = 'competency-tab',\r\n    PROFILE_EDIT_TAB = 'profile-edit-tab',\r\n    DISCUSS_TAB = 'discuss-tab',\r\n    EVENTS_TAB = 'events-tab',\r\n    SIDE_MENU = 'side-menu',\r\n    MY_IGOT = 'my-igot',\r\n    MY_LEARNING = 'my-learning',\r\n    RECENTLY_ADDED = 'recently-added',\r\n    TRENDING_IN_YOUR_DEPARTMENT = 'trending-in-your-department',\r\n    TRENDING_ACROSS_YOUR_DEPARTMENTS = 'trending-across-your-departments',\r\n    LEARNING_UNDER_30_MINUTES = 'learning-under-30-minutes',\r\n    BLENDED_PROGRAM = 'blended program',\r\n    RECENT_CONNECTION_REQUEST = 'recent-connection-request',\r\n    CERTIFICATIONS_OF_THE_WEEK = 'certifications-of-the-week',\r\n    HOME_PAGE_STRIP_TABS = 'home-page-strip-tabs',\r\n    HUB_MENU = 'hub-menu',\r\n    PORTAL_NUDGE = 'portal_nudge',\r\n    CERTIFICATE = 'certificate',\r\n    DEFAULT_SUBTYPE = 'default-subtype',\r\n    SUGGESTED_CONNECTIONS = 'suggested-connections',\r\n    PROFILE = 'profile',\r\n    ADD_POST = 'add-post',\r\n    TRENDING_DISCUSSIONS = 'trending-discussions',\r\n    MY_DISCUSSIONS = 'my-discussions',\r\n  }\r\n}\r\n","import { Platform } from '@angular/cdk/platform'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { Injectable } from '@angular/core'\r\nimport { Observable } from 'rxjs'\r\nimport { Router, NavigationEnd, ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router'\r\nimport { WsEvents } from './event.model'\r\ninterface IWindowMobileAppModified extends Window {\r\n  appRef?: any\r\n  webkit?: any\r\n}\r\ndeclare var window: IWindowMobileAppModified\r\n\r\nconst RANDOM_ID_PER_USER = 0\r\ninterface IRecursiveData {\r\n  identifier: string\r\n  children: null | IRecursiveData[]\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class UtilityService {\r\n  currentRouteData: any[] = []\r\n  constructor(\r\n    private http: HttpClient,\r\n    private platform: Platform,\r\n    private router: Router,\r\n    private route: ActivatedRoute,\r\n    // private events: EventService,\r\n  ) {\r\n    this.router.events.subscribe((event: any) => {\r\n      if (event instanceof NavigationEnd) {\r\n        // let snapshot = this.router.routerState.firstChild(this.activatedRoute).snapshot\r\n        // console.log('this.route.snapshot :: ', this.route.snapshot)\r\n        const snapshot = this.route.snapshot\r\n        // console.log('root.snapshot.root.firstChild ', snapshot.root.firstChild)\r\n        // console.log('firstChild ', snapshot.firstChild)\r\n        const firstChild = snapshot.root.firstChild\r\n        this.getChildRouteData(snapshot, firstChild)\r\n      }\r\n    })\r\n  }\r\n\r\n  private getChildRouteData(snapshot: ActivatedRouteSnapshot, firstChild: ActivatedRouteSnapshot | null) {\r\n    if (firstChild) {\r\n      if (firstChild.data) {\r\n        // console.log('firstChild.data', firstChild.data)\r\n        this.currentRouteData.push(firstChild.data)\r\n      }\r\n      if (firstChild.firstChild) {\r\n        this.getChildRouteData(snapshot, firstChild.firstChild)\r\n      }\r\n    }\r\n  }\r\n\r\n  get randomId() {\r\n    return RANDOM_ID_PER_USER + 1\r\n  }\r\n\r\n  getJson<T>(url: string): Observable<T> {\r\n    return this.http.get<T>(url)\r\n  }\r\n\r\n  getLeafNodes<T extends IRecursiveData>(node: T, nodes: T[]): T[] {\r\n    if ((node.children || []).length === 0) {\r\n      nodes.push(node)\r\n    } else {\r\n      if (node.children) {\r\n        node.children.forEach(child => {\r\n          this.getLeafNodes(child, nodes)\r\n        })\r\n      }\r\n    }\r\n    return nodes\r\n  }\r\n  getPath<T extends IRecursiveData>(node: T, id: string): T[] {\r\n    const path: T[] = []\r\n    this.hasPath(node, path, id)\r\n    return path\r\n  }\r\n\r\n  private hasPath<T extends IRecursiveData>(node: T, pathArr: T[], id: string): boolean {\r\n    if (node == null) {\r\n      return false\r\n    }\r\n    pathArr.push(node)\r\n    if (node.identifier === id) {\r\n      return true\r\n    }\r\n    const children = node.children || []\r\n    if (children.some(u => this.hasPath(u, pathArr, id))) {\r\n      return true\r\n    }\r\n    pathArr.pop()\r\n    return false\r\n  }\r\n\r\n  get isMobile(): boolean {\r\n    if (this.isIos || this.isAndroid) {\r\n      return true\r\n    }\r\n    return false\r\n  }\r\n\r\n  get isIos(): boolean {\r\n    return this.platform.IOS\r\n  }\r\n\r\n  get isAndroid(): boolean {\r\n    return this.platform.ANDROID\r\n  }\r\n  get isAndroidApp(): boolean {\r\n    return Boolean(window.appRef)\r\n  }\r\n\r\n  get iOsAppRef() {\r\n    if (\r\n      window.webkit &&\r\n      window.webkit.messageHandlers &&\r\n      window.webkit.messageHandlers.appRef\r\n    ) {\r\n      return window.webkit.messageHandlers.appRef\r\n    }\r\n    return null\r\n  }\r\n\r\n  public setRouteData(data: any) {\r\n    this.currentRouteData = data\r\n  }\r\n\r\n  get routeData(): WsEvents.ITelemetryPageContext {\r\n    const data: WsEvents.ITelemetryPageContext = {\r\n      module: '',\r\n      pageId: '',\r\n    }\r\n    // tslint:disable-next-line: no-console\r\n    // console.log('Final currentDataRoute get routeData()', this.currentRouteData)\r\n    this.currentRouteData.map((rd: any) => {\r\n      if (rd.pageId) {\r\n        data.pageId = `${data.pageId}/${rd.pageId}`\r\n      }\r\n      if (rd.module) {\r\n        data.module = rd.module\r\n      }\r\n    })\r\n    return data\r\n  }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Subject } from 'rxjs'\r\nimport { WsEvents } from './event.model'\r\nimport { UtilityService } from './utility.service'\r\n/* tslint:disable*/\r\nimport _ from 'lodash'\r\nimport moment from 'moment'\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class EventService {\r\n  todaysEvents: any = []\r\n  todaysLiveEvents: any = []\r\n  keySpeakerEvents: any = []\r\n\r\n  private eventsSubject = new Subject<WsEvents.IWsEvents<any>>()\r\n  public events$ = this.eventsSubject.asObservable()\r\n\r\n  private eventsChatbotSubject = new Subject<WsEvents.IWsEvents<any>>()\r\n  public chatbotEvents$ = this.eventsChatbotSubject.asObservable()\r\n\r\n  private eventsGetStartSubject = new Subject<WsEvents.IWsEvents<any>>()\r\n  public getStartEvents$ = this.eventsGetStartSubject.asObservable()\r\n\r\n  private eventsPRSubject = new Subject<WsEvents.IWsEvents<any>>()\r\n  public getPREvents$ = this.eventsPRSubject.asObservable()\r\n\r\n  environment: any\r\n  constructor(\r\n    @Inject('environment') environment: any,\r\n    private utilitySvc: UtilityService,\r\n  ) {\r\n    this.environment = environment\r\n    // this.focusChangeEventListener()\r\n  }\r\n\r\n  dispatchEvent<T>(event: WsEvents.IWsEvents<T>) {\r\n    event.pageContext = this.getContext(event.pageContext)\r\n    this.eventsSubject.next(event)\r\n  }\r\n\r\n  dispatchChatbotEvent<T>(event: WsEvents.IWsEvents<T>) {\r\n    this.eventsChatbotSubject.next(event)\r\n  }\r\n\r\n  dispatchGetStartedEvent<T>(event: WsEvents.IWsEvents<T>) {\r\n    this.eventsGetStartSubject.next(event)\r\n  }\r\n\r\n  dispatchPlatformRatingEvent<T>(event: WsEvents.IWsEvents<T>) {\r\n    this.eventsPRSubject.next(event)\r\n  }\r\n\r\n\r\n  // helper functions\r\n  raiseInteractTelemetry(edata: WsEvents.ITelemetryEdata, object: any, pageContext?: WsEvents.ITelemetryPageContext) {\r\n    this.dispatchEvent<WsEvents.IWsEventTelemetryInteract>({\r\n      eventType: WsEvents.WsEventType.Telemetry,\r\n      eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n      data: {\r\n        edata,\r\n        object,\r\n        pageContext: this.getContext(pageContext),\r\n        eventSubType: WsEvents.EnumTelemetrySubType.Interact,\r\n      },\r\n      from: '',\r\n      to: 'Telemetry',\r\n    })\r\n  }\r\n\r\n  raiseFeedbackTelemetry(edata: WsEvents.ITelemetryEdata, object: any, from?: string) {\r\n    this.dispatchEvent<WsEvents.IWsEventTelemetryInteract>({\r\n      eventType: WsEvents.WsEventType.Telemetry,\r\n      eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n      data: {\r\n        edata,\r\n        object,\r\n        eventSubType: WsEvents.EnumTelemetrySubType.Feedback,\r\n      },\r\n      from: from || '',\r\n      to: 'Telemetry',\r\n    })\r\n  }\r\n\r\n  // Raise custom impression events eg:on tab change\r\n  raiseCustomImpression(object: any, pageContext?: WsEvents.ITelemetryPageContext) {\r\n    this.dispatchEvent<WsEvents.IWsEventTelemetryImpression>({\r\n      eventType: WsEvents.WsEventType.Telemetry,\r\n      eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n      data: {\r\n        object,\r\n        pageContext: this.getContext(pageContext),\r\n        eventSubType: WsEvents.EnumTelemetrySubType.Impression,\r\n      },\r\n      from: '',\r\n      to: 'Telemetry',\r\n    })\r\n  }\r\n\r\n  // private focusChangeEventListener() {\r\n  //   fromEvent(window, 'focus').subscribe(() => {\r\n  //     this.raiseInteractTelemetry('focus', 'gained', {})\r\n  //   })\r\n  //   fromEvent(window, 'blur').subscribe(() => {\r\n  //     this.raiseInteractTelemetry('focus', 'lost', {})\r\n  //   })\r\n  // }\r\n\r\n  // Method to get the context information about the telemetry interact event\r\n  private getContext(pageContext: WsEvents.ITelemetryPageContext | undefined): WsEvents.ITelemetryPageContext {\r\n    const routeDataContext = this.utilitySvc.routeData\r\n    // initialize with the route data configuration - current route's pageID & module\r\n    const finalContext: WsEvents.ITelemetryPageContext = {\r\n      pageId: routeDataContext.pageId,\r\n      module: routeDataContext.module,\r\n    }\r\n    if (pageContext) {\r\n      // if context has pageIdExt, append it to the route's pageId\r\n      if (pageContext.pageIdExt) {\r\n        finalContext.pageId = `${routeDataContext.pageId}_${pageContext.pageIdExt}`\r\n      } else if (pageContext.pageId) {\r\n        // else context has pageId, override it to the final pageID\r\n        finalContext.pageId = pageContext.pageId\r\n      }\r\n      // if context has module, override it to the final module\r\n      if (pageContext.module) {\r\n        finalContext.module = pageContext.module\r\n      }\r\n    }\r\n\r\n    return finalContext\r\n  }\r\n\r\n  public handleTabTelemetry(subType: string, data: WsEvents.ITelemetryTabData, object?: any) {\r\n    // raise a tab click interact event\r\n    this.raiseInteractTelemetry(\r\n      {\r\n        subType,\r\n        type: WsEvents.EnumInteractTypes.CLICK,\r\n        id: `${_.camelCase(data.label)}-tab`,\r\n      },\r\n      {\r\n        // context: {\r\n        //   position: data.index,\r\n        // },\r\n        ...object\r\n      },\r\n      {\r\n        pageIdExt: `${_.camelCase(data.label)}-tab`,\r\n      })\r\n\r\n    // raise a tab click impression event\r\n    this.raiseCustomImpression({\r\n      context: {\r\n        position: data.index,\r\n      },\r\n      ...object\r\n    }, {\r\n      pageIdExt: `${_.camelCase(data.label)}-tab`,\r\n    })\r\n  }\r\n\r\n  getPublicUrl(url: string): string {\r\n    const mainUrl = url.split('/content').pop() || ''\r\n    return `${this.environment.contentHost}/${this.environment.contentBucket}/content${mainUrl}`\r\n  }\r\n\r\n  allEventDateFormat(datetime: any) {\r\n    const date = new Date(datetime).getDate()\r\n    const year = new Date(datetime).getFullYear()\r\n    const month = new Date(datetime).getMonth()\r\n    const hours = new Date(datetime).getHours()\r\n    const minutes = new Date(datetime).getMinutes()\r\n    const seconds = new Date(datetime).getSeconds()\r\n    const formatedDate = new Date(year, month, date, hours, minutes, seconds, 0)\r\n    // let format = 'YYYY-MM-DD hh:mm a'\r\n    // if (!timeAllow) {\r\n    const format = 'YYYY-MM-DD'\r\n    // }\r\n    const readableDateMonth = moment(formatedDate).format(format)\r\n    const finalDateTimeValue = `${readableDateMonth}`\r\n    return finalDateTimeValue\r\n  }\r\n\r\n  compareDate(startDate: any) {\r\n    const now = new Date()\r\n\r\n    // tslint:disable-next-line:prefer-template\r\n    const day = ('0' + (new Date().getDate())).slice(-2)\r\n    const year = new Date().getFullYear()\r\n    // tslint:disable-next-line:prefer-template\r\n    const month = ('0' + (now.getMonth() + 1)).slice(-2)\r\n    const todaysdate = `${year}-${month}-${day}`\r\n    if (startDate === todaysdate) {\r\n      return true\r\n    }\r\n    return false\r\n  }\r\n\r\n  customDateFormat(date: any, time: any) {\r\n    const stime = time.split('+')[0]\r\n    const hour = stime.substr(0, 2)\r\n    const min = stime.substr(2, 3)\r\n    return `${date} ${hour}${min}`\r\n  }\r\n  sortItemByTime(eventsdata: any) {\r\n    return eventsdata.sort((a: any, b: any) => {\r\n      const firstDate: any = new Date(a.eventDate)\r\n      const secondDate: any = new Date(b.eventDate)\r\n      return secondDate > firstDate ? 1 : -1\r\n    })\r\n  }\r\n  sortItemByTimeAsc(eventsdata: any) {\r\n    return eventsdata.sort((a: any, b: any) => {\r\n      const firstDate: any = new Date(a.eventDate)\r\n      const secondDate: any = new Date(b.eventDate)\r\n      return secondDate < firstDate ? 1 : -1\r\n    })\r\n  }\r\n\r\n\r\n  setEventListData(eventObj: any) {\r\n    if (eventObj !== undefined) {\r\n      this.todaysEvents = []\r\n      this.todaysLiveEvents = []\r\n      this.keySpeakerEvents = []\r\n      const data = eventObj\r\n      let isEventLive: boolean = false\r\n      let isEventRecording: boolean = false\r\n      let isEventPast: boolean = false\r\n      let isEventFuture: boolean = false\r\n      // console.log('strip comp', data)\r\n      Object.keys(data).forEach((index: any) => {\r\n\r\n        isEventRecording = false\r\n        isEventLive = false\r\n        isEventPast = false\r\n        isEventFuture = false\r\n        const obj = data[index]\r\n        const floor = Math.floor\r\n        const hours = floor(obj.duration / 60)\r\n        const minutes = obj.duration % 60\r\n        const duration = (hours === 0) ? ((minutes === 0) ? '---' : `${minutes} minutes`) : (minutes === 0) ? (hours === 1) ?\r\n          `${hours} hour` : `${hours} hours` : (hours === 1) ? `${hours} hour ${minutes} minutes` :\r\n          `${hours} hours ${minutes} minutes`\r\n        const creatordata = obj.creatorDetails !== undefined ? obj.creatorDetails : []\r\n        const str = creatordata && creatordata.length > 0 ? creatordata.replace(/\\\\/g, '') : []\r\n        const creatorDetails = str && str.length > 0 ? JSON.parse(str) : creatordata\r\n\r\n        const stime = obj.startTime.split('+')[0]\r\n        const hour = stime.substr(0, 2)\r\n        const min = stime.substr(2, 3)\r\n        const starttime = `${hour}${min}`\r\n\r\n        const etime = obj.endTime.split('+')[0]\r\n        const ehour = etime.substr(0, 2)\r\n        const emin = etime.substr(2, 3)\r\n        const endtime = `${ehour}${emin}`\r\n        const eventDate = this.customDateFormat(obj.startDate, obj.startTime)\r\n        const eventendDate = this.customDateFormat(obj.endDate, obj.endTime)\r\n        const now = new Date()\r\n        const today = moment(now).format('YYYY-MM-DD HH:mm')\r\n        if (moment(today).isBetween(eventDate, eventendDate)) {\r\n          isEventRecording = false\r\n          isEventLive = true\r\n          if (today >= eventendDate) {\r\n            if (obj.recordedLinks && obj.recordedLinks.length > 0) {\r\n              isEventRecording = true\r\n              isEventLive = false\r\n            }\r\n          }\r\n        } else if (today >= eventendDate) {\r\n          isEventRecording = true\r\n          isEventLive = false\r\n          if (moment(today).isAfter(eventendDate) && moment(today).isAfter(eventDate)) {\r\n            isEventPast = true\r\n          }\r\n        } else {\r\n          if (moment(today).isBefore(eventDate) && moment(today).isBefore(eventendDate)) {\r\n            isEventFuture = true\r\n          }\r\n        }\r\n        const eventDataObj = {\r\n          eventDate,\r\n          eventendDate,\r\n          isEventLive,\r\n          isEventFuture,\r\n          isEventPast,\r\n          isEventRecording,\r\n          event: obj,\r\n          eventName: obj.name,\r\n          eventStartTime: starttime,\r\n          eventEndTime: endtime,\r\n          eventStartDate: obj.startDate,\r\n          eventCreatedOn: this.allEventDateFormat(obj.createdOn),\r\n          eventDuration: duration,\r\n          eventjoined: creatorDetails.length,\r\n          eventThumbnail: obj.appIcon && (obj.appIcon !== null || obj.appIcon !== undefined) ?\r\n            this.getPublicUrl(obj.appIcon) :\r\n            '/assets/icons/Events_default.png',\r\n          pastevent: false,\r\n        }\r\n        const isToday = this.compareDate(obj.startDate)\r\n        if (isToday) {\r\n          this.todaysEvents.push(eventDataObj)\r\n        }\r\n        if (isToday && isEventLive) {\r\n          this.todaysLiveEvents.push(eventDataObj)\r\n        }\r\n        this.keySpeakerEvents.push(eventDataObj)\r\n      })\r\n\r\n      this.todaysLiveEvents = this.sortItemByTime(this.todaysLiveEvents)\r\n      this.keySpeakerEvents = this.getKeySpeakerEvents(this.keySpeakerEvents)\r\n      this.todaysEvents = this.getTodaysEvents(this.todaysEvents)\r\n\r\n    }\r\n  }\r\n  getTodaysEvents(eventData: any) {\r\n    let liveEvents: any = []\r\n    let pastEvents: any = []\r\n    let futureEvents: any = []\r\n\r\n    liveEvents = this.todaysLiveEvents\r\n    pastEvents = eventData.filter((pastEvent: any) => pastEvent.isEventPast)\r\n    futureEvents = eventData.filter((futureEvent: any) => futureEvent.isEventFuture)\r\n    liveEvents = this.sortItemByTimeAsc(liveEvents)\r\n    futureEvents = this.sortItemByTimeAsc(futureEvents)\r\n    pastEvents = this.sortItemByTime(pastEvents)\r\n    this.todaysEvents = [...liveEvents, ...futureEvents, ...pastEvents]\r\n\r\n    return this.todaysEvents\r\n  }\r\n\r\n  getKeySpeakerEvents(eventData: any) {\r\n    let liveEvents: any = []\r\n    let pastEvents: any = []\r\n    let futureEvents: any = []\r\n\r\n    liveEvents = this.todaysLiveEvents\r\n    pastEvents = eventData.filter((pastEvent: any) => pastEvent.isEventPast)\r\n    futureEvents = eventData.filter((futureEvent: any) => futureEvent.isEventFuture)\r\n    liveEvents = this.sortItemByTimeAsc(liveEvents)\r\n    futureEvents = this.sortItemByTimeAsc(futureEvents)\r\n    pastEvents = this.sortItemByTime(pastEvents)\r\n    this.keySpeakerEvents = [...liveEvents, ...futureEvents, ...pastEvents]\r\n\r\n    return this.keySpeakerEvents\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, OnChanges, OnDestroy, Input, Output, ViewChild, EventEmitter, ElementRef } from '@angular/core'\nimport {\n  fromEvent,\n  Subscription,\n  timer,\n} from 'rxjs'\nimport { debounceTime, throttleTime } from 'rxjs/operators'\nimport { TFetchStatus } from '../../constants/misc.constants'\nimport { EventService } from '../../services/event.service'\nimport { WsEvents } from '../../services/event.model'\n\n@Component({\n  selector: 'ws-utils-horizontal-scroller-v2',\n  templateUrl: './horizontal-scroller-v2.component.html',\n  styleUrls: ['./horizontal-scroller-v2.component.scss'],\n})\n\nexport class HorizontalScrollerV2Component implements OnInit, OnChanges, OnDestroy {\n\n  @Input() loadStatus: TFetchStatus = 'fetching'\n  @Input() onHover = false\n  @Input() sliderConfig = {\n    showNavs: true,\n    showDots: true,\n    cerificateCardMargin: false,\n  }\n  @Output() loadNext = new EventEmitter()\n  @Input() widgetsLength: any\n  @Input() defaultMaxWidgets: any\n  @Input() stripConfig: any\n  @Input() stripsResultDataMap: any\n  @Input() subtype!: string\n  @ViewChild('horizontalScrollElem', { static: true })\n  horizontalScrollElem: ElementRef | null = null\n\n  enablePrev = false\n  enableNext = false\n  activeNav = 0\n  cardSubType = 'standard'\n  bottomDotsArray: any = []\n  private scrollObserver: Subscription | null = null\n\n  constructor(private eventService: EventService) { }\n\n  ngOnInit() {\n    this.cardSubType = this.stripConfig && this.stripConfig.cardSubType ? this.stripConfig.cardSubType : 'standard'\n    if (this.horizontalScrollElem) {\n      const horizontalScrollElem = this.horizontalScrollElem\n      this.scrollObserver = fromEvent(\n        horizontalScrollElem.nativeElement,\n        'scroll',\n      )\n      .pipe(debounceTime(100), throttleTime(100))\n      .subscribe(_ => {\n        this.updateNavigationBtnStatus(horizontalScrollElem\n          .nativeElement as HTMLElement)\n      })\n\n      this.getBottomDotsArray()\n    }\n  }\n\n  ngOnChanges() {\n    timer(100).subscribe(() => {\n      if (this.horizontalScrollElem) {\n        this.updateNavigationBtnStatus(this.horizontalScrollElem\n          .nativeElement as HTMLElement)\n      }\n    })\n    this.getBottomDotsArray()\n  }\n\n  ngOnDestroy() {\n    if (this.scrollObserver) {\n      this.scrollObserver.unsubscribe()\n    }\n  }\n\n  showPrev() {\n    // const elem = this.horizontalScrollElem.nativeElement\n    // elem.scrollLeft -= 0.20 * elem.clientWidth\n    if (this.horizontalScrollElem) {\n      // const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth * 0.24)\n      const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth)\n      this.horizontalScrollElem.nativeElement.scrollTo({\n        left: this.horizontalScrollElem.nativeElement.scrollLeft - clientWidth,\n        behavior: 'smooth',\n      })\n\n      this.activeNav -= 1\n      this.raiseNavigationTelemetry('more-left')\n    }\n  }\n\n  showNext() {\n    // const elem = this.horizontalScrollElem.nativeElement\n    // elem.scrollLeft += 0.20 * elem.clientWidth\n    if (this.horizontalScrollElem) {\n      // const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth * 0.24)\n      const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth)\n      this.horizontalScrollElem.nativeElement.scrollTo({\n        left: this.horizontalScrollElem.nativeElement.scrollLeft + clientWidth,\n        behavior: 'smooth',\n      })\n      this.activeNav += 1\n      this.raiseNavigationTelemetry('more-right')\n    }\n  }\n  private raiseNavigationTelemetry(id: string) {\n    this.eventService.raiseInteractTelemetry(\n      {\n        id,\n        type: WsEvents.EnumInteractTypes.CLICK,\n        subType: this.subtype,\n      },\n      {},\n      {\n        module: WsEvents.EnumTelemetrymodules.HOME,\n      }\n    )\n  }\n\n  private updateNavigationBtnStatus(elem: HTMLElement) {\n    this.enablePrev = true\n    this.enableNext = true\n    if (elem.scrollLeft === 0) {\n      this.enablePrev = false\n      this.activeNav = 0\n    }\n\n    const widthDiff = Math.abs(elem.scrollWidth - Math.round(elem.clientWidth + elem.scrollLeft))\n    if (widthDiff === 0 || widthDiff === 1) {\n      if (this.loadStatus === 'hasMore') {\n        this.loadNext.emit()\n      } else {\n        this.enableNext = false\n        if (this.bottomDotsArray.length) {\n          this.activeNav = this.bottomDotsArray.length - 1\n        }\n      }\n    }\n    if (elem.scrollLeft !== 0 && (elem.scrollWidth !== elem.clientWidth + elem.scrollLeft)) {\n      this.activeNav = Math.ceil(elem.scrollLeft / elem.clientWidth)\n    }\n  }\n\n  slideTo(ele: any) {\n    const diff = ele - this.activeNav\n    // if (ele > this.activeNav && ele !== this.activeNav) {\n    //   if (this.horizontalScrollElem) {\n    //     const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth)\n    //     this.horizontalScrollElem.nativeElement.scrollTo({\n    //       left: this.horizontalScrollElem.nativeElement.scrollLeft + (clientWidth*diff),\n    //       behavior: 'smooth',\n    //     })\n    //   }\n    //   this.activeNav = ele\n    // } else {\n    //   if (this.horizontalScrollElem && ele >= 0 && ele !== this.activeNav) {\n    //     const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth)\n    //     this.horizontalScrollElem.nativeElement.scrollTo({\n    //       left: this.horizontalScrollElem.nativeElement.scrollLeft - (clientWidth*diff),\n    //       behavior: 'smooth',\n    //     })\n    //   }\n    //   this.activeNav = ele\n    // }\n    if (this.horizontalScrollElem) {\n      const clientWidth = (this.horizontalScrollElem.nativeElement.clientWidth)\n      this.horizontalScrollElem.nativeElement.scrollTo({\n        left: this.horizontalScrollElem.nativeElement.scrollLeft + (clientWidth * diff),\n        behavior: 'smooth',\n      })\n    }\n    this.activeNav = ele\n  }\n\n  getBottomDotsArray() {\n    if (this.horizontalScrollElem) {\n      this.bottomDotsArray = []\n      let cardWidth\n      let arrLength\n      // console.log('this.cardSubType-->',this.cardSubType)\n      if (this.cardSubType !== 'card-wide-v2') {\n        cardWidth = this.cardSubType === 'standard' ? 245 :\n        ((document.getElementsByClassName(this.cardSubType) &&\n         document.getElementsByClassName(this.cardSubType)[0] !== undefined)\n        ? document.getElementsByClassName(this.cardSubType)[0].clientWidth : 245)\n        if (document.getElementsByClassName('horizontal-scroll-container') &&\n        document.getElementsByClassName('horizontal-scroll-container')[0]) {\n          const scrollerWidth = document.getElementsByClassName('horizontal-scroll-container')[0].clientWidth\n          const totalCardsLength = cardWidth * this.widgetsLength\n          if (totalCardsLength > scrollerWidth) {\n            arrLength = (scrollerWidth / cardWidth)\n            this.defaultMaxWidgets = this.defaultMaxWidgets ?  this.widgetsLength < this.defaultMaxWidgets ?\n              this.widgetsLength : this.defaultMaxWidgets : this.defaultMaxWidgets\n            arrLength = this.defaultMaxWidgets / arrLength\n            if (arrLength !== Infinity) {\n              for (let i = 0; i < arrLength; i += 1) {\n                this.bottomDotsArray.push(i)\n              }\n            }\n            // console.log('this.cardSubType', this.cardSubType, arrLength, this.widgetsLength ,\n            // this.defaultMaxWidgets, scrollerWidth, this.bottomDotsArray)\n          }\n        }\n      } else {\n        setTimeout(() => {\n          arrLength = document.getElementsByClassName(this.cardSubType).length\n          for (let i = 0; i < arrLength; i += 1) {\n            this.bottomDotsArray.push(i)\n          }\n        },         1000)\n      }\n    }\n  }\n}\n","<section class=\"horizontal-scroll-container h-full\" [ngClass]=\"{'px-4': sliderConfig.showNavs, 'mt-5':sliderConfig.cerificateCardMargin}\">\n    <ng-container *ngIf=\"sliderConfig?.showNavs\">\n        <button i18n-aria-label aria-label=\"back\" name=\"content-backward-button\" mat-mini-fab color=\"\" \n            (click)=\"showPrev()\" class=\"prevBtn  mat-elevation-z\" [hidden]=\"!enablePrev\"\n            [ngClass]=\"{'prevBtnHover': onHover}\">\n            <mat-icon>navigate_before</mat-icon>\n        </button>\n    </ng-container>\n    <div name=\"horizontal-scroll-content-strip\" class=\"horizontal-scroll-content\" #horizontalScrollElem>\n        <ng-content></ng-content>\n    </div>\n    <ng-container *ngIf=\"sliderConfig?.showNavs\">\n        <button i18n-aria-label aria-label=\"next\" name=\"content-forward-button\" mat-mini-fab (click)=\"showNext()\"\n            color=\"\" class=\"nextBtn  mat-elevation-z\" [ngClass]=\"{'nextBtnHover': onHover}\"\n            [hidden]=\"!enableNext || loadStatus === 'fetching'\">\n            <mat-icon>navigate_next</mat-icon>\n        </button>\n    </ng-container>\n    <!-- <div class=\"nextLoading\" *ngIf=\"loadStatus === 'fetching'\">\n        <mat-spinner></mat-spinner>\n    </div> -->    \n</section>\n\n<div class=\"dots-container\" *ngIf=\"sliderConfig?.showDots\">\n    <!-- <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex }\" -->\n    <span class=\"dot\" [ngClass]=\"{ active: j === activeNav }\" *ngFor=\"let slide of bottomDotsArray; let j = index\" (click)=\"slideTo(j)\"></span>\n</div>","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { HorizontalScrollerV2Component } from './horizontal-scroller-v2.component'\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner'\n\n@NgModule({\n  declarations: [HorizontalScrollerV2Component],\n  imports: [\n    CommonModule,\n    MatButtonModule,\n    MatIconModule,\n    MatProgressSpinnerModule,\n  ],\n  exports: [HorizontalScrollerV2Component],\n})\nexport class HorizontalScrollerV2Module { }\n","// tslint:disable:no-console\r\nimport { Injectable } from '@angular/core'\r\nimport { ConfigurationsService } from './configurations.service'\r\n\r\ntype consoleFun = (...args: any) => void\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class LoggerService {\r\n  constructor(private configSvc: ConfigurationsService) { }\r\n\r\n  private consoleError = console.error\r\n  private consoleInfo = console.info\r\n  private consoleLog = console.log\r\n  private consoleWarn = console.warn\r\n  private noConsole: consoleFun = () => { }\r\n\r\n  get error() {\r\n    return this.consoleError\r\n  }\r\n  get info() {\r\n    return this.configSvc.isProduction ? this.noConsole : this.consoleInfo\r\n  }\r\n  get log() {\r\n    return this.configSvc.isProduction ? this.noConsole : this.consoleLog\r\n  }\r\n  get warn() {\r\n    return this.configSvc.isProduction ? this.noConsole : this.consoleWarn\r\n  }\r\n\r\n  removeConsoleAccess() {\r\n    if (this.configSvc.isProduction) {\r\n      return\r\n    }\r\n    const noConsoleWithError: consoleFun = () => {\r\n      throw new Error('Console Functions Usage Are Not Allowed.')\r\n    }\r\n    // console.log = noConsoleWithError\r\n    console.warn = noConsoleWithError\r\n    console.info = noConsoleWithError\r\n    console.error = noConsoleWithError\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { LoggerService } from './logger.service'\r\nimport { NsInstanceConfig } from './configurations.model'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { IWsMsTokenModelResponse } from './ms-office.model'\r\n// TODO: Use a url-search-polyfill if the site didnot work in IE 11\r\n\r\nconst msTokenExpiryDuration = 600\r\nconst storageKey = 'msLoginRequested'\r\nconst storage = localStorage\r\n\r\nconst API_ENDPOINTS = {\r\n  sharePointToken: '/apis/protected/v8/user/token',\r\n}\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class AuthMicrosoftService {\r\n  private msConfig: NsInstanceConfig.IMicrosoft = {\r\n    clientId: '',\r\n    tenant: '',\r\n    defaultEmailId: '',\r\n    validEmailExtensions: [],\r\n    isConfigured: false,\r\n  }\r\n  private emailUsed: string | null = null\r\n  private code: string | null = null\r\n  private msToken: IWsMsTokenModelResponse = {\r\n    accessToken: '',\r\n    expiresOn: '',\r\n    resource: '',\r\n    tokenType: '',\r\n  }\r\n\r\n  constructor(private loggerSvc: LoggerService, private http: HttpClient) { }\r\n\r\n  get isLogoutRequired(): boolean {\r\n    return Boolean(this.msConfig.isConfigured && this.msConfig.clientId && this.emailUsed)\r\n  }\r\n  get loginUrl(): string | null {\r\n    if (this.msConfig.isConfigured && this.msConfig.clientId) {\r\n      const base = 'https://login.windows.net/common/oauth2/authorize'\r\n      const searchParam = new URLSearchParams({\r\n        response_type: 'code',\r\n        client_id: this.msConfig.clientId,\r\n        redirect_uri: window.location.href,\r\n      })\r\n      const fragment = location.search.substring(1)\r\n      if (fragment) {\r\n        return `${base}?${searchParam.toString()}#${fragment}`\r\n      }\r\n      return `${base}?${searchParam.toString()}`\r\n    }\r\n    return null\r\n  }\r\n  logoutUrl(redirectUrl: string) {\r\n    if (this.isValidEmail(this.emailUsed || '')) {\r\n      return `https://login.microsoftonline.com/common/oauth2/logout?post_logout_redirect_uri=${redirectUrl}`\r\n    }\r\n    return redirectUrl\r\n  }\r\n\r\n  // Behavior Methods\r\n\r\n  async init(config: Pick<NsInstanceConfig.IConfig, 'microsoft'>) {\r\n    if (!config || !config.microsoft || !config.microsoft.isConfigured) {\r\n      this.loggerSvc.warn('Empty/No Configuration passed, ignoring Microsoft Authentication')\r\n    }\r\n    this.msConfig = config.microsoft\r\n    const queryParams = new URLSearchParams(location.search)\r\n    if (queryParams.has('code') && queryParams.has('session_state')) {\r\n      this.code = queryParams.get('code')\r\n      if (!this.code) {\r\n        return\r\n      }\r\n      let url = location.origin + location.pathname\r\n      await this.exchangeTokenForCode(this.code, url)\r\n      if (location.hash) {\r\n        url += location.hash.substring(1)\r\n      }\r\n      history.replaceState(null, '', url)\r\n    }\r\n  }\r\n\r\n  async login(email: string) {\r\n    if (!this.isValidEmail(email)) {\r\n      this.loggerSvc.warn(`Microsoft Login is not allowed for your emailId (${email})`)\r\n      return\r\n    }\r\n    const loginUrl = this.loginUrl\r\n    if (loginUrl) {\r\n      location.assign(loginUrl)\r\n    } else {\r\n      this.loggerSvc.warn('Unable to identify Office Login URL, Ignoring login request')\r\n    }\r\n  }\r\n\r\n  async getToken(email: string): Promise<string> {\r\n    if (\r\n      this.msToken &&\r\n      this.isValid(this.msToken.accessToken, this.msToken.expiresOn) &&\r\n      this.msToken.accessToken\r\n    ) {\r\n      return this.msToken.accessToken\r\n    }\r\n    if (this.isValidEmail(email)) {\r\n      try {\r\n        this.msToken = await this.getTokenForEmail(email)\r\n        if (this.msToken.accessToken) {\r\n          this.emailUsed = email\r\n          return this.msToken.accessToken\r\n        }\r\n      } catch (error) {\r\n        if (!this.code) {\r\n          this.login(email)\r\n        }\r\n      }\r\n    }\r\n    if (this.msConfig.defaultEmailId && this.isValidEmail(this.msConfig.defaultEmailId)) {\r\n      try {\r\n        this.msToken = await this.getTokenForEmail(this.msConfig.defaultEmailId)\r\n        if (this.msToken.accessToken) {\r\n          this.emailUsed = this.msConfig.defaultEmailId\r\n          return this.msToken.accessToken\r\n        }\r\n      } catch (error) { }\r\n    }\r\n    throw new Error('UNABLE TO FETCH MS AUTH TOKEN')\r\n  }\r\n\r\n  loginForSSOEnabledEmbed(email: string) {\r\n    if (!this.isValidEmail(email)) {\r\n      this.loggerSvc.warn('SSO Login request Ignored. Invalid Email Id for SSO Enabled Content')\r\n    }\r\n    let msPrevTS = 0\r\n    try {\r\n      msPrevTS = parseInt(storage.getItem(storageKey) || '0', 10)\r\n    } catch (error) { }\r\n    if (!msPrevTS || (msPrevTS && (Date.now() - msPrevTS) / 1000 > msTokenExpiryDuration)) {\r\n      this.loggerSvc.info(\r\n        `last login exceeded ${msTokenExpiryDuration} duration. Redirecting to O365 login`,\r\n      )\r\n      storage.setItem(storageKey, Date.now().toString())\r\n      this.login(email)\r\n    }\r\n  }\r\n\r\n  isValidEmail(email: string) {\r\n    return this.msConfig.validEmailExtensions.some(ext => email.endsWith(ext))\r\n  }\r\n\r\n  isValid(accessToken: string | undefined, expiresOn: string | undefined): boolean {\r\n    if (accessToken && expiresOn) {\r\n      // TODO: Implement expiredOn and Date comparison based validity\r\n      return true\r\n    }\r\n    return false\r\n  }\r\n\r\n  async exchangeTokenForCode(code: string, redirectUrl: string): Promise<any> {\r\n    const response = await this.http\r\n      .get<IWsMsTokenModelResponse>(`${API_ENDPOINTS}?code=${code}&redirectUrl=${redirectUrl}`)\r\n      .toPromise()\r\n    return this.getInstanceFromResponse(response)\r\n  }\r\n\r\n  async getTokenForEmail(email: string): Promise<any> {\r\n    const response = await this.http\r\n      .get<IWsMsTokenModelResponse>(`${API_ENDPOINTS.sharePointToken}?email=${email}`)\r\n      .toPromise()\r\n    return this.getInstanceFromResponse(response)\r\n  }\r\n\r\n  getInstanceFromResponse(token: IWsMsTokenModelResponse) {\r\n    return {\r\n      accessToken: token.accessToken,\r\n      expiresOn: token.expiresOn,\r\n      resource: token.resource,\r\n      tokenType: token.tokenType,\r\n    }\r\n  }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\nimport { ConfigurationsService } from './configurations.service'\n\n// ─── Interfaces (single source of truth) ─────────────────────────────────────\n\nexport interface ITenantFeatures {\n  /** Optional per-route overrides: { discuss: false } disables only the route guard */\n  routes?: { [feature: string]: boolean }\n  [feature: string]: boolean | { [feature: string]: boolean } | undefined\n}\n\nexport interface ITenantConfig {\n  type: 'core' | 'internal' | 'external'\n  layout: string\n  features: ITenantFeatures\n  logo?: string\n  redirectPath?: string\n  cdnContentHost?: string\n  sitePath?: string\n  karmayogiBharatLink?: string\n}\n\nexport interface ITenantConfigFile {\n  defaultTenant: string\n  tenants: { [tenantId: string]: ITenantConfig }\n}\n\n// ─── Service ──────────────────────────────────────────────────────────────────\n\n/**\n * DomainConfService  (single source of truth)\n *\n * Combines three responsibilities that used to live in separate files:\n *\n *  1. Tenant resolution  – resolves the tenant key from the current hostname\n *\n *  2. Tenant config      – holds the per-tenant feature flags / layout / type\n *     loaded from globalConfig.applicationConfig.tenants\n *\n *  3. Domain data        – convenience accessors for CDN host, logo, redirect\n *     path, site path etc. keyed by the resolved tenant\n *\n * Inject this service directly anywhere you need tenant or domain information.\n * Interfaces ITenantConfig, ITenantConfigFile, ITenantFeatures are exported\n * from this file and re-exported from the package public-api.\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class DomainConfService {\n\n  // ── hostname / tenant ──────────────────────────────────────────────────────\n\n  readonly currentHostname: string = window.location.hostname\n\n  /**\n   * Resolved tenant key derived from the current hostname.\n   *\n   * Resolution order:\n   *  1. localhost / 127.0.0.1             → 'localhost'\n   *  2. Old format  {tenant}-portal.x.y   → '{tenant}-portal'\n   *  3. New format  portal.{tenant}.x.y.z → '{tenant}'\n   *  4. Default     portal.x.y.z          → 'portal'\n   */\n  readonly subdomain: string\n\n  /** Alias: `tenant` is the same as `subdomain`, provided for readability. */\n  get tenant(): string { return this.subdomain }\n\n  environment: any\n\n  // ── tenant config state ────────────────────────────────────────────────────\n\n  private _tenantConfigFile: ITenantConfigFile | null = null\n  private _currentTenantConfig: ITenantConfig | null = null\n  public loaded = false\n\n  constructor(\n    private configSvc: ConfigurationsService,\n    @Inject('environment') environment: any,\n  ) {\n    this.environment = environment\n    this.subdomain = this.resolveTenant(this.currentHostname)\n  }\n\n  // ── default config (lazy getter so env values are resolved after injection) ─\n\n  private get defaultConfig(): ITenantConfig {\n    return {\n      type: 'core',\n      layout: 'default',\n      logo: this.environment?.logo || '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo_Horizontal.svg',\n      redirectPath: this.environment?.redirectPath || '/page/home',\n      cdnContentHost: this.environment?.cdnContentHost || 'https://portal.igotkarmayogi.gov.in/',\n      sitePath: this.environment?.sitePath || 'portal.igotkarmayogi.gov.in',\n      karmayogiBharatLink: this.environment?.karmayogiBharatLink || 'https://igotkarmayogi.gov.in/',\n      features: {\n        discussion: true,\n        network: true,\n        events: true,\n        leaderboard: true,\n        marketplace: true,\n        chatbot: true,\n        tour: true,\n        bottomNav: true,\n      },\n    }\n  }\n\n  // ── 1. Tenant resolution ───────────────────────────────────────────────────\n\n  resolveTenant(hostname: string): string {\n    if (!hostname) { return 'portal' }\n    const parts = hostname.split('.')\n    if (hostname.includes('localhost') || hostname === '127.0.0.1') { return 'localhost' }\n    if (parts[0].includes('-portal')) { return parts[0] }\n    if (parts[0] === 'portal' && parts.length >= 4) { return parts[1] }\n    return parts[0] || 'portal'\n  }\n\n  /** True when the resolved tenant is not the main portal */\n  isExternalTenantHost(): boolean {\n    return this.subdomain !== 'portal' && this.subdomain !== 'localhost'\n  }\n\n  // ── 2. Tenant config ───────────────────────────────────────────────────────\n\n  /**\n   * Initializes tenant configuration from globalConfig.applicationConfig.\n   * Called by InitService once the globalConfig API resolves.\n   */\n  initFromConfig(applicationConfig: ITenantConfigFile): void {\n    if (!applicationConfig) {\n      console.warn('DomainConfService: applicationConfig is empty, using defaults')\n      return\n    }\n    this._tenantConfigFile = applicationConfig\n    this._currentTenantConfig = this._tenantConfigFile.tenants[this.subdomain] || null\n\n    // Fallback: ?tenant= query param → defaultTenant in config\n    if (!this._currentTenantConfig) {\n      const debugTenant = new URLSearchParams(window.location.search).get('tenant')\n      if (debugTenant && this._tenantConfigFile.tenants[debugTenant]) {\n        this._currentTenantConfig = this._tenantConfigFile.tenants[debugTenant]\n      } else if (\n        this._tenantConfigFile.defaultTenant &&\n        this._tenantConfigFile.tenants[this._tenantConfigFile.defaultTenant]\n      ) {\n        this._currentTenantConfig = this._tenantConfigFile.tenants[this._tenantConfigFile.defaultTenant]\n      }\n    }\n    this.loaded = true\n  }\n\n  /** Returns the full tenant configuration for the current tenant */\n  getTenantConfig(): ITenantConfig {\n    return this._currentTenantConfig || this.defaultConfig\n  }\n\n  /** Returns the layout identifier ('default', 'tenant-layout-v1', …) */\n  getLayout(): string {\n    return this.getTenantConfig().layout || 'default'\n  }\n\n  /** Returns the tenant type: 'core' | 'internal' | 'external' */\n  getTenantType(): string {\n    return this.getTenantConfig().type || 'core'\n  }\n\n  /** True when the tenant config declares type = 'external' */\n  isExternalTenant(): boolean {\n    return this.getTenantType() === 'external'\n  }\n\n  /** True when the tenant uses a non-default layout */\n  hasTenantLayout(): boolean {\n    return this.getLayout() !== 'default'\n  }\n\n  /**\n   * Checks if a top-level feature flag is enabled for the current tenant.\n   * Defaults to true when no config entry exists (safe for existing portal users).\n   */\n  isFeatureEnabled(feature: string): boolean {\n    const config = this.getTenantConfig()\n    if (!config.features) { return true }\n    const flag = config.features[feature]\n    return typeof flag === 'boolean' ? flag : true\n  }\n\n  /**\n   * Checks the route-level feature flag (features.routes.<feature>).\n   * Defaults to true when not specified.\n   */\n  isFeatureRoutesEnabled(feature: string): boolean {\n    const config = this.getTenantConfig()\n    if (!config?.features?.routes) { return true }\n    return config.features.routes[feature] ?? true\n  }\n\n  /** Returns all feature flags for the current tenant */\n  getFeatures(): ITenantFeatures {\n    return this.getTenantConfig().features || {}\n  }\n\n  // ── 3. Domain data accessors ───────────────────────────────────────────────\n  //\n  // All accessors use getTenantConfig() which returns _currentTenantConfig —\n  // the fully-resolved config that already accounts for hostname, ?tenant= param,\n  // and defaultTenant fallback. This ensures consistency: if you land on localhost\n  // with ?tenant=iiidem-portal, both feature flags AND domain data return iiidem\n  // values, not localhost/environment fallbacks.\n\n  getDomainCDNHost(): string {\n    return this.getTenantConfig().cdnContentHost || this.environment?.cdnContentHost || ''\n  }\n\n  getDomainAppLogo(): string {\n    const tenantLogo = this.getTenantConfig().logo\n    if (tenantLogo) { return tenantLogo }\n    return this.configSvc?.instanceConfig?.logos?.app || ''\n  }\n\n  getDomainRedirectPath(): string {\n    return this.getTenantConfig().redirectPath || '/page/home'\n  }\n\n  getDomainSitePath(): string {\n    return this.getTenantConfig().sitePath || this.environment?.sitePath || ''\n  }\n\n  /** True when the current domain is the main KB portal (not a tenant portal) */\n  isKbPortal(): boolean {\n    return this.environment?.sitePath === this.getDomainSitePath()\n  }\n\n  getNonLoggedInPageUrl(): string {\n    return this.getTenantConfig().karmayogiBharatLink\n      || this.environment?.karmayogiBharatLink\n      || 'https://igotkarmayogi.gov.in/'\n  }\n\n  /** Returns the resolved tenant config data (logo, redirectPath, cdnContentHost, etc.) */\n  getDomainData(): any {\n    return this.getTenantConfig()\n  }\n}\n","import { HttpClient } from '@angular/common/http'\r\nimport { Inject, Injectable } from '@angular/core'\r\n// import { KeycloakEvent, KeycloakEventType, KeycloakInitOptions, KeycloakService } from 'keycloak-angular'\r\nimport { ReplaySubject } from 'rxjs'\r\n// import { filter } from 'rxjs/operators'\r\nimport { AuthMicrosoftService } from './auth-microsoft.service'\r\nimport { ConfigurationsService } from './configurations.service'\r\nimport { DomainConfService } from './domain-conf.service'\r\n\r\n// interface IParsedToken {\r\n//   email?: string\r\n//   encEmail?: string\r\n//   name?: string\r\n//   preferred_username?: string\r\n// }\r\n\r\nconst storage = localStorage\r\nconst storageKey = 'kc'\r\n// const logoutRedirectUrl = ''\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class AuthKeycloakService {\r\n  environment: any\r\n  private loginChangeSubject = new ReplaySubject<boolean>(1)\r\n  constructor(\r\n    private http: HttpClient,\r\n    private configSvc: ConfigurationsService,\r\n    // private keycloakSvc: KeycloakService,\r\n    private msAuthSvc: AuthMicrosoftService,\r\n    private domainConf: DomainConfService,\r\n    @Inject('environment') environment: any,\r\n  ) {\r\n    this.loginChangeSubject.subscribe((isLoggedIn: boolean) => {\r\n      this.configSvc.isAuthenticated = isLoggedIn\r\n      if (\r\n        isLoggedIn &&\r\n        this.configSvc.instanceConfig &&\r\n        Boolean(this.configSvc.instanceConfig.disablePidCheck)\r\n      ) {\r\n        this.configSvc.userProfile = {\r\n          email: '',\r\n          userName: '',\r\n          userId: '',\r\n        }\r\n      }\r\n    })\r\n    this.environment = environment\r\n  }\r\n\r\n  // Getters\r\n  get isLoggedIn$() {\r\n    return this.loginChangeSubject.asObservable()\r\n  }\r\n  // get isLoggedIn(): Promise<boolean> {\r\n  //   return this.keycloakSvc.isLoggedIn()\r\n  // }\r\n  // get isAuthenticated(): boolean | undefined {\r\n  //   return this.keycloakSvc.getKeycloakInstance().authenticated\r\n  // }\r\n  // get token(): string | undefined {\r\n  //   return this.keycloakSvc.getKeycloakInstance().token\r\n  // }\r\n  // get sessionId(): string | undefined {\r\n  //   return this.keycloakSvc.getKeycloakInstance().sessionId\r\n  // }\r\n  // get userId(): string | undefined {\r\n  //   const kc = this.keycloakSvc.getKeycloakInstance()\r\n  //   if (!kc) {\r\n  //     return\r\n  //   }\r\n  //   return (kc.tokenParsed && kc.tokenParsed.sub) || (kc.idTokenParsed && kc.idTokenParsed.sub)\r\n  // }\r\n\r\n  // get userEmail(): string | undefined {\r\n  //   const kc = this.keycloakSvc.getKeycloakInstance()\r\n\r\n  //   const tokenParsed = kc.tokenParsed as IParsedToken\r\n  //   const idTokenParsed = kc.idTokenParsed as IParsedToken\r\n  //   return (\r\n  //     (tokenParsed && tokenParsed.email) ||\r\n  //     (idTokenParsed && idTokenParsed.email) ||\r\n  //     (idTokenParsed && idTokenParsed.encEmail) ||\r\n  //     (tokenParsed && tokenParsed.preferred_username) ||\r\n  //     (idTokenParsed && idTokenParsed.preferred_username)\r\n  //   )\r\n  // }\r\n\r\n  // get userName(): string | undefined {\r\n  //   const kc = this.keycloakSvc.getKeycloakInstance()\r\n  //   return (\r\n  //     (kc.tokenParsed && (kc.tokenParsed as IParsedToken).name) ||\r\n  //     (kc.idTokenParsed && (kc.idTokenParsed as IParsedToken).name)\r\n  //   )\r\n  // }\r\n\r\n  async initAuth(): Promise<boolean> {\r\n    if (!this.configSvc.instanceConfig) {\r\n      return false\r\n    }\r\n    const instanceConfig = this.configSvc.instanceConfig\r\n    if (instanceConfig.microsoft.isConfigured) {\r\n      this.msAuthSvc.init({ microsoft: instanceConfig.microsoft })\r\n    }\r\n    try {\r\n      this.setupGlobalAuthResponder()\r\n      this.addKeycloakEventListener()\r\n      // return await this.keycloakSvc.init({\r\n      //   config: {\r\n      //     url: instanceConfig.keycloak.url,\r\n      //     realm: instanceConfig.keycloak.realm,\r\n      //     clientId: instanceConfig.keycloak.clientId,\r\n      //   },\r\n      //   initOptions: {\r\n      //     ...this.getSavedKcConfig(),\r\n      //     onLoad: instanceConfig.keycloak.onLoad || 'check-sso',\r\n      //     checkLoginIframe: false,\r\n      //   },\r\n      //   enableBearerInterceptor: true,\r\n      //   loadUserProfileAtStartUp: false,\r\n      //   bearerExcludedUrls: instanceConfig.keycloak.bearerExcludedUrls,\r\n      // })\r\n      return true\r\n    } catch (err) {\r\n      return false\r\n    }\r\n  }\r\n\r\n  // login(\r\n  //   idpHint: 'E' | 'N' | 'S' = 'E',\r\n  //   redirectUrl: string = this.defaultRedirectUrl,\r\n  // ): Promise<void> {\r\n  //   return this.keycloakSvc.login({\r\n  //     idpHint,\r\n  //     redirectUri: redirectUrl,\r\n  //   })\r\n  // }\r\n  loginV2(\r\n    _idpHint: 'E' | 'N' | 'S' = 'E',\r\n    redirectUrl: string = this.defaultRedirectUrl,\r\n  ): Promise<void> {\r\n    if (this.configSvc.instanceConfig) {\r\n      window.location.href = this.configSvc.instanceConfig.keycloak.url + redirectUrl\r\n      return Promise.resolve()\r\n    }\r\n    return Promise.reject()\r\n  }\r\n  // register(\r\n  //   redirectUrl: string = this.defaultRedirectUrl,\r\n  // ): Promise<void> {\r\n  //   return this.keycloakSvc.register({\r\n  //     redirectUri: redirectUrl,\r\n  //   })\r\n  // }\r\n  /**\r\n   * @deprecated this will be depricated\r\n   */\r\n  async logout(redirectUrl = this.defaultRedirectUrl) {\r\n    if (storage.getItem('telemetrySessionId')) {\r\n      storage.removeItem('telemetrySessionId')\r\n    }\r\n    try {\r\n      sessionStorage.clear()\r\n      localStorage.clear()\r\n    } catch {\r\n\r\n    }\r\n    storage.removeItem(storageKey)\r\n    // alert(`${redirectUrl}apis/reset`)\r\n    window.location.href = `${redirectUrl}apis/reset`\r\n\r\n    // window.location.href = 'http://localhost:3003/reset'\r\n    //  await this.http.get('/apis/reset').toPromise()\r\n    // setTimeout(window.location.href = `${redirectUrl}apis/reset`, 13000)\r\n    // logoutRedirectUrl = redirectUrl\r\n    // if (this.msAuthSvc.isLogoutRequired) {\r\n    //   this.keycloakSvc.logout(this.msAuthSvc.logoutUrl(redirectUrl))\r\n    // } else {\r\n    // this.keycloakSvc.logout(redirectUrl)\r\n    // }\r\n  }\r\n  async force_logout() {\r\n    if (storage.getItem('telemetrySessionId')) {\r\n      storage.removeItem('telemetrySessionId')\r\n    } else {\r\n      // window.location.href = '/public/home'\r\n      storage.removeItem(storageKey)\r\n      // window.location.href = `${this.environment.staticHomePageUrl}`\r\n      // await this.http.get(`https://${this.environment.sitePath}/apis/reset`).toPromise()\r\n      // this.openInvisibleIframe(`https://${this.environment.sitePath}/apis/reset`)\r\n      window.location.href = `https://${this.domainConf.getDomainSitePath()}/apis/reset`\r\n      await this.http.get('https://admin-test.ecornell.com/saml/logout.do').toPromise()\r\n\r\n\r\n    }\r\n    try {\r\n      sessionStorage.clear()\r\n      localStorage.clear()\r\n    } catch {\r\n\r\n    }\r\n    storage.removeItem(storageKey)\r\n    // window.location.href = `${this.environment.staticHomePageUrl}`\r\n    //await this.http.get(`https://${this.environment.sitePath}/apis/reset`).toPromise()\r\n    window.location.href = `https://${this.domainConf.getDomainSitePath()}/apis/reset`\r\n    // this.openInvisibleIframe(`https://${this.environment.sitePath}/apis/reset`)\r\n    // window.location.href = `${this.environment.staticHomePageUrl}`\r\n    await this.http.get('https://admin-test.ecornell.com/saml/logout.do').toPromise()\r\n\r\n\r\n  }\r\n\r\n  openInvisibleIframe(url: string): void {\r\n    // Create an iframe element\r\n    const iframe = document.createElement('iframe')\r\n\r\n    // Set iframe attributes and make it invisible\r\n    iframe.src = url // The URL you want to load\r\n    iframe.style.position = 'absolute'\r\n    iframe.style.width = '0'\r\n    iframe.style.height = '0'\r\n    iframe.style.border = 'none'\r\n    iframe.style.visibility = 'hidden' // Alternatively, use display: none\r\n    iframe.style.opacity = '0' // Make it invisible, while still loading content\r\n\r\n    // Append the iframe to the body or any specific container element\r\n    document.body.appendChild(iframe)\r\n  }\r\n\r\n  private addKeycloakEventListener() {\r\n    // this.keycloakSvc.keycloakEvents$.subscribe((event: KeycloakEvent) => {\r\n    //   switch (event.type) {\r\n    //     case KeycloakEventType.OnAuthError:\r\n    //       this.loginChangeSubject.next(false)\r\n    //       break\r\n    //     case KeycloakEventType.OnAuthLogout:\r\n    //       this.loginChangeSubject.next(false)\r\n    //       storage.removeItem(storageKey)\r\n    //       break\r\n    //     case KeycloakEventType.OnAuthRefreshError:\r\n    //       break\r\n    //     case KeycloakEventType.OnAuthRefreshSuccess:\r\n    //       break\r\n    //     case KeycloakEventType.OnAuthSuccess:\r\n    //       break\r\n    //     case KeycloakEventType.OnReady:\r\n    //       this.loginChangeSubject.next(event.args)\r\n    //       if (event.args) {\r\n    //         this.saveKeycloakConfig()\r\n    //       }\r\n    //       break\r\n    //     case KeycloakEventType.OnTokenExpired:\r\n    //       this.keycloakSvc.updateToken(60)\r\n    //       break\r\n    //   }\r\n    // })\r\n  }\r\n\r\n  private setupGlobalAuthResponder() {\r\n    // fromEvent<MessageEvent>(window, 'message')\r\n    //   .pipe(\r\n    //     filter(\r\n    //       (event: MessageEvent) =>\r\n    //         Boolean(event) &&\r\n    //         Boolean(event.data) &&\r\n    //         event.data.type === 'AUTH_REQUEST' &&\r\n    //         Boolean(event.source && typeof event.source.postMessage === 'function'),\r\n    //     ),\r\n    //   )\r\n    //   .subscribe(async (event: MessageEvent) => {\r\n    //     const contentWindow = event.source as Window\r\n    //     const token = await this.keycloakSvc.getToken()\r\n    //     const response = {\r\n    //       app: 'WEB_PORTAL',\r\n    //       type: 'AUTH_RESPONSE',\r\n    //       state: 'NONE',\r\n    //       plugin: 'NONE',\r\n    //       data: {\r\n    //         token,\r\n    //         id: event.data && event.data.data && event.data.data.id,\r\n    //       },\r\n    //     }\r\n    //     contentWindow.postMessage(response, '*')\r\n    //   })\r\n  }\r\n\r\n  // Utility Methods\r\n  // private saveKeycloakConfig() {\r\n  //   // const kc = this.keycloakSvc.getKeycloakInstance()\r\n  //   // const kcInitOptions: KeycloakInitOptions = {\r\n  //   //   idToken: kc.idToken,\r\n  //   //   refreshToken: kc.refreshToken,\r\n  //   //   timeSkew: kc.timeSkew,\r\n  //   //   token: kc.token,\r\n  //   // }\r\n  //   // storage.setItem(storageKey, JSON.stringify(kcInitOptions))\r\n  // }\r\n  // private getSavedKcConfig(): KeycloakInitOptions {\r\n  //   try {\r\n  //     // const lastSaved = KEYCLOAK_STORAGE.getItem(key);\r\n  //     const lastSaved = storage.getItem(storageKey)\r\n  //     if (lastSaved) {\r\n  //       const processed = JSON.parse(lastSaved)\r\n  //       if (\r\n  //         'idToken' in processed &&\r\n  //         'refreshToken' in processed &&\r\n  //         'timeSkew' in processed &&\r\n  //         'token' in processed\r\n  //       ) {\r\n  //         return processed\r\n  //       }\r\n  //     }\r\n  //   } catch (e) { }\r\n  //   return {}\r\n  // }\r\n\r\n  private get defaultRedirectUrl(): string {\r\n    try {\r\n      const baseUrl = document.baseURI\r\n      return baseUrl || location.origin\r\n    } catch (error) {\r\n      return location.origin\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'\r\nimport { AuthKeycloakService } from '../../services/auth-keycloak.service'\r\nimport { ConfigurationsService } from '../../services/configurations.service'\r\nimport { UtilityService } from '../../services/utility.service'\r\nimport { TranslateService } from '@ngx-translate/core'\r\n\r\n@Component({\r\n  selector: 'ws-utils-logout',\r\n  templateUrl: './logout.component.html',\r\n  styleUrls: ['./logout.component.scss'],\r\n})\r\nexport class LogoutComponent implements OnInit {\r\n\r\n  disabled = false\r\n  isDownloadableIos = false\r\n  isDownloadableAndroid = false\r\n  constructor(\r\n    public dialogRef: MatDialogRef<LogoutComponent>,\r\n    private authSvc: AuthKeycloakService,\r\n    private configSvc: ConfigurationsService,\r\n    private utilitySvc: UtilityService,\r\n    private translate: TranslateService\r\n  ) {\r\n    if (localStorage.getItem('websiteLanguage')) {\r\n      this.translate.setDefaultLang('en')\r\n      // eslint-disable-next-line  @typescript-eslint/no-non-null-assertion\r\n      // tslint:disable-next-line: no-non-null-assertion\r\n      const lang = localStorage.getItem('websiteLanguage') || null!\r\n      this.translate.use(lang)\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.configSvc.restrictedFeatures) {\r\n      this.isDownloadableIos = !this.configSvc.restrictedFeatures.has('iosDownload')\r\n      this.isDownloadableAndroid = !this.configSvc.restrictedFeatures.has('androidDownload')\r\n    }\r\n  }\r\n\r\n  confirmed() {\r\n    this.disabled = true\r\n    this.dialogRef.close()\r\n    if (localStorage.getItem('ratingformID')) {\r\n      localStorage.removeItem('ratingformID')\r\n    }\r\n    if (localStorage.getItem('ratingfeedID')) {\r\n      localStorage.removeItem('ratingfeedID')\r\n    }\r\n    if (localStorage.getItem('platformratingTime')) {\r\n      localStorage.removeItem('platformratingTime')\r\n    }\r\n    if (localStorage.getItem('websiteLanguage')) {\r\n      localStorage.removeItem('websiteLanguage')\r\n    }\r\n    // this.authSvc.logout()\r\n    this.clearCookies()\r\n    this.authSvc.force_logout()\r\n    if (localStorage.getItem('faq')) {\r\n      localStorage.removeItem('faq')\r\n    }\r\n    if (localStorage.getItem('faq-languages')) {\r\n      localStorage.removeItem('faq-languages')\r\n    }\r\n    if (sessionStorage.getItem('hideUpdateProfilePopUp')) {\r\n      sessionStorage.removeItem('hideUpdateProfilePopUp')\r\n    }\r\n    if (localStorage.getItem('motivationalMessage')) {\r\n      localStorage.removeItem('motivationalMessage')\r\n    }\r\n    if (localStorage.getItem('microSiteRedirectionData')) {\r\n      localStorage.removeItem('microSiteRedirectionData')\r\n    }\r\n  }\r\n  clearCookies() {\r\n    if (!document) {\r\n      // document not available in some environments; do not break logout\r\n      // eslint-disable-next-line no-console\r\n      console.warn('Document is not available; skipping cookie clear')\r\n      return\r\n    }\r\n    if (!document.cookie) {\r\n      // no cookies to clear; silently continue so logout isn't blocked\r\n      return\r\n    }\r\n\r\n    const cookies = document.cookie.split(';')\r\n    const hostname = window.location.hostname || ''\r\n    const domainParts = hostname.split('.')\r\n    const expire = 'Thu, 01 Jan 1970 00:00:00 GMT'\r\n\r\n    cookies.forEach((c) => {\r\n      try {\r\n        const eqPos = c.indexOf('=')\r\n        const name = eqPos > -1 ? c.substr(0, eqPos).trim() : c.trim()\r\n        if (!name) {\r\n          return\r\n        }\r\n        // delete for path /\r\n        try {\r\n          document.cookie = `${name}=;expires=${expire};path=/`\r\n        } catch (e) {\r\n          // ignore and continue\r\n        }\r\n        // attempt deleting for parent domains as well\r\n        for (let i = 0; i < domainParts.length; i++) {\r\n          const domain = domainParts.slice(i).join('.')\r\n          try {\r\n            document.cookie = `${name}=;expires=${expire};path=/;domain=${domain}`\r\n          } catch (err) {\r\n            // ignore domain-specific failures and continue\r\n          }\r\n        }\r\n      } catch (err) {\r\n        // ignore per-cookie parsing errors and continue\r\n        // eslint-disable-next-line no-console\r\n        console.warn('Error clearing cookie', c, err)\r\n      }\r\n    })\r\n  }\r\n\r\n  get isDownloadable() {\r\n    if (this.configSvc.instanceConfig && this.configSvc.instanceConfig.isContentDownloadAvailable &&\r\n      (this.utilitySvc.iOsAppRef || this.utilitySvc.isAndroidApp)) {\r\n      return true\r\n    }\r\n    return false\r\n  }\r\n\r\n}\r\n","<h1 mat-dialog-title i18n>{{'utilslogout.logoutNow' | translate}}</h1>\r\n<div class=\"ws-mat-primary-text text-base pb-2 title-text\" *ngIf=\"isDownloadable\" i18n>\r\n  {{'utilslogout.logoutNote' | translate}}\r\n</div>\r\n<div mat-dialog-content class=\"text-base hide-overflow\" i18n>\r\n  {{'utilslogout.logoutConfirm' | translate}}\r\n</div>\r\n<div mat-dialog-actions class=\"flex-row-reverse\">\r\n  <button mat-flat-button color=\"warn\" [disabled]=\"disabled\" (click)=\"confirmed()\" i18n>\r\n    {{'utilslogout.logoutYes' | translate}}\r\n  </button>\r\n  <button mat-button class=\"margin-right-xs\" mat-dialog-close cdkFocusInitial i18n>\r\n    {{'utilslogout.logoutNo' | translate}}\r\n  </button>\r\n</div>\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button'\nimport { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog'\r\n\r\nimport { LogoutComponent } from './logout.component'\r\nimport { TranslateModule } from '@ngx-translate/core'\r\n\r\n@NgModule({\n    declarations: [LogoutComponent],\n    imports: [\n        CommonModule,\n        MatButtonModule,\n        MatDialogModule,\n        TranslateModule,\n    ]\n})\r\nexport class LogoutModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\ninterface IDateRange {\r\n  fromDate: Date\r\n  toDate: Date\r\n  timeZone?: string\r\n}\r\n\r\n@Pipe({\r\n  name: 'pipeConciseDateRange',\r\n})\r\nexport class PipeConciseDateRangePipe implements PipeTransform {\r\n  transform(dateRange: IDateRange): string {\r\n    try {\r\n      let conciseRange: string\r\n      let prefix: string\r\n      let suffix: string\r\n      const fromDate = new Date(dateRange.fromDate)\r\n      const toDate = new Date(dateRange.toDate)\r\n\r\n      const fromDateObj = {\r\n        day: fromDate.getDate(),\r\n        month: fromDate.toLocaleString('default', { month: 'short' }),\r\n        year: fromDate.getFullYear(),\r\n        time: fromDate.getTime(),\r\n      }\r\n\r\n      const toDateObj = {\r\n        day: toDate.getDate(),\r\n        month: toDate.toLocaleString('default', { month: 'short' }),\r\n        year: toDate.getFullYear(),\r\n        time: toDate.getTime(),\r\n      }\r\n\r\n      if (fromDateObj.time === toDateObj.time) {\r\n        conciseRange = `${fromDateObj.day} ${fromDateObj.month} ${fromDateObj.year}`\r\n        return conciseRange\r\n      }\r\n\r\n      if (fromDateObj.year !== fromDateObj.year) {\r\n        prefix = `${fromDateObj.day} ${fromDateObj.month} ${fromDateObj.year}`\r\n        suffix = `${toDateObj.day} ${toDateObj.month} ${toDateObj.year}`\r\n        conciseRange = `${prefix} - ${suffix}`\r\n        return conciseRange\r\n      }\r\n\r\n      if (fromDateObj.month === toDateObj.month) {\r\n        prefix = `${fromDateObj.day}`\r\n        suffix = `${toDateObj.day} ${toDateObj.month} ${toDateObj.year}`\r\n      } else {\r\n        prefix = `${fromDateObj.day} ${fromDateObj.month}`\r\n        suffix = `${toDateObj.day} ${toDateObj.month} ${toDateObj.year}`\r\n      }\r\n\r\n      conciseRange = `${prefix} - ${suffix}`\r\n      return conciseRange\r\n    } catch (e) {\r\n      return `${dateRange.fromDate} - ${dateRange.toDate}`\r\n    }\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeConciseDateRangePipe } from './pipe-concise-date-range.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeConciseDateRangePipe],\r\n  imports: [CommonModule],\r\n  exports: [PipeConciseDateRangePipe],\r\n})\r\nexport class PipeConciseDateRangeModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n  name: 'pipeCountTransform',\r\n})\r\nexport class PipeCountTransformPipe implements PipeTransform {\r\n\r\n  transform(value: number): string {\r\n    const thousand = 1000\r\n    const million = 1000000\r\n    if (value > 0) {\r\n      if (value < thousand) {\r\n        return String(value)\r\n      }\r\n      if (value >= thousand && value < million) {\r\n        const views = (value / thousand).toFixed(1)\r\n        if (views.endsWith('0')) {\r\n          return `${views.split('.')[0]}K`\r\n        }\r\n        return `${views}K`\r\n      }\r\n      {\r\n        const views = (value / million).toFixed(1)\r\n        if (views.endsWith('0')) {\r\n          return `${views.split('.')[0]}M`\r\n        }\r\n        return `${views}M`\r\n      }\r\n    }\r\n    return '0'\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeCountTransformPipe } from './pipe-count-transform.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeCountTransformPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeCountTransformPipe],\r\n})\r\nexport class PipeCountTransformModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\ninterface ICertificationDate {\r\n  day: number\r\n  month: number\r\n  year: number\r\n  timeZone?: string\r\n}\r\n\r\n@Pipe({\r\n  name: 'pipeDateConcat',\r\n})\r\nexport class PipeDateConcatPipe implements PipeTransform {\r\n  private readonly months: string[]\r\n\r\n  constructor() {\r\n    this.months = [\r\n      'Jan',\r\n      'Feb',\r\n      'Mar',\r\n      'Apr',\r\n      'May',\r\n      'Jun',\r\n      'Jul',\r\n      'Aug',\r\n      'Sep',\r\n      'Oct',\r\n      'Nov',\r\n      'Dec',\r\n    ]\r\n  }\r\n\r\n  transform(value: ICertificationDate): string {\r\n    let dateStr = `${value.day} ${this.months[value.month - 1]} ${value.year}`\r\n    if (value.timeZone) {\r\n      dateStr += ` ${value.timeZone}`\r\n    }\r\n\r\n    return dateStr\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeDateConcatPipe } from './pipe-date-concat.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeDateConcatPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeDateConcatPipe],\r\n})\r\nexport class PipeDateConcatModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\nimport moment from 'moment'\r\n\r\n@Pipe({\r\n  name: 'pipeDurationTransform',\r\n})\r\nexport class PipeDurationTransformPipe implements PipeTransform {\r\n\r\n  transform(data: number, type?: 'time24' | 'hms' | 'hour' | 'hms2H' | 'hms2M' | 'day' | 'DAYS'): any {\r\n    if (data <= 0) {\r\n      return ''\r\n    }\r\n    const h = Math.floor(data / 3600)\r\n    const m = Math.floor((data % 3600) / 60)\r\n    const s = Math.floor((data % 3600) % 60)\r\n    let duration = ''\r\n    switch (type) {\r\n      case 'time24':\r\n        return this.defaultDuration(h, m, s)\r\n      case 'hms':\r\n        return this.hmsCalculation(h, m, s, duration, type)\r\n      case 'hms2H':\r\n        /**to Print HH:mm:ss */\r\n        const duration2 = moment.duration(data, 'seconds')\r\n        const resultstring = moment.utc(duration2.asMilliseconds()).format('HH:mm:ss')\r\n        return resultstring\r\n      case 'hms2M': /**to Print mm:ss */\r\n        const duration2H = moment.duration(data, 'seconds')\r\n        const resultstring2H = moment.utc(duration2H.asMilliseconds()).format('mm:ss')\r\n\r\n        return resultstring2H\r\n      case 'hour':\r\n        if (h === 0) {\r\n          duration += 'less than an hour'\r\n        }\r\n        if (h === 1) {\r\n          duration += `${h} hour`\r\n        }\r\n        if (h > 1) {\r\n          duration += `${h} hours`\r\n        }\r\n        return duration\r\n      case 'day':\r\n        if (h > 24) {\r\n          const duration3 = moment.duration(data, 'seconds')\r\n          return `${duration3.days()} day(s)`\r\n        }\r\n        return this.hmsCalculation(h, m, s, duration, type)\r\n      case 'DAYS': duration = `${data}d`\r\n        return duration\r\n      default:\r\n        return this.defaultDuration(h, m, s)\r\n    }\r\n  }\r\n\r\n  defaultDuration(h: number, m: number, s: number) {\r\n    let duration = ''\r\n    duration += h > 0 ? `${h.toString().padStart(2)}:` : ''\r\n    duration += m > 0 ? `${m.toString().padStart(2)}:` : '00:'\r\n    duration += s > 0 ? s.toString().padStart(2) : '00'\r\n    return duration\r\n  }\r\n  hmsCalculation(h: number, m: number, s: number, dur: string, type: string) {\r\n    let space = ''\r\n    let duration = dur\r\n    if (h > 0) {\r\n      duration += type === 'hms' ? `${h}h` : `${h} hr`\r\n    }\r\n    if (m > 0) {\r\n      if (h > 0) {\r\n        space = ' '\r\n      }\r\n      duration += type === 'hms' ? `${space}${m}m` : `${space}${m} min`\r\n    }\r\n    if (s > 0 && h === 0) {\r\n      if (m > 0) {\r\n        space = ' '\r\n      }\r\n      duration += type === 'hms' ? `${space}${s}s` : `${space}${s} sec`\r\n    }\r\n    return duration\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeDurationTransformPipe } from './pipe-duration-transform.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeDurationTransformPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeDurationTransformPipe],\r\n})\r\nexport class PipeDurationTransformModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n  name: 'pipeHtmlTagRemoval',\r\n})\r\nexport class PipeHtmlTagRemovalPipe implements PipeTransform {\r\n\r\n  transform(htmlString: string): string {\r\n    return htmlString ? String(htmlString).replace(/<[^>]+>/gm, '') : ''\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeHtmlTagRemovalPipe } from './pipe-html-tag-removal.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeHtmlTagRemovalPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeHtmlTagRemovalPipe],\r\n})\r\nexport class PipeHtmlTagRemovalModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n  name: 'pipeFilter',\r\n})\r\nexport class PipeFilterPipe implements PipeTransform {\r\n\r\n  transform(value: any, keys: string, term: string): string {\r\n    if (!term) {\r\n      return value\r\n    }\r\n    return (value || []).filter((item: any) => keys.split(',')\r\n      .some(key => item.hasOwnProperty(key) && new RegExp(`^${term}$`, 'gi').test(item[key])))\r\n\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeFilterPipe } from './pipe-filter.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeFilterPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeFilterPipe],\r\n})\r\nexport class PipeFilterModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n  name: 'pipeOrdinal',\n})\nexport class PipeOrdinalPipe implements PipeTransform {\n\n  transform(value: number): string {\n    if (value === 0) { return '0th' }\n    const suffixes = ['th', 'st', 'nd', 'rd']\n    const v = value % 100\n    return value + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0])\n  }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { PipeOrdinalPipe } from './pipe-ordinal.pipe'\n\n@NgModule({\n  declarations: [PipeOrdinalPipe],\n  imports: [\n    CommonModule,\n  ],\n  exports: [PipeOrdinalPipe],\n})\nexport class PipeOrdinalModule { }\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n  name: 'pipeEmail',\n})\nexport class PipeEmailPipe implements PipeTransform {\n\n  transform(value: string): any {\n    return value.split('.').join('[dot]').replace('@', '[at]')\n\n  }\n\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { PipeEmailPipe } from './pipe-email.pipe'\n\n@NgModule({\n  declarations: [PipeEmailPipe],\n  imports: [\n    CommonModule,\n  ],\n  exports: [PipeEmailPipe],\n})\nexport class PipeEmailModule { }\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n  name: 'pipeFilterV2',\r\n})\r\nexport class PipeFilterV2Pipe implements PipeTransform {\r\n\r\n  transform(items: [], key: string, searchText: string): any {\r\n    if (!items) { return [] }\r\n    if (!searchText) { return items }\r\n    const searchTextLowerCase = searchText.toLowerCase()\r\n\r\n    return items.filter(it => {\r\n      return `${it[key]} `.toLowerCase().includes(searchTextLowerCase)\r\n    })\r\n\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeFilterV2Pipe } from './pipe-filter-v2.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeFilterV2Pipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeFilterV2Pipe],\r\n})\r\nexport class PipeFilterV2Module { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n  name: 'pipeFilterV3',\n})\nexport class PipeFilterV3Pipe implements PipeTransform {\n\n  transform(items: any, filter: any, isAnd: boolean): any {\n    if (filter && Array.isArray(items)) {\n      const filterKeys = Object.keys(filter)\n      if (isAnd) {\n        return items.filter(item =>\n            filterKeys.reduce((memo: boolean, keyName) =>\n                // tslint:disable-next-line: align\n                (memo && new RegExp(filter[keyName], 'gi').test(item[keyName])) || filter[keyName] === '', true))\n      }\n        return items.filter(item => {\n          return filterKeys.some(keyName => {\n            return new RegExp(filter[keyName], 'gi').test(item[keyName]) || filter[keyName] === ''\n          })\n        })\n\n    }\n      return items\n\n  }\n\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { PipeFilterV3Pipe } from './pipe-filter-v3.pipe'\n\n@NgModule({\n  declarations: [PipeFilterV3Pipe],\n  imports: [\n    CommonModule,\n  ],\n  exports: [PipeFilterV3Pipe],\n})\nexport class PipeFilterV3Module { }\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n  name: 'pipeFilterSearch',\r\n})\r\nexport class PipeFilterSearchPipe implements PipeTransform {\r\n\r\n  transform(items: any[], searchText: string, ...keys: any): any {\r\n    if (!items) { return [] }\r\n    if (!searchText) { return items }\r\n    const searchTextLowerCase = searchText.toLowerCase()\r\n    if (keys && keys.length) {\r\n      const result =  items.filter(it => {\r\n        if (it.profileDetails) {\r\n        return it['profileDetails']['personalDetails'][keys[0]].toLowerCase().includes(searchTextLowerCase)\r\n        }\r\n         if (it.personalDetails) {\r\n          return it['personalDetails'][keys[0]].toLowerCase().includes(searchTextLowerCase)\r\n         }\r\n         if (it.fullName) {\r\n          return it.fullName.toLowerCase().includes(searchTextLowerCase)\r\n         }\r\n        // keys.map((key: any) => {\r\n        //   console.log('key:', key)\r\n        //   console.log(`it['personalDetails'][key]`, it['personalDetails'][key])\r\n        //   return it['personalDetails'][key].toLowerCase().includes(searchTextLowerCase)\r\n        // })\r\n      })\r\n      if (result && result.length <= 0) {\r\n        return [-1]\r\n      }\r\n      return result\r\n    }\r\n    return items.filter(it => {\r\n      return it.title.toLowerCase().includes(searchTextLowerCase)\r\n    })\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeFilterSearchPipe } from './pipe-filter-search.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeFilterSearchPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeFilterSearchPipe],\r\n})\r\nexport class PipeFilterSearchModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n  name: 'pipeListFilter',\r\n})\r\nexport class PipeListFilterPipe implements PipeTransform {\r\n\r\n  transform(value: any, keys: string, term: string): string {\r\n    if (!term) {\r\n      return value\r\n    }\r\n    return (value || []).filter((item: any) => keys.split(',')\r\n      .some(key => item.hasOwnProperty(key)\r\n        && item[key] && (`${item[key]} `).toLocaleLowerCase().includes(term.toLocaleLowerCase())))\r\n    // new RegExp(`^${term}$`, 'gi').test(item[key])\r\n\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeListFilterPipe } from './pipe-list-filter.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeListFilterPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeListFilterPipe],\r\n})\r\nexport class PipeListFilterModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\nimport moment from 'moment'\r\n\r\n@Pipe({\r\n  name: 'pipeRelativeTime',\r\n})\r\nexport class PipeRelativeTimePipe implements PipeTransform {\r\n  transform(value: number): string {\r\n    if (value) {\r\n      return moment((new Date(value))).fromNow()\r\n    }\r\n    return moment().startOf('hour').fromNow()\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeRelativeTimePipe } from './pipe-relative-time.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeRelativeTimePipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeRelativeTimePipe],\r\n})\r\nexport class PipeRelativeTimeModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\nimport { orderBy } from 'lodash'\r\n\r\n@Pipe({\r\n  name: 'orderBy',\r\n})\r\n\r\nexport class OrderByPipe implements PipeTransform {\r\n  transform = orderBy\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { OrderByPipe } from './pipe-order-by.pipe'\r\n\r\n@NgModule({\r\n  declarations: [OrderByPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [OrderByPipe],\r\n})\r\nexport class PipeOrderByModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n  name: 'pipeLimitTo',\r\n})\r\nexport class PipeLimitToPipe implements PipeTransform {\r\n\r\n  transform(data: any, limit: number = 5): any {\r\n    if (!data || !data.length) {\r\n      return null\r\n    }\r\n    if (Array.isArray(data)) {\r\n      return data.slice(0, limit)\r\n    }\r\n    if (typeof data === 'string') {\r\n      const slicedString = data.substr(0, limit)\r\n      if (limit < data.length) {\r\n        return `${slicedString}...`\r\n      }\r\n      return slicedString\r\n    }\r\n    return null\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeLimitToPipe } from './pipe-limit-to.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeLimitToPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeLimitToPipe],\r\n})\r\nexport class PipeLimitToModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\ninterface IUserName {\r\n  firstName: string\r\n  lastName?: string\r\n  email: string\r\n}\r\n\r\n@Pipe({\r\n  name: 'pipeNameTransform',\r\n})\r\nexport class PipeNameTransformPipe implements PipeTransform {\r\n\r\n  transform(value: IUserName): string {\r\n    let result = ''\r\n    if (value.firstName) {\r\n      result += value.firstName\r\n    }\r\n    // if (value.lastName && value.lastName !== value.firstName) {\r\n    //   result += ` ${value.lastName}`\r\n    // }\r\n    if (result.trim() !== '') {\r\n      return result\r\n    }\r\n    if (value.email) {\r\n      return value.email\r\n    }\r\n    return 'Anonymous User'\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeNameTransformPipe } from './pipe-name-transform.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeNameTransformPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeNameTransformPipe],\r\n})\r\nexport class PipeNameTransformModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n  name: 'pipePartialContent',\r\n})\r\nexport class PipePartialContentPipe implements PipeTransform {\r\n\r\n  transform(value: any, keys: string[]): any {\r\n    const result: { [key: string]: any } = {}\r\n    for (const key of keys) {\r\n      if (value[key]) {\r\n        result[key] = value[key]\r\n      }\r\n    }\r\n    return result\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipePartialContentPipe } from './pipe-partial-content.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipePartialContentPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipePartialContentPipe],\r\n})\r\nexport class PipePartialContentModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser'\r\n\r\n@Pipe({\r\n  name: 'pipeSafeSanitizer',\r\n})\r\nexport class PipeSafeSanitizerPipe implements PipeTransform {\r\n\r\n  constructor(protected sanitizer: DomSanitizer) { }\r\n  public transform(\r\n    value: string,\r\n    type: string = 'html',\r\n  ): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n    switch (type) {\r\n      case 'html':\r\n        return this.sanitizer.bypassSecurityTrustHtml(value)\r\n      case 'style':\r\n        return this.sanitizer.bypassSecurityTrustStyle(value)\r\n      case 'script':\r\n        return this.sanitizer.bypassSecurityTrustScript(value)\r\n      case 'url':\r\n        return this.sanitizer.bypassSecurityTrustUrl(value)\r\n      case 'resourceUrl':\r\n        return this.sanitizer.bypassSecurityTrustResourceUrl(value)\r\n      default:\r\n        throw new Error(`Invalid safe type specified: ${type}`)\r\n    }\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { PipeSafeSanitizerPipe } from './pipe-safe-sanitizer.pipe'\r\n\r\n@NgModule({\r\n  declarations: [PipeSafeSanitizerPipe],\r\n  imports: [\r\n    CommonModule,\r\n  ],\r\n  exports: [PipeSafeSanitizerPipe],\r\n})\r\nexport class PipeSafeSanitizerModule { }\r\n","import { Inject, Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n  name: 'pipePublicURL',\n})\nexport class PipePublicURL implements PipeTransform {\n  environment: any\n  constructor(@Inject('environment') environment: any) {\n    this.environment = environment\n  }\n  transform(value: string): any {\n    // Karmayogi content to be modified with the domain specific url\n    // https://portal.karmayogi.nic.in/content-store/content/do_113918818243969024137/artifact/\n    // do_113918818243969024137_1699074493067_effectivecommunication1699074492860.jpg\n    if (value && value.includes('/content') && value.includes('do_')) {\n      const mainUrl = value && value.split('/content').pop() || ''\n      const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}/content${mainUrl}`\n      return value ? finalURL : ''\n    }\n    // CIOS content has direct S3 url like blow, so return same url\n    // https://s3.amazonaws.com/ecornell/content/On-Demand/Homepages/Banners/CEPL503-OD3_homepage-banner_v1.jpg\n    return value\n  }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { PipePublicURL } from './pipe-public-URL.pipe'\n\n@NgModule({\n  declarations: [PipePublicURL],\n  imports: [\n    CommonModule,\n  ],\n  exports: [PipePublicURL],\n})\nexport class PipePublicURLModule { }\n","import { Inject, Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n  name: 'pipeCertImageURL',\n})\nexport class PipeCertificateImageURL implements PipeTransform {\n  environment: any\n  constructor(@Inject('environment') environment: any) {\n    this.environment = environment\n  }\n  transform(value: string): any {\n    if (value.indexOf(this.environment.contentHost) < 0) {\n      if (value.indexOf('/public/content') > -1) {\n        if (value.indexOf('/content/content') === -1 || value.indexOf('/content/collection') === -1) {\n          const mainUrl = value && value.split('/content').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.certificateassets}/content${mainUrl}`\n          return value ? finalURL : ''\n        }\n      }\n\n      if (value.indexOf('/public/content') === -1) {\n        if (value.indexOf('/content/content') > -1 || value.indexOf('/igot/content') > -1 || value.indexOf('/content-store/content') > -1) {\n          const mainUrl = value && value.split('/content').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}/content${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/igotprod/collection') > -1) {\n          const mainUrl = value && value.split('/igotprod').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/igotprod/content') > -1) {\n          const mainUrl = value && value.split('/igotprod').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/igotuat/collection') > -1) {\n          const mainUrl = value && value.split('/igotuat').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/igotuat/content') > -1) {\n          const mainUrl = value && value.split('/igotuat').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/igot/collection') > -1) {\n          const mainUrl = value && value.split('/igot').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/igot/content') > -1) {\n          const mainUrl = value && value.split('/igot').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/igot/profileImage') > -1) {\n          const mainUrl = value && value.split('/igot').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/igotqa/profileImage') > -1) {\n          const mainUrl = value && value.split('/igotqa').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/igotuat/profileImage') > -1) {\n          const mainUrl = value && value.split('/igotuat').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/igotprod/profileImage') > -1) {\n          const mainUrl = value && value.split('/igotprod').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/content/collection') > -1) {\n          const mainUrl = value && value.split('/content').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n        if (value.indexOf('/content/content') === -1 || value.indexOf('/content/collection') === -1) {\n          const mainUrl = value && value.split('/content').pop() || ''\n          const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n          return value ? finalURL : ''\n        }\n\n        if (this.environment && this.environment.bucketName) {\n          if (value.indexOf(`/${this.environment.bucketName}/profileImage`) > -1) {\n            const mainUrl = value && value.split(`/${this.environment.bucketName}`).pop() || ''\n            const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n            return value ? finalURL : ''\n          }\n          if (value.indexOf(`/${this.environment.bucketName}/content`) > -1) {\n            const mainUrl = value && value.split(`/${this.environment.bucketName}`).pop() || ''\n            const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n            return value ? finalURL : ''\n          }\n          if (value.indexOf(`/${this.environment.bucketName}/collection`) > -1) {\n            const mainUrl = value && value.split(`/${this.environment.bucketName}`).pop() || ''\n            const finalURL = `${this.environment.contentHost}/${this.environment.contentBucket}${mainUrl}`\n            return value ? finalURL : ''\n          }\n        }\n\n      }\n    } else {\n      return value\n    }\n  }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { PipeCertificateImageURL } from './pipe-certimage-URL.pipe'\n\n@NgModule({\n  declarations: [PipeCertificateImageURL],\n  imports: [\n    CommonModule,\n  ],\n  exports: [PipeCertificateImageURL],\n})\nexport class PipeCertificateImageURLModule { }\n","import { Inject, Pipe, PipeTransform } from '@angular/core'\n@Pipe({\n  name: 'PipeNicRelative',\n})\nexport class PipeNicRelativePipe implements PipeTransform {\n  environment: any\n  constructor(@Inject('environment') environment: any) {\n    this.environment = environment\n  }\n  transform(value: any): string {\n    return value ? this.generateUrl(value) : ''\n\n  }\n\n  generateUrl(oldUrl: string) {\n    const chunk = oldUrl ? oldUrl.split('/') : []\n    const newChunk = this.environment.azureHost.split('/')\n    const newLink = []\n    for (let i = 0; i < chunk.length; i += 1) {\n      if (i === 2) {\n        newLink.push(newChunk[i])\n      } else if (i === 3) {\n        newLink.push(this.environment.azureBucket)\n      } else {\n        newLink.push(chunk[i])\n      }\n    }\n    const newUrl = newLink.join('/')\n    return newUrl\n  }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { PipeNicRelativePipe } from './pipe-nic-relative.pipe'\n\n@NgModule({\n  declarations: [PipeNicRelativePipe],\n  imports: [\n    CommonModule,\n  ],\n  exports: [PipeNicRelativePipe],\n})\nexport class PipeNicRelativeModule { }\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n  name: 'pipeCourseName',\n})\nexport class PipeCourseNamePipe implements PipeTransform {\n\n  transform(value: any) {\n    const fullname = value.split(',')\n\n    return fullname[1]\n  }\n\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { PipeCourseNamePipe } from './pipe-coursename.pipe'\n@NgModule({\n  declarations: [PipeCourseNamePipe],\n  imports: [\n    CommonModule,\n  ],\n  exports: [PipeCourseNamePipe],\n})\nexport class PipeCourseNameModule {\n}\n","import { Injectable } from '@angular/core'\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'\r\nimport { Observable, of } from 'rxjs'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { map, catchError } from 'rxjs/operators'\r\nimport { UtilityService } from '../services/utility.service'\r\nimport { ConfigurationsService } from '../services/configurations.service'\r\nimport { IResolveResponse } from './resolver.model'\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ExploreDetailResolve\r\n   {\r\n  private baseUrl = this.configSvc.sitePath\r\n  isIntranetAllowedSettings = false\r\n  constructor(\r\n    private http: HttpClient,\r\n    private configSvc: ConfigurationsService,\r\n    private utilitySvc: UtilityService,\r\n  ) { }\r\n\r\n  resolve(\r\n    route: ActivatedRouteSnapshot,\r\n    _state: RouterStateSnapshot,\r\n  ): Observable<IResolveResponse<any>> {\r\n    this.isIntranetAllowedSettings = this.configSvc.isIntranetAllowed\r\n    const tag = decodeURIComponent(route.params.tags)\r\n    let url = ''\r\n    if (route.data.pageUrl) {\r\n      url = route.data.pageUrl\r\n    }\r\n    if (route.data.pageType === 'page' && route.data.pageKey) {\r\n      url = `${this.baseUrl}/page/${route.data.pageKey}.json`\r\n    }\r\n    return this.http.get(url).pipe(\r\n      map(pageData => ({ data: this.transformPageData(pageData, tag), error: null })),\r\n      catchError(err => of({ data: null, error: err })),\r\n    )\r\n  }\r\n\r\n  private transformPageData(pageData: any, tag: string) {\r\n    const DELIMITER = '>'\r\n    const path = tag.split(DELIMITER)\r\n    pageData.pageLayout.widgetData.widgets = pageData.pageLayout.widgetData.widgets.map((widget: any) => {\r\n      if (pageData.navigationBar && pageData.navigationBar.links) {\r\n        pageData.navigationBar.links = pageData.navigationBar.links\r\n          .filter((link: any) => link.widgetData.tags === tag)\r\n      }\r\n\r\n      if (widget.widgetSubType === 'cardBreadcrumb') {\r\n        widget.widgetData.path = [{\r\n          text: pageData.navigationBar.pageTitle,\r\n          clickUrl: pageData.navigationBar.pageBackLink,\r\n        }].concat(path.map((edge: string, idx: number) => ({\r\n          text: edge,\r\n          clickUrl: `/page/explore/${path.slice(0, idx + 1).join(DELIMITER)}`,\r\n        })))\r\n      }\r\n\r\n      if (widget.widgetSubType === 'contentStripMultiple') {\r\n        widget.widgetData.strips = widget.widgetData.strips.map((strip: any) => {\r\n          strip.request.searchV6.filters[0].andFilters.push({ catalogPaths: [tag] })\r\n          if (this.utilitySvc.isMobile && !this.isIntranetAllowedSettings) {\r\n            strip.request.searchV6.filters[0].andFilters.push({ isInIntranet: ['false'] })\r\n          }\r\n          return strip\r\n        })\r\n        if (widget.widgetData.noDataWidget && widget.widgetData.noDataWidget.widgetData.strips) {\r\n          widget.widgetData.noDataWidget.widgetData.strips = widget.widgetData.noDataWidget.widgetData.strips.map((strip: any) => {\r\n            strip.request.searchV6.filters[0].andFilters.push({ catalogPaths: [tag] })\r\n            if (this.utilitySvc.isMobile && !this.isIntranetAllowedSettings) {\r\n              strip.request.searchV6.filters[0].andFilters.push({ isInIntranet: ['false'] })\r\n            }\r\n            return strip\r\n          })\r\n        }\r\n\r\n      }\r\n      return widget\r\n    })\r\n\r\n    return pageData\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'\r\nimport { Observable, of } from 'rxjs'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { map, catchError } from 'rxjs/operators'\r\nimport { IResolveResponse } from './resolver.model'\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class MarketingOfferingResolve\r\n   {\r\n  constructor(\r\n    private http: HttpClient,\r\n  ) { }\r\n\r\n  resolve(\r\n    route: ActivatedRouteSnapshot,\r\n    _state: RouterStateSnapshot,\r\n  ): Observable<IResolveResponse<any>> {\r\n    const tag = route.params.tag\r\n    return this.http.get(route.data.pageUrl).pipe(\r\n      map(pageData => ({ data: this.transformPageData(pageData, tag), error: null })),\r\n      catchError(err => of({ data: null, error: err })),\r\n    )\r\n  }\r\n\r\n  private transformPageData(pageData: any, tag: string) {\r\n    pageData.pageLayout.widgetData.widgets = pageData.pageLayout.widgetData.widgets.map((widget: any) => {\r\n      if (widget.widgetSubType === 'contentStripMultiple') {\r\n        widget.widgetData.strips = widget.widgetData.strips.map((strip: any) => {\r\n          strip.request.search.filters.catalogPaths = [decodeURIComponent(tag)]\r\n          return strip\r\n        })\r\n      }\r\n\r\n      return widget\r\n    })\r\n\r\n    return pageData\r\n  }\r\n}\r\n","export const JSON_MAP: any = {\r\n  pagename: 'lexid',\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core'\r\nimport { ActivatedRouteSnapshot } from '@angular/router'\r\nimport { forkJoin, Observable, of, EMPTY } from 'rxjs'\r\nimport { catchError, map, mergeMap } from 'rxjs/operators'\r\nimport { ConfigurationsService } from '../services/configurations.service'\r\nimport { JSON_MAP } from './page.constant'\r\nimport { NsPage } from './page.model'\r\nimport { IResolveResponse } from './resolver.model'\r\nimport { NsContent } from '../services/widget-content.model'\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class PageResolve  {\r\n  private baseUrl = this.configSvc.sitePath\r\n  constructor(\r\n    private configSvc: ConfigurationsService,\r\n    private http: HttpClient,\r\n    @Inject(LOCALE_ID) private locale: string,\r\n  ) { }\r\n  resolve(\r\n    route: ActivatedRouteSnapshot,\r\n  ): Observable<IResolveResponse<NsPage.IPage>> | IResolveResponse<NsPage.IPage> {\r\n    if (route.data.pageUrl) {\r\n      return this.getData(route.data.pageUrl)\r\n    }\r\n    if (route.data.pageType === 'feature' && route.data.pageKey) {\r\n      return this.getData(`${this.baseUrl}/feature/${route.data.pageKey}`)\r\n    }\r\n    if (\r\n      route.data.pageType === 'page' &&\r\n      route.data.pageKey &&\r\n      route.paramMap.has(route.data.pageKey)\r\n    ) {\r\n      return this.getData(`${this.baseUrl}/page/${route.paramMap.get(route.data.pageKey)}`)\r\n    }\r\n    if (\r\n      route.data.pageType === 'page' &&\r\n      route.data.pageKey &&\r\n      (route.data.pageKey === 'toc' || route.data.pageKey === 'home')\r\n    ) {\r\n      return this.getData(`${this.baseUrl}/page/${route.data.pageKey}`)\r\n    }\r\n    return {\r\n      data: null,\r\n      error: 'CONFIGURATION_ERROR_PAGE_URL_NOT_FORMED',\r\n    }\r\n  }\r\n\r\n  private setS3Cookie(_contentId: string): Observable<any> {\r\n    // return this.http.post(`/apis/protected/v8/content/setCookie`, { contentId }).pipe(\r\n    //   catchError(_err => of(true)),\r\n    // )\r\n    return EMPTY\r\n  }\r\n\r\n  private getContent(id: string) {\r\n    return this.http\r\n      .post<NsContent.IContent>(\r\n        `/apis/protected/v8/content/${id}?hierarchyType=minimal`,\r\n        ['status', 'artifactUrl'],\r\n      )\r\n  }\r\n\r\n  private getData(url: string) {\r\n    const id = (url.split('/').pop() as string).split('.')[0] || ''\r\n    const equivalentId = id.startsWith('lex_auth_') ? id : JSON_MAP[id]\r\n    if (equivalentId) {\r\n      return forkJoin([this.setS3Cookie(equivalentId), this.getContent(equivalentId)]).pipe(\r\n        mergeMap(([_, v]) => {\r\n          if (v.status === 'Expired' || v.status === 'Deleted' || !v.artifactUrl) {\r\n            return of({ data: null, error: 'NoContent' })\r\n          }\r\n          return this.http\r\n            .get<NsPage.IPage>(`${v.artifactUrl}?ts=${new Date().getTime()}`)\r\n            .pipe(\r\n              map(data => ({ data, error: null })),\r\n              catchError(err => of({ data: null, error: err })),\r\n            )\r\n        }),\r\n        catchError(err => of({ data: null, error: err })),\r\n      )\r\n    }\r\n    const pageRequest = [\r\n      (equivalentId ? this.setS3Cookie(equivalentId) : of(true)).pipe(\r\n        mergeMap(() =>\r\n          this.http.get<NsPage.IPage>(`${url}.json`).pipe(\r\n            map(data => ({ data, error: null })),\r\n            catchError(err => of({ data: null, error: err })),\r\n          ),\r\n        ),\r\n      ),\r\n      this.locale === 'en' || this.locale === 'en-US' ?\r\n        of({ data: undefined as any, error: null }) :\r\n        this.http.get<NsPage.IPage>(`${url}.${this.locale}.json`).pipe(\r\n          map(data => ({ data, error: null })),\r\n          catchError(err => of({ data: null, error: err })),\r\n        ),\r\n    ]\r\n    return forkJoin(pageRequest).pipe(\r\n      map(\r\n        ([general, withLocale]): IResolveResponse<NsPage.IPage> => {\r\n          if (withLocale.data) {\r\n            return withLocale\r\n          }\r\n          return general\r\n        },\r\n      ),\r\n    )\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'\nimport { ActivatedRouteSnapshot } from '@angular/router'\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PageNameResolve  {\n  constructor(\n  ) { }\n  resolve(\n    route: ActivatedRouteSnapshot,\n  ): string {\n    if (route.data.pageUrl) {\n      return route.data.pageUrl\n    }\n    if (route.data.pageType === 'feature' && route.data.pageKey) {\n      return `${route.data.pageKey}`\n    }\n    if (\n      route.data.pageType === 'page' &&\n      route.data.pageKey &&\n      route.paramMap.has(route.data.pageKey)\n    ) {\n      return `${route.paramMap.get(route.data.pageKey)}`\n    }\n    if (\n      route.data.pageType === 'page' &&\n      route.data.pageKey &&\n      route.data.pageKey === 'toc'\n    ) {\n      return `${route.data.pageKey}`\n    }\n    return 'common module'\n  }\n}\n","import { Injectable } from '@angular/core'\nimport { ActivatedRouteSnapshot } from '@angular/router'\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ModuleNameResolve  {\n  moduleName: any = ''\n  constructor(\n  ) { }\n  resolve(\n    route: ActivatedRouteSnapshot,\n  ): string {\n    if (route.data.pageUrl) {\n      return route.data.pageUrl\n    }\n    if (route.data.pageType === 'feature' && route.data.pageKey) {\n      return `${route.data.pageKey}`\n    }\n    if (\n      route.data.pageType === 'page' &&\n      route.data.pageKey &&\n      route.paramMap.has(route.data.pageKey)\n    ) {\n      this.moduleName = route.paramMap.get(route.data.pageKey)\n      return `${this.moduleName.charAt(0).toUpperCase() + this.moduleName.slice(1)}`\n    }\n    if (\n      route.data.pageType === 'page' &&\n      route.data.pageKey &&\n      route.data.pageKey === 'toc'\n    ) {\n      return `${route.data.pageKey}`\n    }\n    return 'common module'\n  }\n}\n","export namespace NsContent {\r\n  export interface IContinueLearningData extends IContent {\r\n    continueData: any\r\n  }\r\n\r\n  export interface IContent {\r\n    platform?: any\r\n    addedOn: string\r\n    appIcon: string\r\n    artifactUrl: string\r\n    averageRating?: any\r\n    body?: string\r\n    certificationList?: IRelatedContentMeta[]\r\n    certificationStatus?: TCertificationStatus\r\n    certificationSubmissionDate?: string\r\n    certificationUrl: string\r\n    children: IContent[]\r\n    childrenClassifiers?: string[]\r\n    clients?: IClient[]\r\n    collections?: IContent[]\r\n    complexityLevel: string\r\n    contentId: string\r\n    contentType: EContentTypes\r\n    difficultyLevel: string\r\n    primaryCategory: EPrimaryCategory\r\n    contentUrlAtSource: string\r\n    creatorContacts: ICreator[]\r\n\r\n    creatorDetails: ICreator[]\r\n    creatorLogo: string\r\n    creatorPosterImage: string\r\n    creatorThumbnail: string\r\n\r\n    curatedTags: string[]\r\n    description: string\r\n    displayContentType: EDisplayContentTypes // For UI\r\n    downloadUrl?: string\r\n    duration: number\r\n    exclusiveContent?: boolean\r\n    expiryDate?: string\r\n    equivalentCertifications?: IRelatedContentMeta[]\r\n    hasAccess: boolean\r\n    hasAssessment?: string\r\n    idealScreenSize?: string\r\n    identifier: string\r\n    introductoryVideo?: string\r\n    introductoryVideoIcon?: string\r\n    learningTrack?: string\r\n    isExternal: boolean\r\n    isIframeSupported: 'Yes' | 'No' | 'Maybe'\r\n    isInIntranet?: boolean\r\n    keywords?: string[]\r\n    kArtifacts?: IRelatedContentMeta[]\r\n    lastUpdatedOn: string\r\n    learningMode?: TLearningMode\r\n    learningObjective: string\r\n    labels?: string[]\r\n    locale?: string\r\n    hasTranslations?: { identifier: string; locale: string }[]\r\n    isTranslationOf?: { identifier: string; locale: string }[]\r\n    me_totalSessionsCount: number\r\n    mediaType: string\r\n    mimeType: EMimeTypes\r\n    miniGOTVersion?: string\r\n    msArtifactDetails?: IMSArtifactDetails\r\n    mode?: ETagType\r\n    name: string\r\n    nextCertificationAttemptDate?: string\r\n    playgroundInstructions?: string\r\n    playgroundResources?: IResourcePlayground[]\r\n    postContents?: IPrePostContent[]\r\n    posterImage?: string\r\n    preContents?: IPrePostContent[]\r\n    preRequisites: string\r\n    price?: {\r\n      currency: string\r\n      value: number\r\n    }\r\n    proctorUrl?: string\r\n    progress?: IMarkAsCompleteProgress\r\n    programDuration?: any\r\n    publishedOn: string\r\n    recentCertificationAttemptScore?: number\r\n    recommendationReasons?: string[]\r\n    region?: string[]\r\n    registrationUrl?: string\r\n    registrationInstructions?: string\r\n    resourceCategory?: string[]\r\n    resourceType: string\r\n    size?: number\r\n    skills: ISkill[]\r\n    softwareRequirements?: IResourceDetail[]\r\n    sourceName: string\r\n    sourceShortName: string\r\n    sourceIconUrl?: string\r\n    sourceUrl?: string\r\n    ssoEnabled?: boolean\r\n    status:\r\n    | 'Draft'\r\n    | 'InReview'\r\n    | 'QualityReview'\r\n    | 'Reviewed'\r\n    | 'Processing'\r\n    | 'Live'\r\n    | 'Deleted'\r\n    | 'MarkedForDeletion'\r\n    | 'Expired'\r\n    subTitle?: string\r\n    subTitles?: ISubtitle[]\r\n    studyMaterials?: IRelatedContentMeta[]\r\n    systemRequirements?: string[]\r\n    tags: ITag[]\r\n    topics: IContentTopic[]\r\n    totalLikes?: { [key: string]: number }\r\n    totalRating?: number\r\n    track: ITrack[]\r\n    uniqueLearners?: number\r\n    viewCount?: { [key: string]: number }\r\n    reason?: string // required for Knowledge board\r\n    trainingLHubCount?: number // for LHub trainings\r\n    verifiers?: {\r\n      // required for External Certifications\r\n      name: string\r\n      email: string\r\n      id: string\r\n    }[]\r\n    references?: { url: string; title: string }[]\r\n    resumePage?: number // For player WebModule in UI\r\n    [key: string]: any\r\n    optionalReading: boolean\r\n    additionalTags?: string[]\r\n  }\r\n\r\n  export enum EPrimaryCategory {\r\n    PROGRAM = 'Program',\r\n    COURSE = 'Course',\r\n    MODULE = 'Course Unit',\r\n    RESOURCE = 'Learning Resource',\r\n    GOALS = 'GOALS',\r\n    PRACTICE_RESOURCE = 'Practice Question Set',\r\n    FINAL_ASSESSMENT = 'Course Assessment',\r\n    COMP_ASSESSMENT = 'Competency Assessment',\r\n    FTB_QUESTION = 'FTB Question',\r\n    MTF_QUESTION = 'MTF Question',\r\n    MULTIPLE_CHOICE_QUESTION = 'Multiple Choice Question',\r\n    SINGLE_CHOICE_QUESTION = 'Single Choice Question',\r\n    MANDATORY_COURSE_GOAL = 'Mandatory Course Goal',\r\n    BLENDED_PROGRAM = 'Blended Program',\r\n    OFFLINE_SESSION = 'Offline Session',\r\n    // following will not be available soon\r\n    /**\r\n     * @deprecated The type should not be used\r\n     */\r\n    KNOWLEDGE_ARTIFACT = 'Knowledge Artifact',\r\n    /**\r\n    * @deprecated The type should not be used\r\n    */\r\n    KNOWLEDGE_BOARD = 'Knowledge Board',\r\n    /**\r\n    * @deprecated The type should not be used\r\n    */\r\n    LEARNING_JOURNEY = 'Learning Journeys',\r\n    /**\r\n    * @deprecated The type should not be used\r\n    */\r\n    CHANNEL = 'Channel',\r\n  }\r\n  export interface IContentMinimal {\r\n    appIcon: string\r\n    artifactUrl: string\r\n    complexityLevel: string\r\n    contentType: EContentTypes\r\n    primaryCategory: EPrimaryCategory\r\n    description: string\r\n    displayContentType?: EDisplayContentTypes\r\n    duration: number\r\n    identifier: string\r\n    hasAccess?: boolean\r\n    isInIntranet?: boolean\r\n    learningMode?: TLearningMode\r\n    mimeType: EMimeTypes\r\n    name: string\r\n    creatorDetails: ICreator[]\r\n    creatorContacts: ICreator[]\r\n    PosterImage?: string\r\n    resourceType?: string\r\n    totalRating?: number\r\n  }\r\n\r\n  export interface ICollectionHierarchyResponse {\r\n    data: IContent\r\n    hasMore: boolean\r\n    totalContents: number\r\n  }\r\n\r\n  export interface IRelatedContentMeta {\r\n    identifier: string\r\n    name: string\r\n  }\r\n\r\n  type TCertificationStatus = 'ongoing' | 'passed' | 'canAttempt' | 'cannotAttempt'\r\n  export type TLearningMode = 'Self-Paced' | 'Instructor-Led' | 'Open' | 'Closed'\r\n\r\n  interface IMarkAsCompleteProgress {\r\n    progressStatus: 'open' | 'started' | 'completed'\r\n    showMarkAsComplete: boolean\r\n    markAsCompleteReason: string\r\n    progressSupported: boolean\r\n    progress: number | null\r\n  }\r\n\r\n  interface ITag {\r\n    id: string\r\n    type: string\r\n    value: string\r\n  }\r\n  interface IMSArtifactDetails {\r\n    channelId: string\r\n    videoId: string\r\n  }\r\n  interface IClient {\r\n    displayName: string\r\n    id: string\r\n    name: string\r\n  }\r\n  interface ISubtitle {\r\n    srclang: string\r\n    label: string\r\n    url: string\r\n  }\r\n  interface IPrePostContent {\r\n    identifier: string\r\n    name: string\r\n  }\r\n  interface IResourceDetail {\r\n    title?: string\r\n    url?: string\r\n  }\r\n  interface IResourcePlayground {\r\n    appIcon: string\r\n    artifactUrl: string\r\n    identifier: string\r\n    name: string\r\n  }\r\n  interface ITrack {\r\n    id: string\r\n    name: string\r\n    status: string\r\n    visibility: string\r\n  }\r\n  interface ISkill {\r\n    id: string\r\n    category: string\r\n    skill: string\r\n    name: string\r\n  }\r\n  export interface ICreator {\r\n    id: string\r\n    name: string\r\n    email: string\r\n  }\r\n  export interface IContentTopic {\r\n    identifier: string\r\n    name: string\r\n  }\r\n  // API Based\r\n\r\n  export interface IContact {\r\n    id: string\r\n    name: string\r\n    email: string\r\n  }\r\n\r\n  export interface IViewerContinueLearningRequest {\r\n    resourceId: string\r\n    contextPathId: string\r\n    data: string\r\n    dateAccessed: number\r\n    contextType?: string\r\n  }\r\n  /**\r\n     * @deprecated Enum EContentTypes should not be used in future\r\n     */\r\n  export enum EContentTypes {\r\n    PROGRAM = 'Learning Path',\r\n    CHANNEL = 'Channel',\r\n    COURSE = 'Course',\r\n    KNOWLEDGE_ARTIFACT = 'Knowledge Artifact',\r\n    KNOWLEDGE_BOARD = 'Knowledge Board',\r\n    LEARNING_JOURNEY = 'Learning Journeys',\r\n    MODULE = 'Collection',\r\n    RESOURCE = 'Resource',\r\n  }\r\n  export enum EMiscPlayerSupportedCollectionTypes {\r\n    PLAYLIST = 'Playlist',\r\n  }\r\n  export const PLAYER_SUPPORTED_COLLECTION_TYPES: string[] = [\r\n    EContentTypes.COURSE,\r\n    EContentTypes.MODULE,\r\n    EContentTypes.PROGRAM,\r\n    EMiscPlayerSupportedCollectionTypes.PLAYLIST,\r\n  ]\r\n  export const KB_SUPPORTED_CONTENT_TYPES: EContentTypes[] = [\r\n    EContentTypes.COURSE,\r\n    EContentTypes.MODULE,\r\n    EContentTypes.PROGRAM,\r\n    EContentTypes.RESOURCE,\r\n  ]\r\n  export const PLAYLIST_SUPPORTED_CONTENT_TYPES: EContentTypes[] = [\r\n    EContentTypes.COURSE,\r\n    EContentTypes.MODULE,\r\n    EContentTypes.PROGRAM,\r\n    EContentTypes.RESOURCE,\r\n  ]\r\n  export enum EMimeTypes {\r\n    COLLECTION = 'application/vnd.ekstep.content-collection',\r\n    HTML = 'application/html',\r\n    ILP_FP = 'application/ilpfp',\r\n    IAP = 'application/iap-assessment',\r\n    M4A = 'audio/m4a',\r\n    MP3 = 'audio/mpeg',\r\n    MP4 = 'video/mp4',\r\n    M3U8 = 'application/x-mpegURL',\r\n    INTERACTION = 'video/interactive',\r\n    PDF = 'application/pdf',\r\n    QUIZ = 'application/quiz',\r\n    DRAG_DROP = 'application/drag-drop',\r\n    HTML_PICKER = 'application/htmlpicker',\r\n    WEB_MODULE = 'application/web-module',\r\n    WEB_MODULE_EXERCISE = 'application/web-module-exercise',\r\n    YOUTUBE = 'video/x-youtube',\r\n    HANDS_ON = 'application/integrated-hands-on',\r\n    RDBMS_HANDS_ON = 'application/rdbms',\r\n    CLASS_DIAGRAM = 'application/class-diagram',\r\n    CHANNEL = 'application/channel',\r\n    COLLECTION_RESOURCE = 'resource/collection',\r\n    // Added on UI Only\r\n    CERTIFICATION = 'application/certification',\r\n    PLAYLIST = 'application/playlist',\r\n    QUESTION_SET = 'application/vnd.sunbird.questionset',\r\n    QUESTION = 'application/vnd.sunbird.question',\r\n    UNKNOWN = 'application/unknown',\r\n    OFFLINE_SESSION = 'application/offline',\r\n  }\r\n  export enum EDisplayContentTypes {\r\n    ASSESSMENT = 'ASSESSMENT',\r\n    AUDIO = 'AUDIO',\r\n    CERTIFICATION = 'CERTIFICATION',\r\n    CHANNEL = 'Channel',\r\n    CLASS_DIAGRAM = 'CLASS_DIAGRAM',\r\n    COURSE = 'COURSE',\r\n    DEFAULT = 'DEFAULT',\r\n    DRAG_DROP = 'DRAG_DROP',\r\n    EXTERNAL_CERTIFICATION = 'EXTERNAL_CERTIFICATION',\r\n    EXTERNAL_COURSE = 'EXTERNAL_COURSE',\r\n    GOALS = 'GOALS',\r\n    HANDS_ON = 'HANDS_ON',\r\n    IAP = 'IAP',\r\n    INSTRUCTOR_LED = 'INSTRUCTOR_LED',\r\n    INTERACTIVE_VIDEO = 'INTERACTIVE_VIDEO',\r\n    KNOWLEDGE_ARTIFACT = 'KNOWLEDGE_ARTIFACT',\r\n    MODULE = 'MODULE',\r\n    PDF = 'PDF',\r\n    PLAYLIST = 'PLAYLIST',\r\n    PROGRAM = 'PROGRAM',\r\n    QUIZ = 'QUIZ',\r\n    RESOURCE = 'RESOURCE',\r\n    RDBMS_HANDS_ON = 'RDBMS_HANDS_ON',\r\n    VIDEO = 'VIDEO',\r\n    WEB_MODULE = 'WEB_MODULE',\r\n    WEB_PAGE = 'WEB_PAGE',\r\n    YOUTUBE = 'YOUTUBE',\r\n    KNOWLEDGE_BOARD = 'Knowledge Board',\r\n    LEARNING_JOURNEY = 'Learning Journeys',\r\n  }\r\n  // for UI\r\n  export enum EFilterCategory {\r\n    ALL = 'ALL',\r\n    LEARN = 'LEARN',\r\n    PRACTICE = 'PRACTICE',\r\n    ASSESS = 'ASSESS',\r\n  }\r\n\r\n  // for UI\r\n  export enum ETagType {\r\n    NEWLY_ADDED = 'NEWLY ADDED',\r\n  }\r\n\r\n  export enum ECourseCategory {\r\n    MODULE = 'Course Unit',\r\n    INVITE_ONLY_PROGRAM = 'Invite-Only Program',\r\n    MODERATED_PROGRAM = 'Moderated Program',\r\n    BLENDED_PROGRAM = 'Blended Program',\r\n    CURATED_PROGRAM = 'Curated Program',\r\n    COURSE = 'Course',\r\n    MODERATED_COURSE = 'Moderated Course',\r\n    STANDALONE_ASSESSMENT = 'Standalone Assessment',\r\n    MODERATED_ASSESSEMENT = 'Moderated Assessment',\r\n    INVITE_ONLY_ASSESSMENT = 'Invite-Only Assessment',\r\n    CQF_ASSESSMENT = 'CQF Assessment',\r\n    CASE_STUDY = 'Case Study',\r\n    PRE_ENROLMENT_ASSESSMENT = 'Pre Enrolment Assessment',\r\n    COMPREHENSIVE_ASSESSMENT_PROGRAM = 'Comprehensive Assessment Program',\r\n    MULTILINGUAL_COURSE = 'Multilingual Course',\r\n    RESOURCE = 'Learning Resource',\r\n  }\r\n\r\n  export enum EContextTypes {\r\n    FINAL_MILESTONE_ASSESSMENT = 'Final Milestone Assessment',\r\n  }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Injectable } from '@angular/core'\r\nimport { Observable, of, EMPTY } from 'rxjs'\r\nimport { catchError, retry } from 'rxjs/operators'\r\nimport { ConfigurationsService } from './configurations.service'\r\nimport { NsContentStripMultiple } from './content-strip-multiple.model'\r\nimport { NsContent } from './widget-content.model'\r\nimport { NSSearch } from './widget-search.model'\r\n\r\n// TODO: move this in some common place\r\nconst PROTECTED_SLAG_V8 = '/apis/protected/v8'\r\n\r\nconst API_END_POINTS = {\r\n  CONTENT: `${PROTECTED_SLAG_V8}/content`,\r\n  AUTHORING_CONTENT: `/apis/authApi/hierarchy`,\r\n  CONTENT_LIKES: `${PROTECTED_SLAG_V8}/content/likeCount`,\r\n  SET_S3_COOKIE: `${PROTECTED_SLAG_V8}/content/setCookie`,\r\n  SET_S3_IMAGE_COOKIE: `${PROTECTED_SLAG_V8}/content/setImageCookie`,\r\n  FETCH_MANIFEST: `${PROTECTED_SLAG_V8}/content/getWebModuleManifest`,\r\n  FETCH_WEB_MODULE_FILES: `${PROTECTED_SLAG_V8}/content/getWebModuleFiles`,\r\n  MULTIPLE_CONTENT: `${PROTECTED_SLAG_V8}/content/multiple`,\r\n  CONTENT_SEARCH_V5: `${PROTECTED_SLAG_V8}/content/searchV5`,\r\n  CONTENT_SEARCH_V6: `${PROTECTED_SLAG_V8}/content/searchV6`,\r\n  CONTENT_SEARCH_REGION_RECOMMENDATION: `${PROTECTED_SLAG_V8}/content/searchRegionRecommendation`,\r\n  CONTENT_HISTORY: `${PROTECTED_SLAG_V8}/user/history`,\r\n  USER_CONTINUE_LEARNING: `${PROTECTED_SLAG_V8}/user/history/continue`,\r\n  CONTENT_RATING: `${PROTECTED_SLAG_V8}/user/rating`,\r\n  COLLECTION_HIERARCHY: (type: string, id: string) =>\r\n    `${PROTECTED_SLAG_V8}/content/collection/${type}/${id}`,\r\n  REGISTRATION_STATUS: `${PROTECTED_SLAG_V8}/admin/userRegistration/checkUserRegistrationContent`,\r\n  MARK_AS_COMPLETE_META: (contentId: string) => `${PROTECTED_SLAG_V8}/user/progress/${contentId}`,\r\n  EXT_USER_COURSE_ENROLL: (contentId: any) => `/apis/proxies/v8/cios-enroll/v1/readby/useridcourseid/${contentId}`,\r\n  EXT_CONTENT_EROLL: `/apis/proxies/v8/cios-enroll/v1/create`,\r\n  CERT_DOWNLOAD: (certId: any) => `${PROTECTED_SLAG_V8}/cohorts/course/batch/cert/download/${certId}`,\r\n  CERT_DOWNLOADV2: `/apis/proxies/v8/certificate/dynamic/v1/generate`,\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\n/**\r\n * @deprecated this will be depricated\r\n */\r\nexport class WidgetContentService {\r\n  constructor(\r\n    private http: HttpClient,\r\n    private configSvc: ConfigurationsService\r\n  ) { }\r\n\r\n  fetchMarkAsCompleteMeta(identifier: string): Promise<any> {\r\n    // tslint:disable-next-line\r\n    const url = API_END_POINTS.MARK_AS_COMPLETE_META(identifier)\r\n    // return this.http.get(url).toPromise()\r\n    if (url) { }\r\n    return of().toPromise()\r\n  }\r\n\r\n  fetchContent(\r\n    contentId: string,\r\n    hierarchyType: 'all' | 'minimal' | 'detail' = 'detail',\r\n    additionalFields: string[] = [],\r\n  ): Observable<NsContent.IContent> {\r\n    const url = `${API_END_POINTS.CONTENT}/${contentId}?hierarchyType=${hierarchyType}`\r\n    return this.http\r\n      .post<NsContent.IContent>(url, { additionalFields })\r\n      .pipe(retry(1))\r\n  }\r\n  fetchAuthoringContent(contentId: string): Observable<NsContent.IContent> {\r\n    const url = `${API_END_POINTS.AUTHORING_CONTENT}/${contentId}`\r\n    return this.http.get<NsContent.IContent>(url).pipe(retry(1))\r\n  }\r\n  fetchMultipleContent(ids: string[]): Observable<NsContent.IContent[]> {\r\n    return this.http.get<NsContent.IContent[]>(\r\n      `${API_END_POINTS.MULTIPLE_CONTENT}/${ids.join(',')}`,\r\n    )\r\n  }\r\n  fetchCollectionHierarchy(type: string, id: string, pageNumber: number = 0, pageSize: number = 1) {\r\n    return this.http.get<NsContent.ICollectionHierarchyResponse>(\r\n      `${API_END_POINTS.COLLECTION_HIERARCHY(\r\n        type,\r\n        id,\r\n      )}?pageNumber=${pageNumber}&pageSize=${pageSize}`,\r\n    )\r\n  }\r\n\r\n  fetchContentLikes(contentIds: { content_id: string[] }) {\r\n    return this.http\r\n      .post<{ [identifier: string]: number }>(API_END_POINTS.CONTENT_LIKES, contentIds)\r\n      .toPromise()\r\n  }\r\n\r\n  fetchContentRatings(contentIds: { contentIds: string[] }) {\r\n    if (contentIds) { }\r\n    // return this.http\r\n    //   .post(`${API_END_POINTS.CONTENT_RATING}/rating`, contentIds)\r\n    //   .toPromise()\r\n    return of().toPromise()\r\n  }\r\n\r\n  fetchContentHistory(contentId: string): Observable<NsContent.IContinueLearningData> {\r\n    return this.http.get<NsContent.IContinueLearningData>(\r\n      `${API_END_POINTS.CONTENT_HISTORY}/${contentId}`,\r\n    )\r\n  }\r\n\r\n  async continueLearning(id: string, collectionId?: string, collectionType?: string): Promise<any> {\r\n    return new Promise(async resolve => {\r\n      if (collectionType &&\r\n        collectionType.toLowerCase() === 'playlist') {\r\n        const reqBody = {\r\n          contextPathId: collectionId ? collectionId : id,\r\n          resourceId: id,\r\n          data: JSON.stringify({\r\n            timestamp: Date.now(),\r\n            contextFullPath: [collectionId, id],\r\n          }),\r\n          dateAccessed: Date.now(),\r\n          contextType: 'playlist',\r\n        }\r\n        await this.saveContinueLearning(reqBody).toPromise().catch().finally(() => {\r\n          resolve(true)\r\n        }\r\n        )\r\n      } else {\r\n        const reqBody = {\r\n          contextPathId: collectionId ? collectionId : id,\r\n          resourceId: id,\r\n          data: JSON.stringify({ timestamp: Date.now() }),\r\n          dateAccessed: Date.now(),\r\n        }\r\n        await this.saveContinueLearning(reqBody).toPromise().catch().finally(() => {\r\n          resolve(true)\r\n        })\r\n      }\r\n    })\r\n  }\r\n  saveContinueLearning(content: NsContent.IViewerContinueLearningRequest): Observable<any> {\r\n    // const url = API_END_POINTS.USER_CONTINUE_LEARNING\r\n    // return this.http.post<any>(url, content)\r\n    if (content) {\r\n\r\n    }\r\n    return of() as any\r\n  }\r\n\r\n  setS3Cookie(\r\n    _contentId: string,\r\n    // _path: string,\r\n  ): Observable<any> {\r\n    // return this.http\r\n    //   .post(API_END_POINTS.SET_S3_COOKIE, { contentId })\r\n    //   .pipe(catchError(_err => of(true)))\r\n    return EMPTY\r\n  }\r\n\r\n  setS3ImageCookie(): Observable<any> {\r\n    return this.http.post(API_END_POINTS.SET_S3_IMAGE_COOKIE, {}).pipe(catchError(_err => of(true)))\r\n  }\r\n\r\n  fetchManifest(url: string): Observable<any> {\r\n    return this.http.post(API_END_POINTS.FETCH_MANIFEST, { url })\r\n  }\r\n  fetchWebModuleContent(url: string): Observable<any> {\r\n    return this.http.get(`${API_END_POINTS.FETCH_WEB_MODULE_FILES}?url=${encodeURIComponent(url)}`)\r\n  }\r\n  search(req: NSSearch.ISearchRequest): Observable<NSSearch.ISearchApiResult> {\r\n    req.query = req.query || ''\r\n    return this.http.post<NSSearch.ISearchApiResult>(API_END_POINTS.CONTENT_SEARCH_V5, {\r\n      request: req,\r\n    })\r\n  }\r\n  searchRegionRecommendation(\r\n    req: NSSearch.ISearchOrgRegionRecommendationRequest,\r\n  ): Observable<NsContentStripMultiple.IContentStripResponseApi> {\r\n    req.query = req.query || ''\r\n    req.preLabelValue =\r\n      (req.preLabelValue || '') +\r\n      ((this.configSvc.userProfile && this.configSvc.userProfile.country) || '')\r\n    req.filters = {\r\n      ...req.filters,\r\n      labels: [req.preLabelValue || ''],\r\n    }\r\n    return this.http.post<NsContentStripMultiple.IContentStripResponseApi>(\r\n      API_END_POINTS.CONTENT_SEARCH_REGION_RECOMMENDATION,\r\n      { request: req },\r\n    )\r\n  }\r\n  searchV6(req: NSSearch.ISearchV6Request): Observable<NSSearch.ISearchV6ApiResult> {\r\n    req.query = req.query || ''\r\n    return this.http.post<NSSearch.ISearchV6ApiResult>(API_END_POINTS.CONTENT_SEARCH_V6, req)\r\n  }\r\n\r\n  fetchContentRating(contentId: string): Observable<{ rating: number }> {\r\n    return this.http.get<{ rating: number }>(`${API_END_POINTS.CONTENT_RATING}/${contentId}`)\r\n  }\r\n  deleteContentRating(contentId: string): Observable<any> {\r\n    return this.http.delete(`${API_END_POINTS.CONTENT_RATING}/${contentId}`)\r\n  }\r\n  addContentRating(contentId: string, data: { rating: number }): Observable<any> {\r\n    return this.http.post<any>(`${API_END_POINTS.CONTENT_RATING}/${contentId}`, data)\r\n  }\r\n  /**\r\n   *\r\n   * @deprecated this will be depricated.\r\n   */\r\n  getFirstChildInHierarchy(content: NsContent.IContent): NsContent.IContent {\r\n    if (!(content.children || []).length) {\r\n      return content\r\n    }\r\n    if (\r\n      content.primaryCategory === 'Program' &&\r\n      !(content.artifactUrl && content.artifactUrl.length)\r\n    ) {\r\n      const child = content.children[0]\r\n      return this.getFirstChildInHierarchy(child)\r\n    }\r\n    if (\r\n      content.primaryCategory === NsContent.EPrimaryCategory.RESOURCE ||\r\n      content.primaryCategory === NsContent.EPrimaryCategory.KNOWLEDGE_ARTIFACT ||\r\n      content.primaryCategory === NsContent.EPrimaryCategory.PROGRAM ||\r\n      content.primaryCategory === NsContent.EPrimaryCategory.PRACTICE_RESOURCE ||\r\n      content.primaryCategory === NsContent.EPrimaryCategory.FINAL_ASSESSMENT ||\r\n      content.primaryCategory === NsContent.EPrimaryCategory.COMP_ASSESSMENT ||\r\n      content.primaryCategory === NsContent.EPrimaryCategory.MANDATORY_COURSE_GOAL ||\r\n      content.primaryCategory === NsContent.EPrimaryCategory.OFFLINE_SESSION\r\n    ) {\r\n      return content\r\n    }\r\n    const firstChild = content.children[0]\r\n    const resultContent = this.getFirstChildInHierarchy(firstChild)\r\n    return resultContent\r\n  }\r\n\r\n  getRegistrationStatus(source: string): Promise<{ hasAccess: boolean; registrationUrl?: string }> {\r\n    return this.http.get<any>(`${API_END_POINTS.REGISTRATION_STATUS}/${source}`).toPromise()\r\n  }\r\n\r\n  fetchConfig(url: string) {\r\n    return this.http.get<any>(url)\r\n  }\r\n\r\n  fetchExtUserContentEnroll(contentId: string) {\r\n    return this.http.get<any>(API_END_POINTS.EXT_USER_COURSE_ENROLL(contentId))\r\n  }\r\n\r\n  extContentEnroll(requestBody: any) {\r\n    return this.http.post<any>(`${API_END_POINTS.EXT_CONTENT_EROLL}`, requestBody)\r\n  }\r\n\r\n  downloadCert(certId: any) {\r\n    return this.http.get<any>(`${API_END_POINTS.CERT_DOWNLOAD(certId)}`)\r\n  }\r\n\r\n  downloadCertV2(payload: any) {\r\n    return this.http.post<any>(`${API_END_POINTS.CERT_DOWNLOADV2}`, payload)\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\n// import { map } from 'rxjs/operators'\n// tslint:disable\nimport _ from 'lodash'\nimport { BehaviorSubject } from 'rxjs'\n// tslint:enable\n\nconst API_END_POINTS = {\n    readFeed: (id: string) => `/apis/proxies/v8/user/v1/feed/${id}`,\n    getFormID: (id: string) => `/apis/proxies/v8/forms/getFormById?id=${id}`,\n    submitForm: `/apis/proxies/v8/forms/v1/saveFormSubmit`,\n    deleteFeed: `/apis/proxies/v8/user/feed/v1/delete`,\n}\n\n@Injectable()\nexport class NPSGridService {\n  private telemetryEvents = new BehaviorSubject(false)\n  updateTelemetryDataObservable = this.telemetryEvents.asObservable()\n\n  constructor(private http: HttpClient) { }\n\n  updateTelemetryData(state: boolean) {\n    this.telemetryEvents.next(state)\n  }\n\n  getFeedStatus(id: any) {\n    return this.http.get<any>(API_END_POINTS.readFeed(id))\n  }\n\n  getFormData(formid: any) {\n    return this.http.get<any>(API_END_POINTS.getFormID(formid))\n  }\n\n  submitPlatformRating(req: any) {\n    return this.http.post<any>(API_END_POINTS.submitForm, req)\n  }\n\n  deleteFeed(req: any) {\n    return this.http.post<any>(API_END_POINTS.deleteFeed, req)\n  }\n}\n","import { Inject, Injectable } from '@angular/core'\r\nimport { filter } from 'rxjs/operators'\r\n// import { AuthKeycloakService } from './auth-keycloak.service'\r\nimport { NsInstanceConfig } from './configurations.model'\r\nimport { ConfigurationsService } from './configurations.service'\r\nimport { WsEvents } from './event.model'\r\nimport { EventService } from './event.service'\r\nimport { LoggerService } from './logger.service'\r\nimport { NsContent } from './widget-content.model'\r\nimport { Router, NavigationStart } from '@angular/router'\r\nimport { NPSGridService } from './nps-grid.service'\r\n\r\ndeclare var $t: any\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class TelemetryService {\r\n  previousUrl: string | null = null\r\n  telemetryConfig: NsInstanceConfig.ITelemetryConfig | null = null\r\n  pData: any = null\r\n  contextCdata = []\r\n  isAnonymousTelemetry = true\r\n  telArray: any = []\r\n  externalApps: any = {\r\n    RBCP: 'rbcp-web-ui',\r\n  }\r\n  environment: any\r\n  constructor(\r\n    private configSvc: ConfigurationsService,\r\n    private eventsSvc: EventService,\r\n    @Inject('environment') environment: any,\r\n    // private authSvc: AuthKeycloakService,\r\n    private logger: LoggerService,\r\n    private router: Router,\r\n    private npsSvc: NPSGridService,\r\n  ) {\r\n    this.environment = environment\r\n    const instanceConfig = this.configSvc.instanceConfig\r\n    this.navigationStart()\r\n    this.initializeConfig(instanceConfig)\r\n    this.addPlayerListener()\r\n    this.addCustomEventListener()\r\n    this.addInteractListener()\r\n    this.addFeedbackListener()\r\n    this.addTimeSpentListener()\r\n    this.addSearchListener()\r\n    this.addHearbeatListener()\r\n    this.addCustomImpressionListener()\r\n    this.addCustomListener()\r\n    this.addCustomListenerForGetStart()\r\n    this.addCustomListenerForPlatformRating()\r\n  }\r\n\r\n  private navigationStart() {\r\n    this.router.events.subscribe((event: any) => {\r\n      if (event instanceof NavigationStart) {\r\n        if (event.url.includes('/public/') || event.url.includes('&preview=true') || event.url.includes('/certs')) {\r\n          this.isAnonymousTelemetry = true\r\n          this.updateTelemetryConfig()\r\n          const instanceConfig = this.configSvc.instanceConfig\r\n          this.initializeConfig(instanceConfig)\r\n        }\r\n      }\r\n    })\r\n  }\r\n\r\n  get isAnonymousTelemetryRequired(): boolean {\r\n    return this.isAnonymousTelemetry\r\n  }\r\n\r\n  private updateTelemetryConfig() {\r\n    if (this.configSvc.instanceConfig && this.configSvc.instanceConfig.telemetryConfig) {\r\n      if (this.isAnonymousTelemetryRequired) {\r\n        this.configSvc.instanceConfig.telemetryConfig.endpoint = this.configSvc.instanceConfig.telemetryConfig.publicEndpoint\r\n      } else {\r\n        this.configSvc.instanceConfig.telemetryConfig.endpoint = this.configSvc.instanceConfig.telemetryConfig.protectedEndpoint\r\n      }\r\n    }\r\n  }\r\n\r\n  private initializeConfig(instanceConfig: NsInstanceConfig.IConfig | null) {\r\n    if (instanceConfig) {\r\n      this.telemetryConfig = instanceConfig.telemetryConfig\r\n      this.telemetryConfig = {\r\n        ...this.telemetryConfig,\r\n        pdata: {\r\n          ...this.telemetryConfig.pdata,\r\n          // pid: navigator.userAgent,\r\n          id: `${this.environment.name}.${this.telemetryConfig.pdata.id}`,\r\n        },\r\n        uid: (this.configSvc.userProfile && this.configSvc.userProfile.userId) ?\r\n              this.configSvc.userProfile.userId : '',\r\n        // authtoken: this.authSvc.token,\r\n        // tslint:disable-next-line: no-non-null-assertion\r\n        channel: this.rootOrgId || this.telemetryConfig.channel,\r\n        sid: this.getTelemetrySessionId,\r\n      }\r\n      this.pData = this.telemetryConfig.pdata\r\n    }\r\n  }\r\n\r\n  get getTelemetrySessionId(): string {\r\n    return localStorage.getItem('telemetrySessionId') || ''\r\n  }\r\n\r\n  get rootOrgId(): string {\r\n    if (this.configSvc && this.configSvc.userProfile && this.configSvc.userProfile.rootOrgId) {\r\n      return this.configSvc.userProfile.rootOrgId\r\n    }\r\n    return ''\r\n  }\r\n\r\n  triggerNPSUpdate(data: any) {\r\n    this.telArray.push(data)\r\n    if (this.telArray && this.telArray.length === 4) {\r\n      if (localStorage.getItem('ratingformID')) {\r\n        this.telArray = []\r\n        this.npsSvc.updateTelemetryData(true)\r\n      }\r\n    }\r\n  }\r\n\r\n  start(edata: any, data: any, pageContext?: WsEvents.ITelemetryPageContext) {\r\n    try {\r\n      if (this.telemetryConfig) {\r\n        $t.start(\r\n          this.telemetryConfig,\r\n          (pageContext && pageContext.pageId) ?\r\n            pageContext.pageId\r\n            : '',\r\n          '1.0',\r\n          {\r\n            // id,\r\n            type: edata.type,\r\n            mode: edata.mode,\r\n            pageid: (pageContext && pageContext.pageId) ?\r\n              pageContext.pageId\r\n              : '',\r\n            duration: 1,\r\n          },\r\n          {\r\n            context: {\r\n              pdata: {\r\n                ...this.pData,\r\n                id: this.pData.id,\r\n              },\r\n              ...(pageContext && pageContext.module ? { env: pageContext.module } : null),\r\n            },\r\n            object: {\r\n              ...(data) && data,\r\n            },\r\n            ...(this.configSvc.userProfile && this.configSvc.userProfile.userId ?\r\n               null : { actor: { id: '', type: 'AnonymousUser' } }),\r\n          }\r\n        )\r\n      } else {\r\n        this.logger.error('Error Initializing Telemetry. Config missing.')\r\n      }\r\n    } catch (e) {\r\n      // tslint:disable-next-line: no-console\r\n      console.log('Error in telemetry start', e)\r\n    }\r\n  }\r\n\r\n  end(edata: any, data: any, pageContext?: WsEvents.ITelemetryPageContext) {\r\n    try {\r\n      $t.end(\r\n        {\r\n          type: edata.type,\r\n          mode: edata.mode,\r\n          pageid: (pageContext && pageContext.pageId) ?\r\n            pageContext.pageId\r\n            : '',\r\n        },\r\n        {\r\n          context: {\r\n            pdata: {\r\n              ...this.pData,\r\n              id: this.pData.id,\r\n            },\r\n            ...(pageContext && pageContext.module ? { env: pageContext.module } : null),\r\n          },\r\n          object: {\r\n            ...(data) && data,\r\n          },\r\n        },\r\n      )\r\n    } catch (e) {\r\n      // tslint:disable-next-line: no-console\r\n      console.log('Error in telemetry end', e)\r\n    }\r\n  }\r\n\r\n  audit(type: string, props: string, data: any) {\r\n    try {\r\n      $t.audit(\r\n        {\r\n          type,\r\n          props,\r\n          // data,\r\n          state: data, // Optional. Current State\r\n          prevstate: '', // Optional. Previous State\r\n          duration: '', // Optional.\r\n        },\r\n        {\r\n          context: {\r\n            pdata: {\r\n              ...this.pData,\r\n              id: this.pData.id,\r\n            },\r\n          },\r\n        },\r\n      )\r\n    } catch (e) {\r\n      // tslint:disable-next-line: no-console\r\n      console.log('Error in telemetry audit', e)\r\n    }\r\n  }\r\n\r\n  heartbeat(type: string, id: string) {\r\n    try {\r\n      $t.heartbeat({\r\n        id,\r\n        // mode,\r\n        type,\r\n      })\r\n    } catch (e) {\r\n      // tslint:disable-next-line: no-console\r\n      console.log('Error in telemetry heartbeat', e)\r\n    }\r\n  }\r\n\r\n  impression(data?: any, objectType?: any) {\r\n    this.triggerNPSUpdate(data)\r\n    try {\r\n      const page = this.getPageDetails()\r\n      if (data && data.pageContext) {\r\n        page.pageid = data.pageContext.pageId\r\n        page.module = data.pageContext.module\r\n      }\r\n      const edata = {\r\n        pageid: page.pageid, // Required. Unique page id\r\n        type: page.pageUrlParts[0], // Required. Impression type (list, detail, view, edit, workflow, search)\r\n        uri: page.pageUrl,\r\n      }\r\n      if (page.objectId) {\r\n        const config = {\r\n          context: {\r\n            pdata: {\r\n              ...this.pData,\r\n              id: this.pData.id,\r\n            },\r\n            env: page.module || (this.telemetryConfig && this.telemetryConfig.env),\r\n          },\r\n          object: {\r\n            id: page.objectId,\r\n            type: objectType,\r\n            // This will override above id if the data has object in it.\r\n            ...(data && data.object),\r\n          },\r\n        }\r\n        if (!page.objectId || !objectType) {\r\n          config.object = {}\r\n        }\r\n        $t.impression(edata, config)\r\n      } else {\r\n        $t.impression(edata, {\r\n          context: {\r\n            pdata: {\r\n              ...this.pData,\r\n              id: this.pData && this.pData.id,\r\n            },\r\n            env: page.module || '',\r\n          },\r\n          object: {\r\n            ...(data && data.object),\r\n          },\r\n        })\r\n      }\r\n      this.previousUrl = page.pageUrl\r\n    } catch (e) {\r\n      // tslint:disable-next-line: no-console\r\n      console.log('Error in telemetry impression', e)\r\n    }\r\n  }\r\n\r\n  externalImpression(impressionData: any) {\r\n    // this.triggerNPSUpdate(impressionData)\r\n    try {\r\n      const page = this.getPageDetails()\r\n      if (this.externalApps[impressionData.subApplicationName]) {\r\n        const externalConfig = page.objectId ? {\r\n          context: {\r\n            pdata: {\r\n              ...this.pData,\r\n              id: this.externalApps[impressionData.subApplicationName],\r\n            },\r\n          },\r\n          object: {\r\n            id: page.objectId,\r\n          },\r\n        } : {\r\n          context: {\r\n            pdata: {\r\n              ...this.pData,\r\n              id: this.externalApps[impressionData.subApplicationName],\r\n            },\r\n          },\r\n        }\r\n        $t.impression(impressionData.data, externalConfig)\r\n      }\r\n    } catch (e) {\r\n      // tslint:disable-next-line: no-console\r\n      console.log('Error in telemetry externalImpression', e)\r\n    }\r\n  }\r\n\r\n  // for Plartform rating\r\n  addCustomListenerForPlatformRating() {\r\n    this.eventsSvc.getPREvents$\r\n      .pipe(\r\n        filter(\r\n          event =>\r\n            event &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry &&\r\n            event.data.eventSubType === WsEvents.EnumTelemetrySubType.PlatformRating &&\r\n            event.data.mode &&\r\n            event.data,\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        if (event.data.state === WsEvents.EnumTelemetrySubType.Loaded) {\r\n          this.start(\r\n            {\r\n              type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n              mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n            },\r\n            {},\r\n            event.pageContext\r\n          )\r\n        }\r\n        if (\r\n          event.data.state === WsEvents.EnumTelemetrySubType.Unloaded\r\n        ) {\r\n          this.end({\r\n            type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n            mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n          },\r\n                   event.data.object,\r\n                   event.pageContext\r\n          )\r\n        }\r\n        if (\r\n          event.data.state === WsEvents.EnumTelemetrySubType.Interact\r\n        ) {\r\n          $t.interact(\r\n            {\r\n              type: event.data.edata.type,\r\n              subtype: event.data.edata.subType,\r\n              id: (event.data.edata && event.data.edata.id) ?\r\n                event.data.edata.id\r\n                : '',\r\n              pageid: event.pageContext && event.pageContext.pageId || '',\r\n            },\r\n            {\r\n              context: {\r\n                pdata: {\r\n                  ...this.pData,\r\n                  id: this.pData.id,\r\n                },\r\n                ...(event.pageContext && event.pageContext.module ? { env: event.pageContext.module } : null),\r\n              },\r\n              object: {\r\n                ...event.data.object,\r\n              },\r\n            })\r\n        }\r\n\r\n      })\r\n  }\r\n\r\n  addCustomListenerForGetStart() {\r\n    this.eventsSvc.getStartEvents$\r\n      .pipe(\r\n        filter(\r\n          event =>\r\n            event &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry &&\r\n            event.data.eventSubType === WsEvents.EnumTelemetrySubType.GetStarted &&\r\n            event.data.mode &&\r\n            event.data,\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        if (event.data.state === WsEvents.EnumTelemetrySubType.Loaded) {\r\n          this.start(\r\n            {\r\n              type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n              mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n            },\r\n            {},\r\n            event.pageContext\r\n          )\r\n        }\r\n        if (\r\n          event.data.state === WsEvents.EnumTelemetrySubType.Unloaded\r\n        ) {\r\n          this.end({\r\n            type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n            mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n          },\r\n                   event.data.object,\r\n                   event.pageContext\r\n          )\r\n        }\r\n        if (\r\n          event.data.state === WsEvents.EnumTelemetrySubType.Interact\r\n        ) {\r\n          $t.interact(\r\n            {\r\n              type: event.data.edata.type,\r\n              subtype: event.data.edata.subType,\r\n              id: (event.data.edata && event.data.edata.id) ?\r\n                event.data.edata.id\r\n                : '',\r\n              pageid: event.pageContext && event.pageContext.pageId || '',\r\n            },\r\n            {\r\n              context: {\r\n                pdata: {\r\n                  ...this.pData,\r\n                  id: this.pData.id,\r\n                },\r\n                ...(event.pageContext && event.pageContext.module ? { env: event.pageContext.module } : null),\r\n              },\r\n              object: {\r\n                ...event.data.object,\r\n              },\r\n            })\r\n        }\r\n\r\n      })\r\n  }\r\n\r\n  addCustomListener() {\r\n    this.eventsSvc.chatbotEvents$\r\n      .pipe(\r\n        filter(\r\n          event =>\r\n            event &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry &&\r\n            event.data.eventSubType === WsEvents.EnumTelemetrySubType.Chatbot &&\r\n            event.data.mode &&\r\n            event.data,\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        if (event.data.state === WsEvents.EnumTelemetrySubType.Loaded) {\r\n          this.start(\r\n            {\r\n              type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n              mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n            },\r\n            {},\r\n            event.pageContext\r\n          )\r\n        }\r\n        if (\r\n          event.data.state === WsEvents.EnumTelemetrySubType.Unloaded\r\n        ) {\r\n          this.end({\r\n            type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n            mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n          },\r\n                   {},\r\n                   event.pageContext\r\n          )\r\n        }\r\n        if (\r\n          event.data.state === WsEvents.EnumTelemetrySubType.Interact\r\n        ) {\r\n          $t.interact(\r\n            {\r\n              type: event.data.edata.type,\r\n              subtype: event.data.edata.subType,\r\n              id: (event.data.edata && event.data.edata.id) ?\r\n                event.data.edata.id\r\n                : '',\r\n              pageid: event.pageContext && event.pageContext.pageId || '',\r\n            },\r\n            {\r\n              context: {\r\n                pdata: {\r\n                  ...this.pData,\r\n                  id: this.pData.id,\r\n                },\r\n                ...(event.pageContext && event.pageContext.module ? { env: event.pageContext.module } : null),\r\n              },\r\n              object: {\r\n                ...event.data.object,\r\n              },\r\n            })\r\n        }\r\n\r\n      })\r\n  }\r\n\r\n  addCustomImpressionListener() {\r\n    this.eventsSvc.events$\r\n      .pipe(\r\n        filter(\r\n          (event: WsEvents.WsEventTelemetryImpression) =>\r\n            event &&\r\n            event.data &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry &&\r\n            event.data.eventSubType === WsEvents.EnumTelemetrySubType.Impression,\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        try {\r\n          // console.log('event.data::', event.data)\r\n          this.impression(event.data)\r\n        } catch (e) {\r\n          // tslint:disable-next-line: no-console\r\n          console.log('Error in telemetry impression', e)\r\n        }\r\n      })\r\n  }\r\n\r\n  addTimeSpentListener() {\r\n    this.eventsSvc.events$\r\n      .pipe(\r\n        filter(\r\n          event =>\r\n            event &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry &&\r\n            event.data.type === WsEvents.WsTimeSpentType.Page &&\r\n            event.data.mode &&\r\n            event.data,\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        if (event.data.state === WsEvents.EnumTelemetrySubType.Loaded) {\r\n          this.start(\r\n            {\r\n              type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n              mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n            },\r\n            {},\r\n            event.pageContext\r\n          )\r\n        }\r\n        if (event.data.state === WsEvents.EnumTelemetrySubType.Unloaded) {\r\n          this.end({\r\n            type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n            mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n          },\r\n                   {},\r\n                   event.pageContext\r\n          )\r\n        }\r\n      })\r\n  }\r\n\r\n  addCustomEventListener() {\r\n\r\n    this.eventsSvc.events$\r\n      .pipe(\r\n        filter(\r\n          event =>\r\n            event &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        if (\r\n          event.data.state === WsEvents.EnumTelemetrySubType.Loaded &&\r\n          event.data.type !== WsEvents.WsTimeSpentType.Player\r\n        ) {\r\n          this.start(\r\n            {\r\n              type: event.data.type,\r\n              mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n            },\r\n            event.data.object,\r\n            event.pageContext\r\n          )\r\n        }\r\n        if (\r\n          event.data.state === WsEvents.EnumTelemetrySubType.Unloaded &&\r\n          event.data.type !== WsEvents.WsTimeSpentType.Player\r\n        ) {\r\n          this.end(\r\n            {\r\n              type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n              mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n            },\r\n            event.data.object,\r\n            event.pageContext\r\n          )\r\n        }\r\n      })\r\n  }\r\n  addPlayerListener() {\r\n    this.eventsSvc.events$\r\n      .pipe(\r\n        filter(\r\n          event =>\r\n            event &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry &&\r\n            event.data.type === WsEvents.WsTimeSpentType.Player &&\r\n            event.data.mode &&\r\n            event.data,\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        const content: NsContent.IContent | null = event.data.content\r\n        if (\r\n          event.data.state === WsEvents.EnumTelemetrySubType.Loaded &&\r\n          (!content ||\r\n            (content.isIframeSupported || '').toLowerCase() === 'maybe' ||\r\n            (content.isIframeSupported || '').toLowerCase() === 'yes' ||\r\n            (content.mimeType === 'application/pdf' || 'application/json'))\r\n        ) {\r\n          this.start(\r\n            {\r\n              type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n              mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n            },\r\n            event.data.object,\r\n            event.pageContext\r\n\r\n          )\r\n        }\r\n        if (\r\n          event.data.state === WsEvents.EnumTelemetrySubType.Unloaded &&\r\n          (!content ||\r\n            (content.isIframeSupported || '').toLowerCase() === 'maybe' ||\r\n            (content.isIframeSupported || '').toLowerCase() === 'yes' ||\r\n            (content.mimeType === 'application/pdf' || 'application/json'))\r\n        ) {\r\n          this.end(\r\n            {\r\n              type: event.data.type || WsEvents.WsTimeSpentType.Player,\r\n              mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,\r\n            },\r\n            event.data.object,\r\n            event.pageContext\r\n          )\r\n        }\r\n      })\r\n  }\r\n\r\n  addInteractListener() {\r\n    const data = this.getPageDetails()\r\n    this.triggerNPSUpdate(data.pageid)\r\n    this.eventsSvc.events$\r\n      .pipe(\r\n        filter(\r\n          (event: WsEvents.WsEventTelemetryInteract) =>\r\n            event &&\r\n            event.data &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry &&\r\n            event.data.eventSubType === WsEvents.EnumTelemetrySubType.Interact,\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        const page = this.getPageDetails()\r\n        if (typeof event.from === 'string' && this.externalApps[event.from]) {\r\n          const externalConfig = {\r\n            context: {\r\n              pdata: {\r\n                ...this.pData,\r\n                id: this.externalApps[event.from],\r\n              },\r\n            },\r\n          }\r\n          try {\r\n            $t.interact(event.data, externalConfig)\r\n          } catch (e) {\r\n            // tslint:disable-next-line: no-console\r\n            console.log('Error in telemetry interact', e)\r\n          }\r\n        } else {\r\n          // let interactid\r\n          // if (event.data.edata.type === 'goal') {\r\n          //   interactid = page.pageUrlParts[4]\r\n          // }\r\n          try {\r\n            $t.interact(\r\n              {\r\n                type: event.data.edata.type,\r\n                subtype: event.data.edata.subType,\r\n                // object: event.data.object,\r\n                id: (event.data.edata && event.data.edata.id) ?\r\n                  event.data.edata.id\r\n                  : '',\r\n                pageid: event.data.pageContext && event.data.pageContext.pageId || page.pageid,\r\n                ...(event.data.edata.target && { target: event.data.edata.target })\r\n              },\r\n              {\r\n                context: {\r\n                  pdata: {\r\n                    ...this.pData,\r\n                    id: this.pData.id,\r\n                  },\r\n                  ...(event.pageContext && event.pageContext.module ? { env: event.pageContext.module } : null),\r\n                },\r\n                object: {\r\n                  ...event.data.object,\r\n                },\r\n              })\r\n          } catch (e) {\r\n            // tslint:disable-next-line: no-console\r\n            console.log('Error in telemetry interact', e)\r\n          }\r\n        }\r\n      })\r\n  }\r\n\r\n  addFeedbackListener() {\r\n    this.eventsSvc.events$\r\n      .pipe(\r\n        filter(\r\n          (event: WsEvents.WsEventTelemetryFeedback) =>\r\n            event &&\r\n            event.data &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry &&\r\n            event.data.eventSubType === WsEvents.EnumTelemetrySubType.Feedback,\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        const page = this.getPageDetails()\r\n        try {\r\n          $t.feedback(\r\n            {\r\n              rating: event.data.object.rating || 0,\r\n              commentid: event.data.object.commentid || '',\r\n              commenttxt: event.data.object.commenttxt || '',\r\n              pageid: page.pageid,\r\n            },\r\n            {\r\n              context: {\r\n                pdata: {\r\n                  ...this.pData,\r\n                  id: this.pData.id,\r\n                },\r\n              },\r\n              object: {\r\n                id: event.data.object.contentId || event.data.object.id || '',\r\n                type: event.data.edata.type || '',\r\n                ver: `${(event.data.object.version || '1')}${''}`,\r\n                rollup: {},\r\n              },\r\n            })\r\n        } catch (e) {\r\n          // tslint:disable-next-line: no-console\r\n          console.log('Error in telemetry interact', e)\r\n        }\r\n      })\r\n  }\r\n\r\n  addHearbeatListener() {\r\n    this.eventsSvc.events$\r\n      .pipe(\r\n        filter(\r\n          (event: WsEvents.WsEventTelemetryHeartBeat) =>\r\n            event &&\r\n            event.data &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry &&\r\n            event.data.eventSubType === WsEvents.EnumTelemetrySubType.HeartBeat,\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        if (typeof event.from === 'string' && this.externalApps[event.from]) {\r\n          const externalConfig = {\r\n            context: {\r\n              pdata: {\r\n                ...this.pData,\r\n                id: this.externalApps[event.from],\r\n              },\r\n            },\r\n          }\r\n          try {\r\n            $t.heartbeat(event.data, externalConfig)\r\n          } catch (e) {\r\n            // tslint:disable-next-line: no-console\r\n            console.log('Error in telemetry heartbeat', e)\r\n          }\r\n        } else {\r\n          try {\r\n            $t.heartbeat(\r\n              {\r\n                type: event.data.type,\r\n                // subtype: event.data.eventSubType,\r\n                id: event.data.id,\r\n                // mimeType: event.data.mimeType,\r\n                // mode: event.data.mode,\r\n              },\r\n              {\r\n                context: {\r\n                  pdata: {\r\n                    ...this.pData,\r\n                    id: this.pData.id,\r\n                  },\r\n                },\r\n              })\r\n          } catch (e) {\r\n            // tslint:disable-next-line: no-console\r\n            console.log('Error in telemetry heartbeat', e)\r\n          }\r\n        }\r\n      })\r\n  }\r\n\r\n  addSearchListener() {\r\n    this.eventsSvc.events$\r\n      .pipe(\r\n        filter(\r\n          (event: WsEvents.WsEventTelemetrySearch) =>\r\n            event &&\r\n            event.data &&\r\n            event.eventType === WsEvents.WsEventType.Telemetry &&\r\n            event.data.eventSubType === WsEvents.EnumTelemetrySubType.Search,\r\n        ),\r\n      )\r\n      .subscribe(event => {\r\n        try {\r\n          $t.search(\r\n            {\r\n              query: event.data.query,\r\n              filters: event.data.filters,\r\n              size: event.data.size,\r\n            },\r\n            {\r\n              context: {\r\n                pdata: {\r\n                  ...this.pData,\r\n                  id: this.pData.id,\r\n                },\r\n              },\r\n            },\r\n          )\r\n        } catch (e) {\r\n          // tslint:disable-next-line: no-console\r\n          console.log('Error in telemetry search', e)\r\n        }\r\n      })\r\n  }\r\n\r\n  getPageDetails() {\r\n    const path = window.location.pathname.replace('/', '')\r\n    const url = path + window.location.search\r\n    let moduleValue = ''\r\n    if (path.includes('discussion-forum')) {\r\n      moduleValue = 'Discuss'\r\n    }\r\n    return {\r\n      pageid: path,\r\n      pageUrl: url,\r\n      pageUrlParts: path.split('/'),\r\n      refferUrl: this.previousUrl,\r\n      objectId: this.extractContentIdFromUrlParts(path.split('/')),\r\n      module: moduleValue,\r\n    }\r\n  }\r\n\r\n  extractContentIdFromUrlParts(urlParts: string[]) {\r\n    // TODO: pick toc and viewer url from some configuration\r\n    const tocIdx = urlParts.indexOf('toc')\r\n    const viewerIdx = urlParts.indexOf('viewer')\r\n\r\n    if (tocIdx === -1 && viewerIdx === -1) {\r\n      return null\r\n    }\r\n\r\n    if (tocIdx !== -1 && tocIdx < urlParts.length - 1) {\r\n      return urlParts[tocIdx + 1] // e.g. url /app/toc/<content_id>\r\n    }\r\n\r\n    if (viewerIdx !== -1 && viewerIdx < urlParts.length - 2) {\r\n      return urlParts[viewerIdx + 2] // e.g. url /app/viewer/<content_type>/<content_id>\r\n    }\r\n\r\n    return null\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { WidgetContentService } from './widget-content.service'\r\n// import { AuthKeycloakService } from './auth-keycloak.service'\r\nimport { ConfigurationsService } from './configurations.service'\r\nimport { WsEvents } from './event.model'\r\nimport { EventService } from './event.service'\r\nimport { TelemetryService } from './telemetry.service'\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class SubapplicationRespondService {\r\n  subAppname = ''\r\n  continueLearningData: any = null\r\n  contentWindowinfo: any\r\n  loaded = false\r\n  constructor(\r\n    private configSvc: ConfigurationsService,\r\n    private contentSvc: WidgetContentService,\r\n    // private keyCloakSvc: AuthKeycloakService,\r\n    private activatedRoute: ActivatedRoute,\r\n    private router: Router,\r\n    private eventSvc: EventService,\r\n    private teleSvc: TelemetryService,\r\n  ) {\r\n    this.changeContextrespond()\r\n    this.configSvc.prefChangeNotifier.subscribe(() => {\r\n      this.changeContextrespond()\r\n    })\r\n  }\r\n  loadedRespond(contentWindow: any, applicationName: string, id?: string) {\r\n    if (id && this.activatedRoute.snapshot.queryParams.viewMode && this.activatedRoute.snapshot.queryParams.viewMode === 'RESUME') {\r\n      this.continueLearningData = null\r\n      this.contentSvc.fetchContentHistory(id).subscribe(\r\n        data => {\r\n          this.continueLearningData = data.continueData\r\n          if (this.configSvc && this.configSvc.userProfile) {\r\n            const firstName = this.configSvc.userProfile.userName ?\r\n              this.configSvc.userProfile.userName.split(' ', 2)[0] : ''\r\n            const lastName = this.configSvc.userProfile.userName ?\r\n              this.configSvc.userProfile.userName.split(' ', 2)[1] : ''\r\n            const viewMode: string = this.activatedRoute.snapshot.queryParams.viewMode ?\r\n              this.activatedRoute.snapshot.queryParams.viewMode : ''\r\n            // const token = this.keyCloakSvc.token\r\n            const response = {\r\n              subApplicationName: applicationName,\r\n              requestId: 'LOADED',\r\n              parentContext: {\r\n                domainName: window.location.host,\r\n                url: this.router.url,\r\n                rootOrg: this.configSvc.rootOrg,\r\n                theme: this.configSvc.activeThemeObject ? {\r\n                  name: this.configSvc.activeThemeObject.themeName,\r\n                  ...this.configSvc.activeThemeObject.color,\r\n                } : '',\r\n                fontSize: this.configSvc.activeFontObject ? this.configSvc.activeFontObject.baseFontSize : '14px',\r\n                locale: (this.configSvc.userPreference && this.configSvc.userPreference.selectedLocale) || 'en',\r\n                darkMode: this.configSvc.isDarkMode,\r\n                subApplicationStartMode: viewMode.toUpperCase(),\r\n                user: {\r\n                  firstName,\r\n                  lastName,\r\n                  // token,\r\n                  userId: this.configSvc.userProfile.userId ? this.configSvc.userProfile.userId : '',\r\n                  roles: this.configSvc.userRoles ? Array.from(this.configSvc.userRoles) : [],\r\n                },\r\n                heartbeatFrequency: '200',\r\n              },\r\n              data: this.continueLearningData.data ? {\r\n                continueLearning: this.continueLearningData.data,\r\n              } : null,\r\n            }\r\n            contentWindow.postMessage(response, '*')\r\n            this.contentWindowinfo = contentWindow\r\n            this.loaded = true\r\n            this.subAppname = applicationName\r\n          }\r\n        })\r\n    } else {\r\n      if (this.configSvc && this.configSvc.userProfile) {\r\n        const firstName = this.configSvc.userProfile.userName ?\r\n          this.configSvc.userProfile.userName.split(' ', 2)[0] : ''\r\n        const lastName = this.configSvc.userProfile.userName ?\r\n          this.configSvc.userProfile.userName.split(' ', 2)[1] : ''\r\n        const viewMode: string = this.activatedRoute.snapshot.queryParams.viewMode ?\r\n          this.activatedRoute.snapshot.queryParams.viewMode : ''\r\n        // const token = this.keyCloakSvc.token\r\n        const response = {\r\n          subApplicationName: applicationName,\r\n          requestId: 'LOADED',\r\n          parentContext: {\r\n            domainName: window.location.host,\r\n            url: this.router.url,\r\n            rootOrg: this.configSvc.rootOrg,\r\n            theme: this.configSvc.activeThemeObject ? {\r\n              name: this.configSvc.activeThemeObject.themeName,\r\n              ...this.configSvc.activeThemeObject.color,\r\n            } : '',\r\n            fontSize: this.configSvc.activeFontObject ? this.configSvc.activeFontObject.baseFontSize : '14px',\r\n            locale: (this.configSvc.userPreference && this.configSvc.userPreference.selectedLocale) || 'en',\r\n            darkMode: this.configSvc.isDarkMode,\r\n            subApplicationStartMode: viewMode.toUpperCase(),\r\n            user: {\r\n              firstName,\r\n              lastName,\r\n              // token,\r\n              userId: this.configSvc.userProfile.userId ? this.configSvc.userProfile.userId : '',\r\n              roles: this.configSvc.userRoles ? Array.from(this.configSvc.userRoles) : [],\r\n            },\r\n            heartbeatFrequency: '200',\r\n          },\r\n          data: null,\r\n        }\r\n        contentWindow.postMessage(response, '*')\r\n        this.contentWindowinfo = contentWindow\r\n        this.loaded = true\r\n        this.subAppname = applicationName\r\n      }\r\n    }\r\n  }\r\n  continueLearningRespond(id: string, continueLearning: any) {\r\n    this.contentSvc.saveContinueLearning(\r\n      {\r\n        contextPathId: id,\r\n        resourceId: id,\r\n        data: JSON.stringify({ timestamp: Date.now(), data: continueLearning }),\r\n        dateAccessed: Date.now(),\r\n      },\r\n    )\r\n      .toPromise()\r\n      .catch()\r\n  }\r\n  telemetryEvents(tData: any) {\r\n    if (tData) {\r\n      switch (tData.eventId) {\r\n        case 'INTERACT':\r\n          this.eventSvc.dispatchEvent<WsEvents.IWsEventTelemetryInteract>({\r\n            eventType: WsEvents.WsEventType.Telemetry,\r\n            eventLogLevel: WsEvents.WsEventLogLevel.Warn,\r\n            data: {\r\n              ...tData.data,\r\n              eventSubType: WsEvents.EnumTelemetrySubType.Interact,\r\n            },\r\n            from: tData.subApplicationName,\r\n            to: 'Telemetry',\r\n          })\r\n          break\r\n        case 'HEARTBEAT':\r\n          this.eventSvc.dispatchEvent<WsEvents.IWsEventTelemetryHeartBeat>({\r\n            eventType: WsEvents.WsEventType.Telemetry,\r\n            eventLogLevel: WsEvents.WsEventLogLevel.Trace,\r\n            data: {\r\n              ...tData.data,\r\n              eventSubType: WsEvents.EnumTelemetrySubType.HeartBeat,\r\n            },\r\n            from: tData.subApplicationName,\r\n            to: 'Telemetry',\r\n          })\r\n          break\r\n        case 'IMPRESSION':\r\n          this.teleSvc.externalImpression(tData.data)\r\n          break\r\n        default:\r\n          break\r\n      }\r\n    }\r\n  }\r\n  unsubscribeResponse() {\r\n    this.subAppname = ''\r\n    this.continueLearningData = null\r\n    this.contentWindowinfo = null\r\n    this.loaded = false\r\n  }\r\n  changeContextrespond() {\r\n    if (this.loaded && this.contentWindowinfo && this.configSvc && this.configSvc.userProfile && this.subAppname) {\r\n      const firstName = this.configSvc.userProfile.userName ?\r\n        this.configSvc.userProfile.userName.split(' ', 2)[0] : ''\r\n      const lastName = this.configSvc.userProfile.userName ?\r\n        this.configSvc.userProfile.userName.split(' ', 2)[1] : ''\r\n      const viewMode: string = this.activatedRoute.snapshot.queryParams.viewMode ?\r\n        this.activatedRoute.snapshot.queryParams.viewMode : ''\r\n      // const token = this.keyCloakSvc.token\r\n      const response = {\r\n        subApplicationName: this.subAppname,\r\n        requestId: 'CONTEXT_CHANGE',\r\n        parentContext: {\r\n          domainName: window.location.host,\r\n          url: this.router.url,\r\n          rootOrg: this.configSvc.rootOrg,\r\n          theme: this.configSvc.activeThemeObject ? {\r\n            name: this.configSvc.activeThemeObject.themeName,\r\n            ...this.configSvc.activeThemeObject.color,\r\n          } : '',\r\n          fontSize: this.configSvc.activeFontObject ? this.configSvc.activeFontObject.baseFontSize : '14px',\r\n          locale: (this.configSvc.userPreference && this.configSvc.userPreference.selectedLocale) || 'en',\r\n          darkMode: this.configSvc.isDarkMode,\r\n          subApplicationStartMode: viewMode.toUpperCase(),\r\n          user: {\r\n            firstName,\r\n            lastName,\r\n            // token,\r\n            userId: this.configSvc.userProfile.userId ? this.configSvc.userProfile.userId : '',\r\n            roles: this.configSvc.userRoles ? Array.from(this.configSvc.userRoles) : [],\r\n          },\r\n          heartbeatFrequency: '200',\r\n        },\r\n      }\r\n      this.contentWindowinfo.postMessage(response, '*')\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { IUserPreference } from './user-preference.model'\r\nimport { ConfigurationsService } from './configurations.service'\r\nimport { debounceTime, retry, catchError } from 'rxjs/operators'\r\nimport { of } from 'rxjs'\r\nconst endpoints = {\r\n  userPref: '/apis/protected/v8/user/preference',\r\n}\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class UserPreferenceService {\r\n  // do changes in the backend and update the store\r\n\r\n  constructor(private http: HttpClient, private configurationSvc: ConfigurationsService) { }\r\n\r\n  initialize() {\r\n    this.configurationSvc.prefChangeNotifier\r\n      .pipe(debounceTime(250))\r\n      .subscribe((changedUserPref?: Partial<IUserPreference>) => {\r\n        if (this.configurationSvc.isAuthenticated) {\r\n          this.saveUserPreference(changedUserPref)\r\n        }\r\n      })\r\n  }\r\n\r\n  async fetchUserPreference(): Promise<IUserPreference> {\r\n    const pref = await this.http.get<IUserPreference>(endpoints.userPref).toPromise()\r\n    return pref\r\n  }\r\n\r\n  async saveUserPreference(changedUserPref?: Partial<IUserPreference>): Promise<boolean> {\r\n    try {\r\n      if (!changedUserPref) {\r\n        return false\r\n      }\r\n      const newUserPref: IUserPreference = {\r\n        ...this.configurationSvc.userPreference,\r\n        pinnedApps:\r\n          (changedUserPref && changedUserPref.pinnedApps) ||\r\n          (this.configurationSvc.userPreference &&\r\n            this.configurationSvc.userPreference.pinnedApps) ||\r\n          '',\r\n        isDarkMode: this.configurationSvc.isDarkMode,\r\n        isRTL: this.configurationSvc.isRTL,\r\n        selectedTheme:\r\n          (this.configurationSvc.activeThemeObject &&\r\n            this.configurationSvc.activeThemeObject.themeClass) ||\r\n          '',\r\n        selectedFont:\r\n          (this.configurationSvc.activeFontObject &&\r\n            this.configurationSvc.activeFontObject.fontClass) ||\r\n          '',\r\n        selectedLangGroup:\r\n          (this.configurationSvc.userPreference &&\r\n            this.configurationSvc.userPreference.selectedLangGroup) ||\r\n          '',\r\n        selectedLocale:\r\n          (this.configurationSvc.userPreference &&\r\n            this.configurationSvc.userPreference.selectedLocale) ||\r\n          '',\r\n        colorPallet:\r\n          (this.configurationSvc.userPreference &&\r\n            this.configurationSvc.userPreference.colorPallet) ||\r\n          [],\r\n        defaultCardType:\r\n          (this.configurationSvc.userPreference &&\r\n            this.configurationSvc.userPreference.defaultCardType) ||\r\n          '',\r\n        completedActivity:\r\n          (this.configurationSvc.userPreference &&\r\n            this.configurationSvc.userPreference.completedActivity) ||\r\n          [],\r\n        ...(changedUserPref || {}),\r\n        completedTour: this.configurationSvc.completedTour,\r\n        profileSettings:\r\n          (this.configurationSvc.userPreference &&\r\n            this.configurationSvc.userPreference.profileSettings) ||\r\n          this.configurationSvc.profileSettings,\r\n      }\r\n      const oldUserPref: IUserPreference | null = this.configurationSvc.userPreference\r\n      this.configurationSvc.userPreference = newUserPref\r\n      await this.http\r\n        .put(endpoints.userPref, newUserPref)\r\n        .pipe(\r\n          retry(3),\r\n          catchError(err => {\r\n            this.configurationSvc.userPreference = oldUserPref\r\n            return of(err)\r\n          }),\r\n        )\r\n        .toPromise()\r\n      return true\r\n    } catch (err) {\r\n      return false\r\n    }\r\n  }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\nimport { Injectable } from '@angular/core'\nimport { TranslateService } from '@ngx-translate/core'\nimport { BehaviorSubject } from 'rxjs'\nimport { ConfigurationsService } from './configurations.service'\n\n@Injectable({\n    providedIn: 'root',\n})\n\nexport class MultilingualTranslationsService {\n    selectedLang = ''\n    // website lang change\n    languageSelected = new BehaviorSubject(true)\n    languageSelectedObservable = this.languageSelected.asObservable()\n    editProfileDetails = '/apis/proxies/v8/user/v1/extPatch'\n\n    constructor(private translate: TranslateService, private http: HttpClient, private configSvc: ConfigurationsService) {\n    //    this.getLanguage()\n    }\n\n    getLanguage() {\n        if (this.configSvc.unMappedUser) {\n            if (this.configSvc.unMappedUser.profileDetails &&\n                this.configSvc.unMappedUser.profileDetails.additionalProperties &&\n                this.configSvc.unMappedUser.profileDetails.additionalProperties.webPortalLang) {\n              const lang = this.configSvc.unMappedUser.profileDetails.additionalProperties.webPortalLang\n              this.translate.use(lang)\n              localStorage.setItem('websiteLanguage', lang)\n            } else {\n              if (localStorage.getItem('websiteLanguage')) {\n                // this.translate.setDefaultLang('en')\n                let lang = JSON.stringify(localStorage.getItem('websiteLanguage'))\n                lang = lang.replace(/\\\"/g, '')\n                this.translate.use(lang)\n              } else {\n                this.translate.setDefaultLang('en')\n                localStorage.setItem('websiteLanguage', 'en')\n              }\n            }\n        } else {\n            if (localStorage.getItem('websiteLanguage')) {\n                // this.translate.setDefaultLang('en')\n                let lang = JSON.stringify(localStorage.getItem('websiteLanguage'))\n                lang = lang.replace(/\\\"/g, '')\n                this.translate.use(lang)\n            }\n        }\n    }\n\n    translateLabelWithoutspace(label: string, type: any, subtype: any) {\n        let nlabel = label\n        nlabel = nlabel && nlabel.replace(/\\s/g, '')\n        if (subtype) {\n            // tslint:disable-next-line: prefer-template\n            const translationKey = type + '.' +  nlabel + subtype\n            return this.translate.instant(translationKey)\n        }\n        // tslint:disable-next-line: prefer-template\n        const translationKeyn = type + '.' +  nlabel\n        return this.translate.instant(translationKeyn)\n    }\n\n    translateLabel(label: string, type: any, subtype: any) {\n        let nlabel = label\n        nlabel = nlabel.toLowerCase()\n        const sl = nlabel.split(' ')\n        sl.forEach((w: any, index: any) => {\n            if (index !== 0) {\n                sl[index] = w[0].toUpperCase() + w.slice(1)\n            }\n        })\n        nlabel = sl.join('')\n        nlabel = nlabel.replace(/\\s/g, '')\n        if (subtype) {\n            // tslint:disable-next-line: prefer-template\n          const translationKey = type + '.' +  nlabel + subtype\n          return this.translate.instant(translationKey)\n        }\n        // tslint:disable-next-line: prefer-template\n        const translationKeyn = type + '.' +  nlabel\n        return this.translate.instant(translationKeyn)\n    }\n\n    translateActualLabel(label: string, type: any, subtype: any) {\n        let nlabel = label\n        const sl = nlabel.split(' ')\n        sl.forEach((w: any, index: any) => {\n            if (index !== 0) {\n                sl[index] = w[0].toUpperCase() + w.slice(1)\n            }\n        })\n        nlabel = sl.join('')\n        nlabel = nlabel.replace(/\\s/g, '')\n        if (subtype) {\n            // tslint:disable-next-line: prefer-template\n          const translationKey = type + '.' +  nlabel + subtype\n          return this.translate.instant(translationKey)\n        }\n        // tslint:disable-next-line: prefer-template\n        const translationKeyn = type + '.' +  nlabel\n        return this.translate.instant(translationKeyn)\n    }\n\n    editProfileDetailsAPI(data: any) {\n        return this.http.post<any>(this.editProfileDetails, data)\n    }\n\n    updatelanguageSelected(state: any, lang: any, userid: any) {\n        this.languageSelected.next(state)\n        this.translate.use(lang)\n        this.selectedLang = lang\n\n       if (userid) {\n        const reqUpdates = {\n            request: {\n              userId: userid,\n              profileDetails: {\n                additionalProperties: {\n                    webPortalLang: this.selectedLang,\n                },\n              },\n            },\n        }\n        this.editProfileDetailsAPI(reqUpdates).subscribe()\n       }\n    }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ConfigurationsService } from '../services/configurations.service';\nimport { Observable } from 'rxjs';\nimport { NsContent } from '../services/widget-content.model';\nimport { map } from 'rxjs/operators';\n\n\n\n\nconst PROXIES_V8 = '/apis/proxies/v8';\nconst API_END_POINTS = {\n  ENROLL_CONTENT_DATA: `${PROXIES_V8}/learner/course/v4/user/enrollment/details`\n};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class WidgetEnrollService {\n\n  constructor(\n        private http: HttpClient,\n        private configSvc: ConfigurationsService\n  ) { }\n\n  fetchEnrollContentData(payload: any): Observable<NsContent.IContent[]> {\n    let userId = this.configSvc.userProfile && this.configSvc.userProfile.userId\n      return this.http.post<NsContent.IContent[]>(\n        `${API_END_POINTS.ENROLL_CONTENT_DATA}/${userId}`, payload\n      )\n  }\n  fetchInternalEnrollmentData(userId: string , payload: any) {\n    return this.http.post(`apis/proxies/v8/learner/course/v4/user/enrollment/list/${userId}`, payload)\n  }\n\nfetchExternalEnrollmentData(payload: any) {\n  return this.http.post(`apis/proxies/v8/cios-enroll/v1/courselist/byuserid`, payload).pipe(map((extRes: any) => {\n    if (extRes && extRes?.result && extRes?.result?.courses) {\n      extRes?.result?.courses?.forEach((ele: any) => {\n        ele['completionPercentage'] = ele['completionpercentage']\n        if (ele?.content) {\n          ele['content']['issuedCertificates'] = ele['issued_certificates'] || []\n        }\n        ele['lastContentAccessTime'] = ele?.content?.lastUpdatedOn ? new Date(ele.content.lastUpdatedOn).getTime() : ''\n     if(ele?.content){\n            ele['content']['organisation'] = ele?.content && ele?.content?.contentPartner && ele?.content?.contentPartner?.contentPartnerName ? [ele?.content?.contentPartner?.contentPartnerName]: []\n            ele['content']['completionStatus'] = ele['completionpercentage']< 100 ? 1: 2\n            ele['content']['creatorLogo'] = ele['content']['contentPartner']['link']\n\n          }\n      })\n    }\n    return extRes\n  }))\n}\n\n  fetchEventsEnrollmentData(userId: string , payload: any) {\n    return this.http.post(`apis/proxies/v8/user/events/list/${userId}`, payload)\n  }\n\n  fetchEnrollStats(userId: any): Observable<NsContent.IContent[]> {\n      return this.http.get<NsContent.IContent[]>(\n        `apis/proxies/v8/learner/course/v4/user/enrollment/summary/${userId}`\n      )\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DataTransferService {\n\n  private enrollData: any;\n\n  setEnrollData(data: any) {\n    this.enrollData = data;\n  }\n  getEnrollData() {\n    return this.enrollData;\n  }\n  clearEnrollData() {\n    this.enrollData = null;\n  }\n  constructor() { }\n}\n","import { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { Observable, Subject } from 'rxjs'\nimport { map, retry } from 'rxjs/operators'\nimport * as _ from 'lodash'\nimport { Router } from '@angular/router'\nimport moment from 'moment'\nimport { NsContent } from './widget-content.model'\nconst API_END_POINTS = {\n  NOTIFICATIONS_COUNT: `apis/proxies/v8/v1/notifications/unread/count`,\n  RESET_NOTIFICATIONS_COUNT: `apis/proxies/v8/v1/notifications/reset/unread/count`,\n  CONTENT_READ: (contentId: any) => `/apis/proxies/v8/action/content/v3/read/${contentId}`,\n  CONNECTION_REQUEST: (pageNo: any, pageSize: any) => `apis/protected/v8/connections/v2/connections/requests/received?pageNo=${pageNo}&pageSize=${pageSize}`,\n}\n\n@Injectable({\n  providedIn: 'root',\n})\n\nexport class NotificationsService {\n  closeDialogPop = new Subject()\n  nofificationsCount = new Subject()\n  constructor(private http: HttpClient, private router: Router,) { }\n\n  getNotificationsData(): Observable<any> {\n    return this.http.get(API_END_POINTS.NOTIFICATIONS_COUNT)\n  }\n\n  resetNotificationsCount(): Observable<any> {\n    return this.http.get(API_END_POINTS.RESET_NOTIFICATIONS_COUNT, {})\n  }\n\n  getContentData(contentId: string): Observable<any> {\n    return this.http.get<any>(`${API_END_POINTS.CONTENT_READ(contentId)}`).pipe(\n      map((data: any) => {\n        return data.result.content\n      }),\n      retry(1))\n  }\n\n  handleReviewStatus(res: any, notification: any, roles: string[], snackBar: any): void {\n    switch (res.reviewStatus) {\n      case 'InReview': {\n        if (roles.includes('CONTENT_REVIEWER')) {\n          if (res.courseCategory === NsContent.ECourseCategory.MULTILINGUAL_COURSE) {\n            const baseContent: any = Object.values(res.languageMapV1 || {}).find((item: any) => item.isBaseLang)\n            this.router.navigate(['/author/editor/multilingual', 'edit', baseContent.id], {\n              queryParams: {\n                langEditId: res.identifier\n              }\n            })\n          } else {\n            this.router.navigate([`/author/editor/${notification.message.data.id}/collectionV2`], {\n              queryParams: {\n                preview: true, editMode: true,\n                status: 'Review',\n                reviewStatus: res.reviewStatus\n              }\n            })\n          }\n        } else {\n          snackBar.open(\"You are not authorized to view this content.\")\n        }\n        break\n      } case 'Reviewed': {\n        if (roles.includes('CONTENT_PUBLISHER')) {\n          if (res.courseCategory === NsContent.ECourseCategory.MULTILINGUAL_COURSE) {\n            const baseContent: any = Object.values(res.languageMapV1 || {}).find((item: any) => item.isBaseLang)\n            this.router.navigate(['/author/editor/multilingual', 'edit', baseContent.id], {\n              queryParams: {\n                langEditId: res.identifier\n              }\n            })\n          } else {\n            this.router.navigate([`/author/editor/${notification.message.data.id}/collectionV2`])\n          }\n        } else {\n          snackBar.open(\"You are not authorized to view this content.\")\n        }\n        break\n      }\n    }\n  }\n\n  handleEventRedirection(notification: any, environment: any): void {\n    if (notification.sub_category === 'EVENT_PUBLISHED') {\n      let url = `${environment.portalsForNotifications.learner}/app/event-hub/home/${notification.message.data.id}`\n      window.open(url, '_blank')\n    } else if (notification.sub_category === 'EVENT_ENROLLED') {\n      let url = `${environment.portalsForNotifications.mdo}/app/home/events`\n      window.open(url, '_blank')\n    }\n  }\n\n  handleDiscussionRedirection(notification: any, environment: any, roles: any[]): void {\n    if (notification.sub_category === 'LEARN_DISCUSSION_POST_COMMENT' || notification.sub_category === 'LEARN_DISCUSSION_POST_REPLY') {\n      if (roles.includes('CONTENT_CREATOR')) {\n        this.router.navigate([`/author/content-detail/${notification.message.data.id}/overview-v2`],\n          {\n            queryParams: {\n              preview: true,\n              editMode: true,\n              commentId: notification.message.data.commentId\n            }\n          }\n        )\n      } else {\n        let url = `${environment.portalsForNotifications.learner}/app/toc/${notification.message.data.id}?commentId=${notification.message.data.commentId}`\n        window.open(url, '_blank')\n      }\n    } else {\n      let url = `${environment.portalsForNotifications.learner}/app/discussion-forum-v2/community/${notification.message.data.communityId}/${notification.message.data.discussionId}`\n      window.open(url, '_blank')\n    }\n  }\n\n  getMyRequests(): Observable<any> {\n    return this.http.get<any>(`${API_END_POINTS.CONNECTION_REQUEST(0, 100)}`).pipe(\n      map((data: any) => {\n        return data.result.data\n      }),\n      retry(1))\n  }\n\n  handleNetworkRedirection(notification: any, environment: any, snackBar: any): void {\n    if (notification.sub_category === 'REJECTED_CONNECTION_REQUEST') {\n      snackBar.open('This request has been resolved or is no longer available.')\n    } else if (notification.sub_category === 'SEND_CONNECTION_REQUEST') {\n      this.getMyRequests().subscribe((res: any) => {\n        if (res && res.length) {\n          const connection = res.find((item: any) => item.userId === notification.message.data.id)\n          if (connection) {\n            let url = `${environment.portalsForNotifications.learner}/app/network-v2/connections`\n            window.open(url, '_blank')\n          } else {\n            snackBar.open('This request has been resolved or is no longer available.')\n          }\n        } else {\n          snackBar.open('This request has been resolved or is no longer available.')\n        }\n      })\n    } else {\n      let url = `${environment.portalsForNotifications.learner}/app/network-v2/connections`\n      window.open(url, '_blank')\n    }\n  }\n\n  handleTocRedirection(notification: any, environment: any, snackBar: any): void {\n    if (notification.sub_category === 'CONTENT_RETIRE') {\n      if (notification.message.data.retiredDate) {\n        const retireOn = moment(notification.message.data.retiredDate).format('MMMM D, YYYY')\n        const today = moment().format('MMMM D, YYYY')\n        if (moment(retireOn).isSameOrAfter(today)) {\n          let url = `${environment.portalsForNotifications.learner}/app/toc/${notification.message.data.id}`\n          window.open(url, '_blank')\n        } else {\n          snackBar.open(`This content is scheduled to be retired on ${retireOn}. You can not access it now.`)\n        }\n      } else {\n        snackBar.open('Something went wrong. Please try again later.')\n      }\n    } else if (notification.sub_category === 'CONTENT_RETIRED') {\n      snackBar.open(`This content is retired. You can not access it now.`)\n    } else {\n      let url = `${environment.portalsForNotifications.learner}/app/toc/${notification.message.data.id}`\n      window.open(url, '_blank')\n    }\n  }\n\n  handleRedirection(notification: any, environment: any, roles: any[], snackBar: any): void {\n    if (notification?.category?.includes('CONTENT')) {\n      if (['RETIRE_SCHEDULED', 'RETIRE_APPROVED', 'RETIRE_REJECTED'].includes(notification.sub_category)) {\n        this.router.navigate([`author/cbp/me`],\n          {\n            queryParams: { status: 'live' }\n          }\n        )\n      } else {\n        this.getContentData(notification.message.data.id).subscribe((res: any) => {\n          if (res) {\n            if (res.primaryCategory === 'Learning Resource' &&\n              res.resourceCategory !== 'Learning Resource') {\n              localStorage.setItem('isStandaloneResource', 'true')\n            } else {\n              localStorage.setItem('isStandaloneResource', 'false')\n            }\n            if (res.status === 'Live') {\n              if (notification.sub_category === 'BP_ASSIGNMENT_SUBMIT' || notification.sub_category === 'BP_ADD_INSTRUCTOR') {\n                this.router.navigate([`/author/content-detail/${notification.message.data.id}/batches/${notification.message.data.batchId}/assignments`])\n              } else {\n                this.router.navigate([`/author/content-detail/${notification.message.data.id}/overview-v2`])\n              }\n            } else if (res.status === 'Draft') {\n              if (roles.includes('CONTENT_CREATOR')) {\n                this.router.navigate([`/author/editor/${notification.message.data.id}/collectionV2`])\n              } else {\n                snackBar.open('You are not authorized to view this content.')\n              }\n            } else if (res.status === 'Review') {\n              this.handleReviewStatus(res, notification, roles, snackBar)\n            } else if (res.status === 'Retired') {\n              snackBar.open('This content is retired.')\n            }\n          } else {\n            snackBar.open('Something went wrong')\n          }\n        })\n      }\n\n    } else if (notification.category === 'LEARN') {\n      this.handleTocRedirection(notification, environment, snackBar)\n    } else if (notification.category === 'EVENT') {\n      this.handleEventRedirection(notification, environment)\n    } else if (notification.category === 'DISCUSSION') {\n      this.handleDiscussionRedirection(notification, environment, roles)\n    } else if (notification.category === 'NETWORK') {\n      this.handleNetworkRedirection(notification, environment, snackBar)\n    } else {\n      snackBar.open('Something went wrong')\n    }\n  }\n\n\n}\n","import { DatePipe } from '@angular/common'\nimport { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n  name: 'custumDateSortingPipe',\n})\nexport class CustumDateSortingPipePipe implements PipeTransform {\n\n  transform(value: any) {\n    // tslint:disable-next-line:no-parameter-reassignment\n    const datePipe = new DatePipe('en-US')\n    // tslint:disable-next-line:no-parameter-reassignment\n    value = datePipe.transform(value, 'MMM dd, yyyy H:mm')\n    return value\n  }\n\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { CustumDateSortingPipePipe } from './custum-date-sorting-pipe.pipe'\n\n@NgModule({\n  declarations: [CustumDateSortingPipePipe],\n  imports: [\n    CommonModule,\n  ],\n  exports: [CustumDateSortingPipePipe],\n})\nexport class CustumdateSortingModule { }\n","import { Pipe, PipeTransform } from '@angular/core'\nimport { orderBy } from 'lodash'\n\n@Pipe({\n  name: 'acsendingOrder',\n})\nexport class AcsendingOrderPipe implements PipeTransform {\n\n  transform(value: any[], order: any = '', column: string = ''): any[] {\n    if (!value || order === '' || !order) { return value } // no array\n    if (!column || column === '') {\n      // const sorted = this.sortOnCaseSensitivity(value, caseInsensitive)\n      if (order === 'asc') { return value.sort() }\n      return value.sort().reverse()\n    } // sort 1d array\n    if (value.length <= 1) { return value } // array with only one item\n    return orderBy(value, [column], [order])\n  }\n\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { AcsendingOrderPipe } from './acsending-order.pipe'\n\n@NgModule({\n  declarations: [AcsendingOrderPipe],\n  imports: [\n    CommonModule,\n  ],\n  exports: [AcsendingOrderPipe],\n})\nexport class PipeAcsendingOrderModule { }\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n  name: 'pipeContentType',\n})\nexport class PipeContentTypePipe implements PipeTransform {\n  transform(value: any): string {\n    if (value) {\n      switch (value) {\n        case 'learning pathway': // depericated\n        case 'Learning Pathway': // depericated\n        case 'Program':\n          return 'Program'\n        case 'course':\n        case 'Course':\n          return 'Course'\n        case 'collection':\n        case 'Collection':\n        case 'CourseUnit':\n          return 'Module'\n        case 'resource':\n        case 'Resource':\n          return 'Resource'\n        case 'certification':\n        case 'Certification':\n          return 'Certification'\n        default:\n          return value.charAt(0).toUpperCase() + value.substr(1).toLowerCase()\n      }\n    }\n    return ''\n  }\n\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { PipeContentTypePipe } from './pipe-content-type.pipe'\n\n@NgModule({\n  declarations: [PipeContentTypePipe],\n  imports: [\n    CommonModule,\n  ],\n  exports: [PipeContentTypePipe],\n})\nexport class PipeContentTypeModule { }\n"],"names":["i1","MAT_DIALOG_DATA","i5","MatButtonModule","MatDialogModule","MatCardModule","MatTooltipModule","MatSliderModule","i2","i3","MatProgressSpinnerModule","_","i1.UtilityService","i1.EventService","i4","i1.ConfigurationsService","storageKey","storage","i1.LoggerService","i2.AuthKeycloakService","i3.ConfigurationsService","i4.UtilityService","i6","i7","i2.ConfigurationsService","i3.UtilityService","API_END_POINTS","i3.LoggerService","i5.NPSGridService","i2.WidgetContentService","i4.EventService","i5.TelemetryService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqBa,qBAAqB,CAAA;AAEhC,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAOpC,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAA;QAEf,IAAO,CAAA,OAAA,GAAG,EAAE,CAAA;QACZ,IAAO,CAAA,OAAA,GAAG,uBAAuB,CAAA;QACjC,IAAQ,CAAA,QAAA,GAAG,uBAAuB,CAAA;AAClC,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAEnD,IAAS,CAAA,SAAA,GAAuB,IAAI,CAAA;QACpC,IAAY,CAAA,YAAA,GAAuB,IAAI,CAAA;QACvC,IAAU,CAAA,UAAA,GAAuB,IAAI,CAAA;QACrC,IAAkB,CAAA,kBAAA,GAAuB,IAAI,CAAA;QAC7C,IAAiB,CAAA,iBAAA,GAAuB,IAAI,CAAA;QAC5C,IAAc,CAAA,cAAA,GAAoC,IAAI,CAAA;QACtD,IAAU,CAAA,UAAA,GAAoC,IAAI,CAAA;QAClD,IAAO,CAAA,OAAA,GAAkB,IAAI,CAAA;QAE7B,IAAG,CAAA,GAAA,GAAoB,IAAI,CAAA;QAC3B,IAAS,CAAA,SAAA,GAAkB,EAAE,CAAA;QAC7B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAA;QACpB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAA;QACtB,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAA;QAC5B,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAA;QACf,IAAc,CAAA,cAAA,GAA2B,IAAI,CAAA;QAC7C,IAAW,CAAA,WAAA,GAA+B,IAAI,CAAA;QAC9C,IAAa,CAAA,aAAA,GAA+B,IAAI,CAAA;QAChD,IAAiB,CAAA,iBAAA,GAAqC,IAAI,CAAA;QAG1D,IAAe,CAAA,eAAA,GAAG,KAAK,CAAA;QACvB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAA;QAOjB,IAAU,CAAA,UAAA,GAAG,IAAI,eAAe,CAAc,IAAI,GAAG,EAAE,CAAC,CAAA;AAGxD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,aAAa,CAA2B,CAAC,CAAC,CAAA;AACnE,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,aAAa,EAAW,CAAA;AAChD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,aAAa,CAAU,CAAC,CAAC,CAAA;AAE1C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;AAClD,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAA;AAE3D,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;AAC3C,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAA;QAG/D,IAAoB,CAAA,oBAAA,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;AAC/D,QAAA,IAAA,CAAA,+BAA+B,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAA;AAE1E,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,OAAO,EAAE,CAAA;QAGvC,IAAiB,CAAA,iBAAA,GAAmC,IAAI,CAAA;QACxD,IAAgB,CAAA,gBAAA,GAAsC,IAAI,CAAA;QAC1D,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAClB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAA;QACzB,IAAK,CAAA,KAAA,GAAG,KAAK,CAAA;QACb,IAAY,CAAA,YAAA,GAA0C,IAAI,CAAA;QAC1D,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAA;QACtB,IAAiB,CAAA,iBAAA,GAAoB,IAAI,CAAA;QACzC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAA;QACrB,IAAe,CAAA,eAAA,GAAG,CAAC,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAA;AAEtE,QAAA,IAAA,CAAA,aAAa,GAAmC;AAC9C,YAAA,KAAK,EAAE,SAAS;SACjB,CAAA;AACD,QAAA,IAAA,CAAA,UAAU,GAAmC;AAC3C,YAAA,KAAK,EAAE,SAAS;SACjB,CAAA;QACD,IAAmB,CAAA,mBAAA,GAAiD,IAAI,CAAA;QAQxE,IAAW,CAAA,WAAA,GAAuC,IAAI,CAAA;QACtD,IAAW,CAAA,WAAA,GAAQ,IAAI,CAAA;QAIvB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAA;QACZ,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAA;QACvB,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAA;QAC1B,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAA;AAEtB,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,OAAO,EAAE,CAAA;AACpC,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,OAAO,EAAE,CAAA;QAMtC,IAAY,CAAA,YAAA,GAAQ,IAAI,CAAA;QAEhB,IAAgB,CAAA,gBAAA,GAA2B,IAAI,CAAA;AAEvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,MAAM,CAAC,8CAA8C,CAAC,CAAA;AAC1E,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,MAAM,CAAC,mDAAmD,CAAC,CAAA;QACzF,IAAmB,CAAA,mBAAA,GAAG,oDAAoD,CAAA;AAC1E,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,MAAM,CAAC,+CAA+C,CAAC,CAAA;AAa/F,QAAA,IAAA,CAAA,iBAAiB,GAA4B,IAAI,eAAe,CAAC,EAAE,CAAC,CAAA;AAC5E,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAA;KAxHlE;AA2GD,IAAA,mBAAmB,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC/B;AAED,IAAA,qBAAqB,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACjC;AAED,IAAA,0BAA0B,CAAC,KAAU,EAAA;AACnC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACtC;AAID,IAAA,aAAa,CAAC,EAAU,EAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KAChC;AAOD,IAAA,WAAW,CAAC,WAAmB,EAAA;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;AAC/D,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1E,SAAA;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC/B,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAC/D,CAAA;KACF;IAKO,qBAAqB,GAAA;QAC3B,MAAM,GAAG,GAAG,oBAAoB,CAAA;AAChC,QAAA,MAAM,WAAW,GAAQ;AACvB,YAAA,SAAS,EAAE;AACT,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,SAAS,EAAE,sBAAsB;AACjC,gBAAA,QAAQ,EAAE,oBAAoB;AAC9B,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,WAAW,EAAE,GAAG;AACjB,aAAA;SACF,CAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,CAC/C,GAAG,CAAC,CAAC,IAAS,KAAI;AAChB,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAA;AAC3D,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;AAC5B,YAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;SACvB,CAAC,CACH,CAAA;KACF;IAOO,cAAc,CAAC,IAAS,EAAE,WAAmB,EAAA;QACnD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,WAAW,EAAE;YACnD,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;AACtC,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;+GAzLU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCZY,YAAY,CAAA;AAEvB,IAAA,WAAA,CACU,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAGzC,IAAS,CAAA,SAAA,GAAwB,IAAI,CAAC,kBAAkB;AAC5D,aAAA,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAoB,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;QAC5C,IAAW,CAAA,WAAA,GAAwB,IAAI,CAAC,kBAAkB;aAC9D,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AAChD,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAoB,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;KAP9C;+GAJM,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCYY,kBAAkB,CAAA;IAwB7B,WACU,CAAA,SAA2C,EAC3C,SAAgC,EAChC,QAAqB,EACrB,QAAsB,EACL,IAAkB,EAAA;QAJnC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkC;QAC3C,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;QAChC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;QACrB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAc;AA1BtB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAQ,CAAA;QACzC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAA;QACnB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAA;QAG3B,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAA;QACzB,IAAK,CAAA,KAAA,GAAQ,EAAE,CAAA;QACf,IAAM,CAAA,MAAA,GAAQ,EAAE,CAAA;QAGhB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAA;QACzB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAA;QACvB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAA;QACtB,IAAmB,CAAA,mBAAA,GAAQ,KAAK,CAAA;QAChC,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAA;QACb,IAAc,CAAA,cAAA,GAAG,CAAC,CAAA;QAClB,IAAS,CAAA,SAAA,GAAmB,EAAE,CAAA;QAC9B,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAElB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;QAChB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAA;AAShB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;AAChC,SAAA;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAA;AACnC,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAA;AAC5B,aAAA;YACD,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAA;AAC1B,aAAA;AACF,SAAA;KAEF;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAiB,KAAI;AACtD,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;YACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AACjC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AACjC,aAAA;AACH,SAAC,CAAC,CAAA;KAEH;AAGD,IAAA,kBAAkB,CAAC,MAAW,EAAA;QAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc;AAC/C,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAA;KAC1D;AAGD,IAAA,YAAY,CAAC,KAAwB,EAAA;AAEnC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAA;QACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AACjE,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAA;AACjC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAA;KAEhC;AAED,IAAA,YAAY,CAAC,OAAe,EAAA;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;AAC/B,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CAAA;KACH;IACD,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAA;KACjC;IAGD,sBAAsB,GAAA;AACpB,QAAA,MAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAA;AAC3B,QAAA,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAChC,QAAA,EAAE,CAAC,MAAM,GAAG,MAAK;AACf,YAAA,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;AACvB,YAAA,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,MAAgB,CAAA;AAC7B,YAAA,GAAG,CAAC,MAAM,GAAG,MAAK;AAChB,gBAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;AACtB,gBAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;AACxB,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,oBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE;AACpE,wBAAA,IAAI,CAAC,YAAY,CAAC,iFAAiF,CAAC,CAAA;wBACpG,OAAM;AACP,qBAAA;AACD,oBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;AAChE,wBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;AAChC,qBAAA;AACF,iBAAA;AACH,aAAC,CAAA;AAEH,SAAC,CAAA;KAEF;AAED,IAAA,iBAAiB,CAAC,GAAW,EAAA;QAG3B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAEnC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;AAE/B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QAE9B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;AACnD,QAAA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;AAEnC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClD,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AACrC,SAAA;AAED,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QACpD,MAAM,CAAC,GAAQ,IAAI,CAAA;AAEnB,QAAA,CAAC,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAA;AAC/B,QAAA,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAA;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;AACpE,QAAA,OAAO,IAAI,CAAA;KAEZ;IAEO,eAAe,GAAA;AACrB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;AACrC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QACrC,IAAI,CAAC,SAAS,GAAG;YACf,GAAG,IAAI,CAAC,SAAS;AACjB,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,KAAK,EAAE,QAAQ;SAChB,CAAA;KACF;IAED,UAAU,GAAA;QACR,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAA;KACvB;IAED,WAAW,GAAA;QACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAA;KACvB;IAED,cAAc,GAAA;QACZ,IAAI,CAAC,SAAS,GAAG;YACf,GAAG,IAAI,CAAC,SAAS;AACjB,YAAA,KAAK,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;SAC7B,CAAA;KACF;AAED,IAAA,IAAI,CAAC,KAAU,EAAA;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACvB,IAAI,CAAC,SAAS,GAAG;YACf,GAAG,IAAI,CAAC,SAAS;YACjB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAA;KACF;IAGD,aAAa,GAAA;QACX,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;KACzC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;KACpB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;KACvB;AA1LU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kJA6BnBC,sBAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA7Bd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,sFCnB/B,g9PAmJA,EAAA,MAAA,EAAA,CAAA,+oDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhIa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,g9PAAA,EAAA,MAAA,EAAA,CAAA,+oDAAA,CAAA,EAAA,CAAA;;0BAiC5B,MAAM;2BAACC,sBAAe,CAAA;4CA3Bf,IAAI,EAAA,CAAA;sBAAb,MAAM;;;MEOI,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAf,eAAe,EAAA,YAAA,EAAA,CAfT,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAE7B,YAAY;YACZ,kBAAkB;YAClB,aAAa;YACbE,qBAAe;YACfC,qBAAe;YACf,gBAAgB;YAChBA,qBAAe;YACfC,mBAAa;YACbC,sBAAgB;AAChB,YAAAC,qBAAe,aAET,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAbpB,YAAY;YACZ,kBAAkB;YAClB,aAAa;YACbJ,qBAAe;YACfC,qBAAe;YACf,gBAAgB;YAChBA,qBAAe;YACfC,mBAAa;YACbC,sBAAgB;YAChBC,qBAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAhB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,kBAAkB;wBAClB,aAAa;wBACbJ,qBAAe;wBACfC,qBAAe;wBACf,gBAAgB;wBAChBA,qBAAe;wBACfC,mBAAa;wBACbC,sBAAgB;wBAChBC,qBAAe;AAClB,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAChC,iBAAA,CAAA;;;IC3BW,UAypBX;AAzpBD,CAAA,UAAY,SAAS,EAAA;AAEnB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;AAClC,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,uBAAkD,CAAA;AAClD,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,+BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;AAClC,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,eAAgC,CAAA;AAGhC,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,eAAiC,CAAA;AACjC,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,qBAA6C,CAAA;AAC7C,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,wBAAoD,CAAA;AACpD,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,yBAAuD,CAAA;AACvD,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,yBAAuD,CAAA;AACvD,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,gCAAsE,CAAA;AACtE,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AAGnE,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,gCAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,wBAAoD,CAAA;AACpD,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,0BAAwD,CAAA;AACxD,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,4BAA4D,CAAA;AAC5D,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,0BAAwD,CAAA;AACxD,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,qCAAgF,CAAA;AAChF,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,gCAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,yCAAwF,CAAA;AACxF,IAAA,SAAA,CAAA,oDAAA,CAAA,GAAA,8CAAmG,CAAA;AACnG,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,6BAA8D,CAAA;AAC9D,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,0BAAuD,CAAA;AACvD,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,uBAAiD,CAAA;AACjD,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,sBAA+C,CAAA;AAC/C,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,yBAAsD,CAAA;AACtD,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,oCAA6E,CAAA;AAC7E,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,4BAA4D,CAAA;AAC5D,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,yBAAsD,CAAA;AACtD,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,uCAAoF,CAAA;AACpF,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,4BAA4D,CAAA;AAC5D,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,2BAA0D,CAAA;AAC1D,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,2BAA0D,CAAA;AAC1D,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,6CAAA,CAAA,GAAA,yCAAuF,CAAA;AACvF,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,kCAAyE,CAAA;AACzE,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,iCAAsE,CAAA;AACtE,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,oCAA6E,CAAA;AAC7E,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,2BAA0D,CAAA;AAC1D,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,iDAAA,CAAA,GAAA,4CAA8F,CAAA;AAC9F,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,iCAAsE,CAAA;AACtE,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,0BAAwD,CAAA;AACxD,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,uCAAoF,CAAA;AACpF,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,4BAA6D,CAAA;AAC7D,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,yCAAwF,CAAA;AAGxF,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,wBAAoD,CAAA;AACpD,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,kCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,0BAAwD,CAAA;AACxD,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,yBAAsD,CAAA;AACtD,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,2BAA0D,CAAA;AAG1D,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,eAAgC,CAAA;AAChC,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,kCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,gDAAA,CAAA,GAAA,2CAA4F,CAAA;AAC5F,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,2BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,mCAA4E,CAAA;AAC5E,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,kDAAA,CAAA,GAAA,2CAA8F,CAAA;AAC9F,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,qCAAiF,CAAA;AACjF,IAAA,SAAA,CAAA,6CAAA,CAAA,GAAA,uCAAqF,CAAA;AACrF,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,gDAAA,CAAA,GAAA,0CAA2F,CAAA;AAC3F,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,mDAAA,CAAA,GAAA,6CAAiG,CAAA;AACjG,IAAA,SAAA,CAAA,mDAAA,CAAA,GAAA,6CAAiG,CAAA;AACjG,IAAA,SAAA,CAAA,kDAAA,CAAA,GAAA,4CAA+F,CAAA;AAG/F,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,sDAAA,CAAA,GAAA,gDAAuG,CAAA;AACvG,IAAA,SAAA,CAAA,sDAAA,CAAA,GAAA,gDAAuG,CAAA;AACvG,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,oCAA6E,CAAA;AAC7E,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,oCAA6E,CAAA;AAG7E,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,qCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,+BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,+BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,gCAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,oCAA6E,CAAA;AAC7E,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,8BAAiE,CAAA;AACjE,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,+BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,sBAA+C,CAAA;AAC/C,IAAA,SAAA,CAAA,sBAAA,CAAA,GAAA,oBAA2C,CAAA;AAC3C,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,qBAA6C,CAAA;AAG7C,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;AACxB,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,8BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,4BAA8D,CAAA;AAC9D,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,8BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,sBAAA,CAAA,GAAA,mBAA0C,CAAA;AAC1C,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,qBAA8C,CAAA;AAC9C,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,wBAAqD,CAAA;AAGrD,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,kBAAwC,CAAA;AACxC,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,sBAAiD,CAAA;AACjD,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,0BAAwD,CAAA;AACxD,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,yBAAsD,CAAA;AACtD,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,kBAAwC,CAAA;AACxC,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAGhD,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,oCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,oCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,mCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,6BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,0BAAyD,CAAA;AACzD,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,+BAAsE,CAAA;AAGtE,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,gCAAuE,CAAA;AAGvE,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,6BAA8D,CAAA;AAC9D,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,0BAAwD,CAAA;AACxD,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,wBAAmD,CAAA;AACnD,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,wBAAoD,CAAA;AACpD,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,qBAA6C,CAAA;AAG7C,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;AACxB,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,8BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,kBAAwC,CAAA;AACxC,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,qBAA+C,CAAA;AAC/C,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,eAAiC,CAAA;AACjC,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,oBAA4C,CAAA;AAG5C,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,4BAA6D,CAAA;AAC7D,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,2BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,mCAA4E,CAAA;AAC5E,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,mCAA4E,CAAA;AAC5E,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,6BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,0BAA0D,CAAA;AAC1D,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,yCAAwF,CAAA;AACxF,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,mCAA4E,CAAA;AAC5E,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,wBAAoD,CAAA;AACpD,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,kCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,8BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,wCAAwF,CAAA;AACxF,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,oCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,gCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,4BAA8D,CAAA;AAC9D,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,8BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,4BAA8D,CAAA;AAC9D,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,sBAAiD,CAAA;AACjD,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,sBAAiD,CAAA;AACjD,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,mCAA6E,CAAA;AAC7E,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,uBAAmD,CAAA;AACnD,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,sBAAiD,CAAA;AACjD,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,uBAAmD,CAAA;AACnD,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,yBAAwD,CAAA;AACxD,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,4BAA8D,CAAA;AAC9D,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,6BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,2BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,wBAAqD,CAAA;AACrD,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,2BAA4D,CAAA;AAC5D,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,uBAAoD,CAAA;AACpD,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,0BAA2D,CAAA;AAG3D,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC,CAAA;AACnC,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,mBAAyC,CAAA;AACzC,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,qBAA6C,CAAA;AAC7C,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,wBAAmD,CAAA;AACnD,IAAA,SAAA,CAAA,sBAAA,CAAA,GAAA,oBAA2C,CAAA;AAC3C,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,kBAAuC,CAAA;AACvC,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC,CAAA;AAGnC,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,UAAsB,CAAA;AACtB,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,mCAA4E,CAAA;AAC5E,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,+BAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,mDAAA,CAAA,GAAA,4CAAgG,CAAA;AAChG,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,uCAAsF,CAAA;AACtF,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,uCAAuF,CAAA;AACvF,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,yBAAuD,CAAA;AACvD,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,2BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAG/D,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,gCAAsE,CAAA;AACtE,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,+BAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AAGxE,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,qBAA8C,CAAA;AAC9C,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,qBAA8C,CAAA;AAC9C,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,kBAAwC,CAAA;AACxC,IAAA,SAAA,CAAA,sBAAA,CAAA,GAAA,mBAA0C,CAAA;AAC1C,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,sBAAiD,CAAA;AACjD,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,sBAAiD,CAAA;AACjD,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,oBAA4C,CAAA;AAC5C,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,oBAA4C,CAAA;AAC5C,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,2BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,sBAAA,CAAA,GAAA,mBAA0C,CAAA;AAC1C,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,qBAA8C,CAAA;AAC9C,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,uBAAkD,CAAA;AAClD,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,wBAAoD,CAAA;AACpD,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,2BAA0D,CAAA;AAG1D,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,mBAAyC,CAAA;AACzC,IAAA,SAAA,CAAA,oDAAA,CAAA,GAAA,6CAAkG,CAAA;AAClG,IAAA,SAAA,CAAA,oDAAA,CAAA,GAAA,8CAAmG,CAAA;AACnG,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,uCAAoF,CAAA;AACpF,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,kCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,+BAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,gDAAA,CAAA,GAAA,yCAA0F,CAAA;AAC1F,IAAA,SAAA,CAAA,iDAAA,CAAA,GAAA,0CAA4F,CAAA;AAC5F,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,sCAAmF,CAAA;AACnF,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,yCAAsF,CAAA;AACtF,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,uCAAoF,CAAA;AAGpF,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,2BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AAGnE,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,kBAAuC,CAAA;AACvC,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,gDAAA,CAAA,GAAA,0CAA2F,CAAA;AAG3F,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,iBAAoC,CAAA;AACpC,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,oCAA6E,CAAA;AAC7E,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,gDAAA,CAAA,GAAA,2CAA4F,CAAA;AAC5F,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,qCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,0CAAyF,CAAA;AACzF,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,qCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AAGnE,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,cAA8B,CAAA;AAC9B,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,mCAA4E,CAAA;AAC5E,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,kCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,kCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,mCAA4E,CAAA;AAC5E,IAAA,SAAA,CAAA,qDAAA,CAAA,GAAA,8CAAoG,CAAA;AAGpG,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,gCAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,6BAA8D,CAAA;AAG9D,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,6BAA8D,CAAA;AAC9D,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,uBAAkD,CAAA;AAClD,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,yBAAsD,CAAA;AAGtD,IAAA,SAAA,CAAA,mBAAA,CAAA,GAAA,kBAAsC,CAAA;AACtC,IAAA,SAAA,CAAA,kDAAA,CAAA,GAAA,6CAAgG,CAAA;AAChG,IAAA,SAAA,CAAA,iDAAA,CAAA,GAAA,4CAA8F,CAAA;AAG9F,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,sCAAiF,CAAA;AACjF,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,qCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,2CAA2F,CAAA;AAC3F,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,2CAA2F,CAAA;AAG3F,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;AACxB,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,0BAAyD,CAAA;AACzD,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,wBAAqD,CAAA;AACrD,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,0CAA0F,CAAA;AAC1F,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,yBAAsD,CAAA;AACtD,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,6BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,2BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,oCAA6E,CAAA;AAG7E,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,uBAAiD,CAAA;AACjD,IAAA,SAAA,CAAA,wDAAA,CAAA,GAAA,kDAA2G,CAAA;AAC3G,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,0CAA0F,CAAA;AAC1F,IAAA,SAAA,CAAA,qEAAA,CAAA,GAAA,4DAAkI,CAAA;AAClI,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,qCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,0CAA0F,CAAA;AAC1F,IAAA,SAAA,CAAA,gDAAA,CAAA,GAAA,2CAA4F,CAAA;AAG5F,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,+BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,8BAAsE,CAAA;AACtE,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,2CAA2F,CAAA;AAC3F,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,2BAA0D,CAAA;AAC1D,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAGhE,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,0CAAyF,CAAA;AACzF,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,2CAA2F,CAAA;AAG3F,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,4BAA6D,CAAA;AAC7D,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,0BAAyD,CAAA;AACzD,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,qCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,iDAAA,CAAA,GAAA,4CAA8F,CAAA;AAC9F,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,2BAA0D,CAAA;AAC1D,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,+BAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,sCAAiF,CAAA;AAGjF,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,sCAAmF,CAAA;AACnF,IAAA,SAAA,CAAA,gEAAA,CAAA,GAAA,uDAAwH,CAAA;AACxH,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,wCAAwF,CAAA;AACxF,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,kCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,kCAA2E,CAAA;AAG3E,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,yCAAwF,CAAA;AACxF,IAAA,SAAA,CAAA,0DAAA,CAAA,GAAA,qDAAgH,CAAA;AAChH,IAAA,SAAA,CAAA,sDAAA,CAAA,GAAA,gDAAuG,CAAA;AACvG,IAAA,SAAA,CAAA,4DAAA,CAAA,GAAA,qDAAkH,CAAA;AAGlH,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,wBAAmD,CAAA;AAGnD,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,cAA8B,CAAA;AAC9B,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,sCAAiF,CAAA;AACjF,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,yCAAwF,CAAA;AACxF,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,kCAAyE,CAAA;AACzE,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,qCAAgF,CAAA;AAChF,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,sCAAkF,CAAA;AAClF,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,wCAAyE,CAAA;AACzE,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AAGrE,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,+BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,2BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,4BAA6D,CAAA;AAC7D,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,yBAAsD,CAAA;AACtD,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,yBAAuD,CAAA;AACvD,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,mCAA4E,CAAA;AAC5E,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,sCAAkF,CAAA;AAClF,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,0CAA0F,CAAA;AAC1F,IAAA,SAAA,CAAA,iDAAA,CAAA,GAAA,4CAA8F,CAAA;AAC9F,IAAA,SAAA,CAAA,6CAAA,CAAA,GAAA,wCAAsF,CAAA;AACtF,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,4BAA6D,CAAA;AAC7D,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,sDAAA,CAAA,GAAA,+CAAsG,CAAA;AACtG,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,0BAAwD,CAAA;AACxD,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,0BAAyD,CAAA;AACzD,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,qCAAgF,CAAA;AAChF,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,uCAAoF,CAAA;AACpF,IAAA,SAAA,CAAA,gDAAA,CAAA,GAAA,2CAA4F,CAAA;AAC5F,IAAA,SAAA,CAAA,kDAAA,CAAA,GAAA,6CAAgG,CAAA;AAChG,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,yCAAwF,CAAA;AACxF,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,8BAAiE,CAAA;AACjE,IAAA,SAAA,CAAA,uDAAA,CAAA,GAAA,gDAAwG,CAAA;AACxG,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,6CAAA,CAAA,GAAA,wCAAsF,CAAA;AACtF,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,gCAAsE,CAAA;AACtE,IAAA,SAAA,CAAA,6CAAA,CAAA,GAAA,sCAAoF,CAAA;AAGpF,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,mBAAyC,CAAA;AACzC,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,mCAA4E,CAAA;AAC5E,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,sCAAkF,CAAA;AAClF,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,wCAAuF,CAAA;AACvF,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,qCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,sDAAA,CAAA,GAAA,+CAAsG,CAAA;AAGtG,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;AACxB,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,4BAA6D,CAAA;AAG7D,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,QAAkB,CAAA;AAClB,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,6BAAiE,CAAA;AACjE,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,yBAAwD,CAAA;AACxD,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,uBAAmD,CAAA;AACnD,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,2BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,yBAAuD,CAAA;AACvD,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,4BAA6D,CAAA;AAC7D,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,8BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,0BAA0D,CAAA;AAC1D,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,8BAAkE,CAAA;AAGlE,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,oBAA0C,CAAA;AAC1C,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,uCAAmF,CAAA;AAGnF,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,+BAAoE,CAAA;AAGpE,IAAA,SAAA,CAAA,sBAAA,CAAA,GAAA,oBAA2C,CAAA;AAC3C,IAAA,SAAA,CAAA,oDAAA,CAAA,GAAA,8CAAmG,CAAA;AAGnG,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC,CAAA;AACnC,IAAA,SAAA,CAAA,gDAAA,CAAA,GAAA,0CAA2F,CAAA;AAG3F,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,gBAAmC,CAAA;AACnC,IAAA,SAAA,CAAA,gDAAA,CAAA,GAAA,0CAA2F,CAAA;AAG3F,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,yBAAsD,CAAA;AAGtD,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,qBAA8C,CAAA;AAC9C,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,gCAAsE,CAAA;AACtE,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,mCAA4E,CAAA;AAC5E,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AAGvE,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,sBAA+C,CAAA;AAC/C,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAG9E,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;AACxB,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,yBAAuD,CAAA;AAGvD,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,8BAAiE,CAAA;AAGjE,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,kCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,qCAAgF,CAAA;AAChF,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,+BAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,uCAAoF,CAAA;AACpF,IAAA,SAAA,CAAA,6CAAA,CAAA,GAAA,kCAAgF,CAAA;AAChF,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,kCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,uBAAkD,CAAA;AAClD,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,gCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,qCAAiF,CAAA;AACjF,IAAA,SAAA,CAAA,qDAAA,CAAA,GAAA,+CAAqG,CAAA;AACrG,IAAA,SAAA,CAAA,iDAAA,CAAA,GAAA,0CAA4F,CAAA;AAC5F,IAAA,SAAA,CAAA,uDAAA,CAAA,GAAA,gDAAwG,CAAA;AACxG,IAAA,SAAA,CAAA,kDAAA,CAAA,GAAA,2CAA8F,CAAA;AAC9F,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,+BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,4BAA4D,CAAA;AAC5D,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,kCAAyE,CAAA;AACzE,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,kCAAyE,CAAA;AACzE,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,qCAAgF,CAAA;AAChF,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,0BAAwD,CAAA;AACxD,IAAA,SAAA,CAAA,8CAAA,CAAA,GAAA,uCAAsF,CAAA;AACtF,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,wBAAqD,CAAA;AACrD,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,yBAAsD,CAAA;AACtD,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,oCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,6CAAA,CAAA,GAAA,wCAAsF,CAAA;AACtF,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,kCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,sCAAmF,CAAA;AACnF,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,qCAAgF,CAAA;AAChF,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,qCAAgF,CAAA;AAChF,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,4BAA4D,CAAA;AAC5D,IAAA,SAAA,CAAA,yBAAA,CAAA,GAAA,sBAAgD,CAAA;AAChD,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,uBAAkD,CAAA;AAClD,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,uBAAmD,CAAA;AACnD,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,0BAAyD,CAAA;AACzD,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,yBAAuD,CAAA;AACvD,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,qCAAkF,CAAA;AAClF,IAAA,SAAA,CAAA,6CAAA,CAAA,GAAA,sCAAoF,CAAA;AAGpF,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,mBAAwC,CAAA;AACxC,IAAA,SAAA,CAAA,0DAAA,CAAA,GAAA,oDAA+G,CAAA;AAC/G,IAAA,SAAA,CAAA,gCAAA,CAAA,GAAA,6BAA8D,CAAA;AAC9D,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,2BAA0D,CAAA;AAC1D,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,2BAA0D,CAAA;AAC1D,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,gCAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,iCAAsE,CAAA;AACtE,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,gCAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,kCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,+BAAA,CAAA,GAAA,4BAA4D,CAAA;AAC5D,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,kCAAyE,CAAA;AACzE,IAAA,SAAA,CAAA,6CAAA,CAAA,GAAA,wCAAsF,CAAA;AACtF,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,8BAAiE,CAAA;AACjE,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,gCAAsE,CAAA;AACtE,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,+BAAkE,CAAA;AAClE,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,0CAA0F,CAAA;AAC1F,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,qCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,sCAAgF,CAAA;AAChF,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,8BAAgE,CAAA;AAChE,IAAA,SAAA,CAAA,mDAAA,CAAA,GAAA,8CAAkG,CAAA;AAClG,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,qCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,mCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,+CAAA,CAAA,GAAA,0CAA0F,CAAA;AAC1F,IAAA,SAAA,CAAA,0CAAA,CAAA,GAAA,sCAAiF,CAAA;AACjF,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,uCAAmF,CAAA;AACnF,IAAA,SAAA,CAAA,iDAAA,CAAA,GAAA,4CAA8F,CAAA;AAC9F,IAAA,SAAA,CAAA,mDAAA,CAAA,GAAA,8CAAkG,CAAA;AAClG,IAAA,SAAA,CAAA,kDAAA,CAAA,GAAA,6CAAgG,CAAA;AAChG,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,uCAAmF,CAAA;AACnF,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,qCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,sCAAgF,CAAA;AAChF,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,mCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,qCAA+E,CAAA;AAC/E,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,+BAAiE,CAAA;AACjE,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,4BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,0BAAuD,CAAA;AACvD,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,4BAA2D,CAAA;AAC3D,IAAA,SAAA,CAAA,oDAAA,CAAA,GAAA,2CAAgG,CAAA;AAChG,IAAA,SAAA,CAAA,6CAAA,CAAA,GAAA,wCAAsF,CAAA;AACtF,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AAGvE,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,UAAsB,CAAA;AACtB,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,gCAAsE,CAAA;AAGtE,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,+BAAoE,CAAA;AACpE,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,gCAAsE,CAAA;AACtE,IAAA,SAAA,CAAA,wCAAA,CAAA,GAAA,kCAA2E,CAAA;AAC3E,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,qCAAiF,CAAA;AACjF,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,6BAAA,CAAA,GAAA,yBAAuD,CAAA;AACvD,IAAA,SAAA,CAAA,4BAAA,CAAA,GAAA,yBAAsD,CAAA;AACtD,IAAA,SAAA,CAAA,8BAAA,CAAA,GAAA,2BAA0D,CAAA;AAG1D,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,mBAAyC,CAAA;AACzC,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,sCAAkF,CAAA;AAClF,IAAA,SAAA,CAAA,iDAAA,CAAA,GAAA,4CAA8F,CAAA;AAC9F,IAAA,SAAA,CAAA,4CAAA,CAAA,GAAA,uCAAoF,CAAA;AACpF,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,sCAAkF,CAAA;AAClF,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,yCAAA,CAAA,GAAA,oCAA8E,CAAA;AAC9E,IAAA,SAAA,CAAA,kCAAA,CAAA,GAAA,8BAAiE,CAAA;AACjE,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,sCAAkF,CAAA;AAClF,IAAA,SAAA,CAAA,qCAAA,CAAA,GAAA,iCAAuE,CAAA;AACvE,IAAA,SAAA,CAAA,sCAAA,CAAA,GAAA,iCAAwE,CAAA;AACxE,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,oCAAA,CAAA,GAAA,gCAAqE,CAAA;AACrE,IAAA,SAAA,CAAA,iCAAA,CAAA,GAAA,6BAA+D,CAAA;AAC/D,IAAA,SAAA,CAAA,mCAAA,CAAA,GAAA,+BAAmE,CAAA;AACnE,IAAA,SAAA,CAAA,uCAAA,CAAA,GAAA,kCAA0E,CAAA;AAC1E,IAAA,SAAA,CAAA,2CAAA,CAAA,GAAA,sCAAkF,CAAA;AAGlF,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,WAA8B,CAAA;AAC9B,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,UAA4B,CAAA;AAC5B,IAAA,SAAA,CAAA,qBAAA,CAAA,GAAA,aAAmC,CAAA;AACnC,IAAA,SAAA,CAAA,0BAAA,CAAA,GAAA,kBAA6C,CAAA;AAC7C,IAAA,SAAA,CAAA,sBAAA,CAAA,GAAA,cAAqC,CAAA;AACrC,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,gBAAyC,CAAA;AACzC,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,OAAsB,CAAA;AAGtB,IAAA,SAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,IAAA,SAAA,CAAA,2BAAA,CAAA,GAAA,2BAAuD,CAAA;AACzD,CAAC,EAzpBW,SAAS,KAAT,SAAS,GAypBpB,EAAA,CAAA,CAAA;;ICzpBW,UAEX;AAFD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACtB,CAAC,EAFW,SAAS,KAAT,SAAS,GAEpB,EAAA,CAAA,CAAA;;ACED,IAAK,kBAIJ,CAAA;AAJD,CAAA,UAAK,kBAAkB,EAAA;AACrB,IAAA,kBAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,kBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,kBAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACb,CAAC,EAJI,kBAAkB,KAAlB,kBAAkB,GAItB,EAAA,CAAA,CAAA,CAAA;MAKY,4BAA4B,CAAA;AAIvC,IAAA,IAAyC,eAAe,GAAA;AACtD,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,kBAAkB,CAAC,aAAa,CAAA;KAC3D;AACD,IAAA,IAAuC,aAAa,GAAA;AAClD,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,kBAAkB,CAAC,WAAW,CAAA;KACzD;AACD,IAAA,IAAuC,cAAc,GAAA;AACnD,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,kBAAkB,CAAC,WAAW,CAAA;KACzD;AAQD,IAAA,WAAA,GAAA;QAlBS,IAAwB,CAAA,wBAAA,GAAG,IAAI,CAAA;QAWJ,IAAe,CAAA,eAAA,GAAG,KAAK,CAAA;QAEnD,IAAwB,CAAA,wBAAA,GAAwB,IAAI,CAAA;QAGpD,IAAa,CAAA,aAAA,GAAG,CAAC,CAAA;AACjB,QAAA,IAAA,CAAA,SAAS,GAAuB,kBAAkB,CAAC,WAAW,CAAA;KACrD;IACjB,QAAQ,GAAA;QACN,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAQ,MAAM,EAAE,QAAQ,CAAC;AAC/D,aAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;aACtB,SAAS,CAAC,MAAK;AACd,YAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC/B,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAA;AAC3B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAA;YAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;AAC7C,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;AAC3B,SAAC,CAAC,CAAA;KACL;AAED,IAAA,eAAe,MAAM;IACrB,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAA;AAC5C,SAAA;KACF;AAEO,IAAA,cAAc,CAAC,IAAA,GAAe,CAAC,EAAE,OAAe,CAAC,EAAA;QACvD,IAAI,IAAI,GAAG,IAAI,EAAE;AACf,YAAA,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC,WAAW,CAAA;AAChD,SAAA;aAAM,IAAI,IAAI,GAAG,IAAI,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC,aAAa,CAAA;AAClD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC,WAAW,CAAA;AAChD,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,kBAAkB,CAAC,WAAW,EAAE;YACrD,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC3B,SAAA;KACF;IACO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAC5B,MAAK;YACH,IAAI,CAAC,cAAc,EAAE,CAAA;AACvB,SAAC,EACD,IAAI,CAAC,wBAAwB,IAAI,IAAI,CACtC,CAAA;KACF;+GA3DU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA5B,4BAA4B,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACzC,iBAAA,CAAA;0EAGU,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBAEmC,eAAe,EAAA,CAAA;sBAAvD,WAAW;uBAAC,sBAAsB,CAAA;gBAGI,aAAa,EAAA,CAAA;sBAAnD,WAAW;uBAAC,oBAAoB,CAAA;gBAGM,cAAc,EAAA,CAAA;sBAApD,WAAW;uBAAC,oBAAoB,CAAA;gBAGG,eAAe,EAAA,CAAA;sBAAlD,WAAW;uBAAC,qBAAqB,CAAA;;;MCfvB,yBAAyB,CAAA;+GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EANrB,YAAA,EAAA,CAAA,4BAA4B,CAEzC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,4BAA4B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAJlC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;AAC5C,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACxC,iBAAA,CAAA;;;MCLY,yBAAyB,CAAA;AAHtC,IAAA,WAAA,GAAA;QAKW,IAAuB,CAAA,uBAAA,GAAG,EAAE,CAAA;QAC5B,IAAG,CAAA,GAAA,GAAG,EAAE,CAAA;QACjB,IAA8B,CAAA,8BAAA,GAAG,KAAK,CAAA;QAElB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAA;AAchC,KAAA;IAbwB,SAAS,GAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE;AACxC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAA;AAC1C,YAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAA;AAC3C,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,GAAG,EAAE;AACZ,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAA;AACvB,SAAA;KACF;+GAlBU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,aAAA,EAAA,EAAA,UAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACtC,iBAAA,CAAA;8BAGU,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAGc,MAAM,EAAA,CAAA;sBAAzB,WAAW;uBAAC,KAAK,CAAA;gBACK,SAAS,EAAA,CAAA;sBAA/B,YAAY;uBAAC,OAAO,CAAA;;;MCDV,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EANlB,YAAA,EAAA,CAAA,yBAAyB,CAEtC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAExB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAJ/B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,yBAAyB,CAAC;AACzC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACrC,iBAAA,CAAA;;;ACDD,MAAM,iBAAiB,GAAG;AACxB,IAAA,EAAE,EAAE,oBAAoB;AACxB,IAAA,CAAC,EAAE,+CAA+C;AAClD,IAAA,CAAC,EAAE,gDAAgD;AACnD,IAAA,CAAC,EAAE,iDAAiD;AACpD,IAAA,EAAE,EAAE,iDAAiD;AACrD,IAAA,GAAG,EAAE,yBAAyB;CAC/B,CAAA;MAKY,wBAAwB,CAAA;AAOnC,IAAA,WAAA,CACU,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QANvC,IAAG,CAAA,GAAA,GAAgC,IAAI,CAAA;QAC5B,IAAU,CAAA,UAAA,GAAG,EAAE,CAAA;QAEnC,IAAW,CAAA,WAAA,GAAG,EAAE,CAAA;QAChB,IAAsB,CAAA,sBAAA,GAAwB,IAAI,CAAA;AAIhD,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB;AAClD,aAAA,OAAO,CAAC;AACP,YAAA,iBAAiB,CAAC,EAAE;AACpB,YAAA,iBAAiB,CAAC,CAAC;AACnB,YAAA,iBAAiB,CAAC,CAAC;AACnB,YAAA,iBAAiB,CAAC,CAAC;AACnB,YAAA,iBAAiB,CAAC,EAAE;AACpB,YAAA,iBAAiB,CAAC,GAAG;SACtB,CAAC;aACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC5B,SAAS,CAAC,IAAI,IAAG;YAEhB,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE;AAC3C,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;AACzB,aAAA;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE;AACjD,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACxB,aAAA;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;AACvB,aAAA;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;AACvB,aAAA;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;AACvB,aAAA;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE;AACjD,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACxB,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACxB,aAAA;YACD,IAAI,CAAC,MAAM,EAAE,CAAA;AACf,SAAC,CAAC,CAAA;KACL;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,MAAM,EAAE,CAAA;AACd,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC/B,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAA;AAC1C,SAAA;KACF;IAEO,MAAM,GAAA;QACZ,IACE,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,GAAG;AACR,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAC1B;YACA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AAC7C,SAAA;KACF;+GA7DU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACrC,iBAAA,CAAA;2GAGU,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACc,UAAU,EAAA,CAAA;sBAA7B,WAAW;uBAAC,KAAK,CAAA;;;MCbP,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EANjB,YAAA,EAAA,CAAA,wBAAwB,CAErC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAJ9B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;AACxC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,iBAAA,CAAA;;;MCHY,mBAAmB,CAAA;AAO9B,IAAA,WAAA,CAAoB,GAAe,EAAA;QAAf,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;AAFzB,QAAA,IAAA,CAAA,UAAU,GAA0B,IAAI,YAAY,EAAW,CAAA;KAEjC;IAExC,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,EAAE,CAAA;AACZ,QAAA,IAAI,CAAC,MAAM;AACT,YAAA,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBACjE,IAAI,CAAC,KAAK,EAAE,CAAA;AACd,aAAC,CAAC,CAAA;AACJ,QAAA,IAAI,CAAC,MAAM;AACT,YAAA,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBACjE,IAAI,CAAC,KAAK,EAAE,CAAA;AACd,aAAC,CAAC,CAAA;KAgBL;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;KAC1B;AAED,IAAA,KAAK,CAAC,OAAA,GAAmB,IAAI,EAAE,YAAoB,MAAM,EAAA;AACvD,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAA;QAEjC,MAAM,MAAM,IAAI,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,CAAA;AAEjD,QAAA,MAAM,GAAG,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAA;AAEtC,QAAA,MAAM,EAAE,GAAG;YACT,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,MAAM,EAAE,MAAM,CAAC,WAAW;SAC3B,CAAA;AAED,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,CAAA;AAChD,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAA;AAEtD,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAA;AACjD,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAA;AAEnD,QAAA,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,CAAA;AACtD,QAAA,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,CAAA;QAEtD,IAAI,KAAK,GAAG,KAAK,CAAA;QAEjB,IAAI,SAAS,KAAK,MAAM,EAAE;AACxB,YAAA,KAAK,GAAG,CAAC,MAAM,IAAI,QAAQ,IAAI,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAA;AACxD,SAAA;aAAM,IAAI,SAAS,KAAK,UAAU,EAAE;AACnC,YAAA,KAAK,GAAG,CAAC,MAAM,IAAI,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAA;AAC5C,SAAA;aAAM,IAAI,SAAS,KAAK,YAAY,EAAE;AACrC,YAAA,KAAK,GAAG,CAAC,MAAM,IAAI,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAA;AAC5C,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC5B;+GAxEU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAChC,iBAAA,CAAA;iGAMW,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MCDI,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EANZ,YAAA,EAAA,CAAA,mBAAmB,CAGhC,EAAA,OAAA,EAAA,CAAA,YAAY,aAFJ,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAKlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAHzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGH,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC9B,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACF,iBAAA,CAAA;;;MCLY,mBAAmB,CAAA;AAKS,IAAA,YAAY,CAAC,MAAa,EAAA;AAC/D,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAClE,MAAM,CAAC,cAAc,EAAE,CAAA;YACvB,MAAM,CAAC,eAAe,EAAE,CAAA;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;AACpB,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;AACpC,SAAA;KACF;AACD,IAAA,WAAA,GAAA;QAZS,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAA;QACtB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAA;QAEG,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAA;KAS5B;IAEjB,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAClE,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;AACrB,SAAA;KACF;+GAnBU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAChC,iBAAA,CAAA;0EAEU,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAE0B,QAAQ,EAAA,CAAA;sBADvC,KAAK;;sBACL,WAAW;uBAAC,iBAAiB,CAAA;gBACS,YAAY,EAAA,CAAA;sBAAlD,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCC1B,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EANZ,YAAA,EAAA,CAAA,mBAAmB,CAEhC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAJzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;MCLY,mBAAmB,CAAA;AAE9B,IAAA,WAAA,GAAA,GAAiB;+GAFN,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAChC,iBAAA,CAAA;;;MCOY,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EANZ,YAAA,EAAA,CAAA,mBAAmB,CAEhC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAJzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;ACVK,SAAU,yBAAyB,CAAC,GAA8D,EAAA;AACtG,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SACvB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACjB,GAAG,CAAC,CAAC,IAAG;QACP,OAAO,CAAA,EAAG,CAAC,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AAC1B,KAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAA;AACd;;MCOa,2BAA2B,CAAA;AAetC,IAAA,WAAA,GAAA;QAZA,IAAU,CAAA,UAAA,GAAiB,MAAM,CAAA;QAEjC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;AAEf,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;QAE7B,IAAoB,CAAA,oBAAA,GAAsB,IAAI,CAAA;QAE9C,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAClB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QACV,IAAc,CAAA,cAAA,GAAwB,IAAI,CAAA;KAEjC;IAEjB,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAA;YACtD,IAAI,CAAC,cAAc,GAAG,SAAS,CAC7B,oBAAoB,CAAC,aAAa,EAClC,QAAQ,CACT;iBACE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;iBAC1C,SAAS,CAAC,CAAC,IAAG;gBACb,IAAI,CAAC,yBAAyB,CAAC,oBAAoB;AAChD,qBAAA,aAA4B,CAAC,CAAA;AAClC,aAAC,CAAC,CAAA;AACL,SAAA;KACF;IACD,WAAW,GAAA;AACT,QAAA,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAK;YACxB,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,gBAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,oBAAoB;AACrD,qBAAA,aAA4B,CAAC,CAAA;AACjC,aAAA;AACH,SAAC,CAAC,CAAA;KACH;IACD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAA;AAClC,SAAA;KACF;IACD,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAG7B,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAE7B,MAAM,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;AACzE,gBAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,QAAQ,CAAC;oBAC/C,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW;AACtE,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC,CAAA;AACH,aAAA;AACF,SAAA;KACF;IACD,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAG7B,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAE7B,MAAM,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;AACzE,gBAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,QAAQ,CAAC;oBAC/C,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW;AACtE,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC,CAAA;AACH,aAAA;AACF,SAAA;KACF;AACO,IAAA,yBAAyB,CAAC,IAAiB,EAAA;AACjD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;AACtB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;AACxB,SAAA;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;AAC3D,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AACjC,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;AACrB,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;AACxB,aAAA;AACF,SAAA;KACF;+GArFU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,kUCdxC,8+BAgBU,EAAA,MAAA,EAAA,CAAA,sjBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDFG,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,8+BAAA,EAAA,MAAA,EAAA,CAAA,sjBAAA,CAAA,EAAA,CAAA;0EAOxC,UAAU,EAAA,CAAA;sBADT,KAAK;gBAGN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAGN,QAAQ,EAAA,CAAA;sBADP,MAAM;gBAGP,oBAAoB,EAAA,CAAA;sBADnB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MELxC,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAxB,wBAAwB,EAAA,YAAA,EAAA,CATpB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAExC,YAAY;YACZN,qBAAe;YACf,aAAa;AACb,YAAAO,8BAAwB,aAEhB,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAPjC,YAAY;YACZP,qBAAe;YACf,aAAa;YACbO,8BAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIf,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;AAC3C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZP,qBAAe;wBACf,aAAa;wBACbO,8BAAwB;AACzB,qBAAA;oBACD,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA,CAAA;;;AChBK,IAAW,SAiPhB;AAjPD,CAAA,UAAiB,QAAQ,EAAA;AAWvB,IAAA,IAAY,WAQX,CAAA;AARD,IAAA,CAAA,UAAY,WAAW,EAAA;AACrB,QAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,WAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,QAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,QAAA,WAAA,CAAA,iCAAA,CAAA,GAAA,iCAAmE,CAAA;AACnE,QAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,QAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AAC3C,KAAC,EARW,WAAW,GAAX,QAAW,CAAA,WAAA,KAAX,oBAAW,GAQtB,EAAA,CAAA,CAAA,CAAA;AACD,IAAA,IAAY,eAMX,CAAA;AAND,IAAA,CAAA,UAAY,eAAe,EAAA;AACzB,QAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,QAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,QAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,QAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,QAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,KAAC,EANW,eAAe,GAAf,QAAe,CAAA,eAAA,KAAf,wBAAe,GAM1B,EAAA,CAAA,CAAA,CAAA;AACA,IAAA,IAAY,YAIX,CAAA;AAJD,IAAA,CAAA,UAAY,YAAY,EAAA;AACtB,QAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,KAAC,EAJW,YAAY,GAAZ,QAAY,CAAA,YAAA,KAAZ,qBAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;AACF,IAAA,IAAY,eAGX,CAAA;AAHD,IAAA,CAAA,UAAY,eAAe,EAAA;AACzB,QAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,QAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,KAAC,EAHW,eAAe,GAAf,QAAe,CAAA,eAAA,KAAf,wBAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;AACD,IAAA,IAAY,eAGX,CAAA;AAHD,IAAA,CAAA,UAAY,eAAe,EAAA;AACzB,QAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,QAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,KAAC,EAHW,eAAe,GAAf,QAAe,CAAA,eAAA,KAAf,wBAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;AACD,IAAA,IAAY,sBAEX,CAAA;AAFD,IAAA,CAAA,UAAY,sBAAsB,EAAA;AAChC,QAAA,sBAAA,CAAA,MAAA,CAAA,GAAA,aAAoB,CAAA;AACtB,KAAC,EAFW,sBAAsB,GAAtB,QAAsB,CAAA,sBAAA,KAAtB,+BAAsB,GAEjC,EAAA,CAAA,CAAA,CAAA;AAYD,IAAA,IAAY,oBAaX,CAAA;AAbD,IAAA,CAAA,UAAY,oBAAoB,EAAA;AAC9B,QAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,QAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,QAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,QAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC1B,QAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACnC,KAAC,EAbW,oBAAoB,GAApB,QAAoB,CAAA,oBAAA,KAApB,6BAAoB,GAa/B,EAAA,CAAA,CAAA,CAAA;AA2BD,IAAA,IAAY,wBAMX,CAAA;AAND,IAAA,CAAA,UAAY,wBAAwB,EAAA;AAClC,QAAA,wBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,QAAA,wBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,QAAA,wBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,QAAA,wBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,QAAA,wBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,KAAC,EANW,wBAAwB,GAAxB,QAAwB,CAAA,wBAAA,KAAxB,iCAAwB,GAMnC,EAAA,CAAA,CAAA,CAAA;AAwDD,IAAA,IAAY,0BAcX,CAAA;AAdD,IAAA,CAAA,UAAY,0BAA0B,EAAA;AACpC,QAAA,0BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,0BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,0BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,0BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,QAAA,0BAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,QAAA,0BAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,QAAA,0BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,0BAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,QAAA,0BAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,QAAA,0BAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,QAAA,0BAAA,CAAA,8BAAA,CAAA,GAAA,8BAA6D,CAAA;AAC7D,QAAA,0BAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE,CAAA;AACjE,QAAA,0BAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,KAAC,EAdW,0BAA0B,GAA1B,QAA0B,CAAA,0BAAA,KAA1B,mCAA0B,GAcrC,EAAA,CAAA,CAAA,CAAA;AACD,IAAA,IAAY,uBAMX,CAAA;AAND,IAAA,CAAA,UAAY,uBAAuB,EAAA;AACjC,QAAA,uBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,QAAA,uBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,QAAA,uBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,KAAC,EANW,uBAAuB,GAAvB,QAAuB,CAAA,uBAAA,KAAvB,gCAAuB,GAMlC,EAAA,CAAA,CAAA,CAAA;AAWD,IAAA,IAAY,oBAmBX,CAAA;AAnBD,IAAA,CAAA,UAAY,oBAAoB,EAAA;AAC9B,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,QAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,QAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,QAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,QAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,QAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;AACpC,KAAC,EAnBW,oBAAoB,GAApB,QAAoB,CAAA,oBAAA,KAApB,6BAAoB,GAmB/B,EAAA,CAAA,CAAA,CAAA;AACD,IAAA,IAAY,iBAGX,CAAA;AAHD,IAAA,CAAA,UAAY,iBAAiB,EAAA;AAC3B,QAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,QAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,KAAC,EAHW,iBAAiB,GAAjB,QAAiB,CAAA,iBAAA,KAAjB,0BAAiB,GAG5B,EAAA,CAAA,CAAA,CAAA;AACD,IAAA,IAAY,oBA4BX,CAAA;AA5BD,IAAA,CAAA,UAAY,oBAAoB,EAAA;AAC9B,QAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,QAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,QAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,QAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,QAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,QAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,QAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,QAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,QAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,QAAA,oBAAA,CAAA,6BAAA,CAAA,GAAA,6BAA2D,CAAA;AAC3D,QAAA,oBAAA,CAAA,kCAAA,CAAA,GAAA,kCAAqE,CAAA;AACrE,QAAA,oBAAA,CAAA,2BAAA,CAAA,GAAA,2BAAuD,CAAA;AACvD,QAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,QAAA,oBAAA,CAAA,2BAAA,CAAA,GAAA,2BAAuD,CAAA;AACvD,QAAA,oBAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD,CAAA;AACzD,QAAA,oBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,QAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,oBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,QAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,QAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,QAAA,oBAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,oBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7C,QAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACnC,KAAC,EA5BW,oBAAoB,GAApB,QAAoB,CAAA,oBAAA,KAApB,6BAAoB,GA4B/B,EAAA,CAAA,CAAA,CAAA;AACH,CAAC,EAjPgB,QAAQ,KAAR,QAAQ,GAiPxB,EAAA,CAAA,CAAA;;ACrOD,MAAM,kBAAkB,GAAG,CAAC,CAAA;MASf,cAAc,CAAA;AAEzB,IAAA,WAAA,CACU,IAAgB,EAChB,QAAkB,EAClB,MAAc,EACd,KAAqB,EAAA;QAHrB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAL/B,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAA;QAQ1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;YAC1C,IAAI,KAAK,YAAY,aAAa,EAAE;AAGlC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;AAGpC,gBAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAA;AAC3C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;AAC7C,aAAA;AACH,SAAC,CAAC,CAAA;KACH;IAEO,iBAAiB,CAAC,QAAgC,EAAE,UAAyC,EAAA;AACnG,QAAA,IAAI,UAAU,EAAE;YACd,IAAI,UAAU,CAAC,IAAI,EAAE;gBAEnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAC5C,aAAA;YACD,IAAI,UAAU,CAAC,UAAU,EAAE;gBACzB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;AACxD,aAAA;AACF,SAAA;KACF;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,kBAAkB,GAAG,CAAC,CAAA;KAC9B;AAED,IAAA,OAAO,CAAI,GAAW,EAAA;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,GAAG,CAAC,CAAA;KAC7B;IAED,YAAY,CAA2B,IAAO,EAAE,KAAU,EAAA;QACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE;AACtC,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACjB,SAAA;AAAM,aAAA;YACL,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAG;AAC5B,oBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACjC,iBAAC,CAAC,CAAA;AACH,aAAA;AACF,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb;IACD,OAAO,CAA2B,IAAO,EAAE,EAAU,EAAA;QACnD,MAAM,IAAI,GAAQ,EAAE,CAAA;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;AAC5B,QAAA,OAAO,IAAI,CAAA;KACZ;AAEO,IAAA,OAAO,CAA2B,IAAO,EAAE,OAAY,EAAE,EAAU,EAAA;QACzE,IAAI,IAAI,IAAI,IAAI,EAAE;AAChB,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;AACD,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AACD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;AACpC,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE;AACpD,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QACD,OAAO,CAAC,GAAG,EAAE,CAAA;AACb,QAAA,OAAO,KAAK,CAAA;KACb;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;AAChC,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA;KACzB;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAA;KAC7B;AACD,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;KAC9B;AAED,IAAA,IAAI,SAAS,GAAA;QACX,IACE,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM,CAAC,eAAe;AAC7B,YAAA,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EACpC;AACA,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAA;AAC5C,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;AAEM,IAAA,YAAY,CAAC,IAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;KAC7B;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,MAAM,IAAI,GAAmC;AAC3C,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,MAAM,EAAE,EAAE;SACX,CAAA;QAGD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAO,KAAI;YACpC,IAAI,EAAE,CAAC,MAAM,EAAE;AACb,gBAAA,IAAI,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,CAAA,EAAI,EAAE,CAAC,MAAM,CAAA,CAAE,CAAA;AAC5C,aAAA;YACD,IAAI,EAAE,CAAC,MAAM,EAAE;AACb,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAA;AACxB,aAAA;AACH,SAAC,CAAC,CAAA;AACF,QAAA,OAAO,IAAI,CAAA;KACZ;+GA7HU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCVY,YAAY,CAAA;IAkBvB,WACyB,CAAA,WAAgB,EAC/B,UAA0B,EAAA;QAA1B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAgB;QAnBpC,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAA;QACtB,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAA;QAC1B,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAA;AAElB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAA2B,CAAA;AACvD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAA;AAE1C,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,OAAO,EAA2B,CAAA;AAC9D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAA;AAExD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,OAAO,EAA2B,CAAA;AAC/D,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAA;AAE1D,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAA2B,CAAA;AACzD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAA;AAOvD,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;KAE/B;AAED,IAAA,aAAa,CAAI,KAA4B,EAAA;QAC3C,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;AACtD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC/B;AAED,IAAA,oBAAoB,CAAI,KAA4B,EAAA;AAClD,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACtC;AAED,IAAA,uBAAuB,CAAI,KAA4B,EAAA;AACrD,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACvC;AAED,IAAA,2BAA2B,CAAI,KAA4B,EAAA;AACzD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACjC;AAID,IAAA,sBAAsB,CAAC,KAA+B,EAAE,MAAW,EAAE,WAA4C,EAAA;QAC/G,IAAI,CAAC,aAAa,CAAqC;AACrD,YAAA,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS;AACzC,YAAA,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC5C,YAAA,IAAI,EAAE;gBACJ,KAAK;gBACL,MAAM;AACN,gBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AACzC,gBAAA,YAAY,EAAE,QAAQ,CAAC,oBAAoB,CAAC,QAAQ;AACrD,aAAA;AACD,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA,CAAC,CAAA;KACH;AAED,IAAA,sBAAsB,CAAC,KAA+B,EAAE,MAAW,EAAE,IAAa,EAAA;QAChF,IAAI,CAAC,aAAa,CAAqC;AACrD,YAAA,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS;AACzC,YAAA,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC5C,YAAA,IAAI,EAAE;gBACJ,KAAK;gBACL,MAAM;AACN,gBAAA,YAAY,EAAE,QAAQ,CAAC,oBAAoB,CAAC,QAAQ;AACrD,aAAA;YACD,IAAI,EAAE,IAAI,IAAI,EAAE;AAChB,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA,CAAC,CAAA;KACH;IAGD,qBAAqB,CAAC,MAAW,EAAE,WAA4C,EAAA;QAC7E,IAAI,CAAC,aAAa,CAAuC;AACvD,YAAA,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS;AACzC,YAAA,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC5C,YAAA,IAAI,EAAE;gBACJ,MAAM;AACN,gBAAA,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AACzC,gBAAA,YAAY,EAAE,QAAQ,CAAC,oBAAoB,CAAC,UAAU;AACvD,aAAA;AACD,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA,CAAC,CAAA;KACH;AAYO,IAAA,UAAU,CAAC,WAAuD,EAAA;AACxE,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAA;AAElD,QAAA,MAAM,YAAY,GAAmC;YACnD,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,MAAM,EAAE,gBAAgB,CAAC,MAAM;SAChC,CAAA;AACD,QAAA,IAAI,WAAW,EAAE;YAEf,IAAI,WAAW,CAAC,SAAS,EAAE;AACzB,gBAAA,YAAY,CAAC,MAAM,GAAG,CAAA,EAAG,gBAAgB,CAAC,MAAM,CAAA,CAAA,EAAI,WAAW,CAAC,SAAS,CAAA,CAAE,CAAA;AAC5E,aAAA;iBAAM,IAAI,WAAW,CAAC,MAAM,EAAE;AAE7B,gBAAA,YAAY,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAA;AACzC,aAAA;YAED,IAAI,WAAW,CAAC,MAAM,EAAE;AACtB,gBAAA,YAAY,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAA;AACzC,aAAA;AACF,SAAA;AAED,QAAA,OAAO,YAAY,CAAA;KACpB;AAEM,IAAA,kBAAkB,CAAC,OAAe,EAAE,IAAgC,EAAE,MAAY,EAAA;QAEvF,IAAI,CAAC,sBAAsB,CACzB;YACE,OAAO;AACP,YAAA,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,KAAK;YACtC,EAAE,EAAE,CAAG,EAAAE,UAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAM,IAAA,CAAA;SACrC,EACD;AAIE,YAAA,GAAG,MAAM;SACV,EACD;YACE,SAAS,EAAE,CAAG,EAAAA,UAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAM,IAAA,CAAA;AAC5C,SAAA,CAAC,CAAA;QAGJ,IAAI,CAAC,qBAAqB,CAAC;AACzB,YAAA,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI,CAAC,KAAK;AACrB,aAAA;AACD,YAAA,GAAG,MAAM;SACV,EAAE;YACD,SAAS,EAAE,CAAG,EAAAA,UAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAM,IAAA,CAAA;AAC5C,SAAA,CAAC,CAAA;KACH;AAED,IAAA,YAAY,CAAC,GAAW,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AACjD,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAW,QAAA,EAAA,OAAO,EAAE,CAAA;KAC7F;AAED,IAAA,kBAAkB,CAAC,QAAa,EAAA;QAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAA;QACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QAC7C,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC3C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAA;AAC/C,QAAA,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QAG5E,MAAM,MAAM,GAAG,YAAY,CAAA;QAE3B,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC7D,QAAA,MAAM,kBAAkB,GAAG,CAAG,EAAA,iBAAiB,EAAE,CAAA;AACjD,QAAA,OAAO,kBAAkB,CAAA;KAC1B;AAED,IAAA,WAAW,CAAC,SAAc,EAAA;AACxB,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QAGtB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAErC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,CAAG,EAAA,IAAI,IAAI,KAAK,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAA;QAC5C,IAAI,SAAS,KAAK,UAAU,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb;IAED,gBAAgB,CAAC,IAAS,EAAE,IAAS,EAAA;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9B,QAAA,OAAO,GAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAG,EAAA,GAAG,EAAE,CAAA;KAC/B;AACD,IAAA,cAAc,CAAC,UAAe,EAAA;QAC5B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAI;YACxC,MAAM,SAAS,GAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YAC5C,MAAM,UAAU,GAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAC7C,YAAA,OAAO,UAAU,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACxC,SAAC,CAAC,CAAA;KACH;AACD,IAAA,iBAAiB,CAAC,UAAe,EAAA;QAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAI;YACxC,MAAM,SAAS,GAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YAC5C,MAAM,UAAU,GAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAC7C,YAAA,OAAO,UAAU,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACxC,SAAC,CAAC,CAAA;KACH;AAGD,IAAA,gBAAgB,CAAC,QAAa,EAAA;QAC5B,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;AACtB,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;AAC1B,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;YAC1B,MAAM,IAAI,GAAG,QAAQ,CAAA;YACrB,IAAI,WAAW,GAAY,KAAK,CAAA;YAChC,IAAI,gBAAgB,GAAY,KAAK,CAAA;YACrC,IAAI,WAAW,GAAY,KAAK,CAAA;YAChC,IAAI,aAAa,GAAY,KAAK,CAAA;YAElC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;gBAEvC,gBAAgB,GAAG,KAAK,CAAA;gBACxB,WAAW,GAAG,KAAK,CAAA;gBACnB,WAAW,GAAG,KAAK,CAAA;gBACnB,aAAa,GAAG,KAAK,CAAA;AACrB,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;AACvB,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;gBACxB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAA;AACtC,gBAAA,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAA;gBACjC,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,GAAG,CAAG,EAAA,OAAO,UAAU,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;oBAChH,CAAG,EAAA,KAAK,CAAO,KAAA,CAAA,GAAG,GAAG,KAAK,CAAA,MAAA,CAAQ,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAG,EAAA,KAAK,CAAS,MAAA,EAAA,OAAO,CAAU,QAAA,CAAA;AACvF,oBAAA,CAAA,EAAG,KAAK,CAAA,OAAA,EAAU,OAAO,CAAA,QAAA,CAAU,CAAA;AACrC,gBAAA,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,KAAK,SAAS,GAAG,GAAG,CAAC,cAAc,GAAG,EAAE,CAAA;gBAC9E,MAAM,GAAG,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;gBACvF,MAAM,cAAc,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,WAAW,CAAA;AAE5E,gBAAA,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9B,gBAAA,MAAM,SAAS,GAAG,CAAA,EAAG,IAAI,CAAG,EAAA,GAAG,EAAE,CAAA;AAEjC,gBAAA,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBACvC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAChC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC/B,gBAAA,MAAM,OAAO,GAAG,CAAA,EAAG,KAAK,CAAG,EAAA,IAAI,EAAE,CAAA;AACjC,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;AACrE,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;AACpE,gBAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;gBACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;gBACpD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;oBACpD,gBAAgB,GAAG,KAAK,CAAA;oBACxB,WAAW,GAAG,IAAI,CAAA;oBAClB,IAAI,KAAK,IAAI,YAAY,EAAE;wBACzB,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;4BACrD,gBAAgB,GAAG,IAAI,CAAA;4BACvB,WAAW,GAAG,KAAK,CAAA;AACpB,yBAAA;AACF,qBAAA;AACF,iBAAA;qBAAM,IAAI,KAAK,IAAI,YAAY,EAAE;oBAChC,gBAAgB,GAAG,IAAI,CAAA;oBACvB,WAAW,GAAG,KAAK,CAAA;AACnB,oBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBAC3E,WAAW,GAAG,IAAI,CAAA;AACnB,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;wBAC7E,aAAa,GAAG,IAAI,CAAA;AACrB,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,YAAY,GAAG;oBACnB,SAAS;oBACT,YAAY;oBACZ,WAAW;oBACX,aAAa;oBACb,WAAW;oBACX,gBAAgB;AAChB,oBAAA,KAAK,EAAE,GAAG;oBACV,SAAS,EAAE,GAAG,CAAC,IAAI;AACnB,oBAAA,cAAc,EAAE,SAAS;AACzB,oBAAA,YAAY,EAAE,OAAO;oBACrB,cAAc,EAAE,GAAG,CAAC,SAAS;oBAC7B,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;AACtD,oBAAA,aAAa,EAAE,QAAQ;oBACvB,WAAW,EAAE,cAAc,CAAC,MAAM;AAClC,oBAAA,cAAc,EAAE,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC;wBAChF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;wBAC9B,kCAAkC;AACpC,oBAAA,SAAS,EAAE,KAAK;iBACjB,CAAA;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AAC/C,gBAAA,IAAI,OAAO,EAAE;AACX,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AACrC,iBAAA;gBACD,IAAI,OAAO,IAAI,WAAW,EAAE;AAC1B,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AACzC,iBAAA;AACD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC1C,aAAC,CAAC,CAAA;YAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAClE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACvE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAE5D,SAAA;KACF;AACD,IAAA,eAAe,CAAC,SAAc,EAAA;QAC5B,IAAI,UAAU,GAAQ,EAAE,CAAA;QACxB,IAAI,UAAU,GAAQ,EAAE,CAAA;QACxB,IAAI,YAAY,GAAQ,EAAE,CAAA;AAE1B,QAAA,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAClC,QAAA,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,SAAc,KAAK,SAAS,CAAC,WAAW,CAAC,CAAA;AACxE,QAAA,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,WAAgB,KAAK,WAAW,CAAC,aAAa,CAAC,CAAA;AAChF,QAAA,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;AAC/C,QAAA,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;AACnD,QAAA,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;AAC5C,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,UAAU,CAAC,CAAA;QAEnE,OAAO,IAAI,CAAC,YAAY,CAAA;KACzB;AAED,IAAA,mBAAmB,CAAC,SAAc,EAAA;QAChC,IAAI,UAAU,GAAQ,EAAE,CAAA;QACxB,IAAI,UAAU,GAAQ,EAAE,CAAA;QACxB,IAAI,YAAY,GAAQ,EAAE,CAAA;AAE1B,QAAA,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAClC,QAAA,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,SAAc,KAAK,SAAS,CAAC,WAAW,CAAC,CAAA;AACxE,QAAA,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,WAAgB,KAAK,WAAW,CAAC,aAAa,CAAC,CAAA;AAChF,QAAA,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;AAC/C,QAAA,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;AACnD,QAAA,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;AAC5C,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,UAAU,CAAC,CAAA;QAEvE,OAAO,IAAI,CAAC,gBAAgB,CAAA;KAC7B;AAlVU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAmBb,aAAa,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAnBZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAoBI,MAAM;2BAAC,aAAa,CAAA;;;MCZZ,6BAA6B,CAAA;AAyBxC,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAvBrC,IAAU,CAAA,UAAA,GAAiB,UAAU,CAAA;QACrC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;AACf,QAAA,IAAA,CAAA,YAAY,GAAG;AACtB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,oBAAoB,EAAE,KAAK;SAC5B,CAAA;AACS,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;QAOvC,IAAoB,CAAA,oBAAA,GAAsB,IAAI,CAAA;QAE9C,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAClB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAClB,IAAS,CAAA,SAAA,GAAG,CAAC,CAAA;QACb,IAAW,CAAA,WAAA,GAAG,UAAU,CAAA;QACxB,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAA;QACjB,IAAc,CAAA,cAAA,GAAwB,IAAI,CAAA;KAEC;IAEnD,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,UAAU,CAAA;QAC/G,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAA;YACtD,IAAI,CAAC,cAAc,GAAG,SAAS,CAC7B,oBAAoB,CAAC,aAAa,EAClC,QAAQ,CACT;iBACA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;iBAC1C,SAAS,CAAC,CAAC,IAAG;gBACb,IAAI,CAAC,yBAAyB,CAAC,oBAAoB;AAChD,qBAAA,aAA4B,CAAC,CAAA;AAClC,aAAC,CAAC,CAAA;YAEF,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAC1B,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAK;YACxB,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,gBAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,oBAAoB;AACrD,qBAAA,aAA4B,CAAC,CAAA;AACjC,aAAA;AACH,SAAC,CAAC,CAAA;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAA;KAC1B;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAA;AAClC,SAAA;KACF;IAED,QAAQ,GAAA;QAGN,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAE7B,MAAM,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;AACzE,YAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAC/C,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW;AACtE,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA,CAAC,CAAA;AAEF,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA;AACnB,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAA;AAC3C,SAAA;KACF;IAED,QAAQ,GAAA;QAGN,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAE7B,MAAM,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;AACzE,YAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAC/C,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,UAAU,GAAG,WAAW;AACtE,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA,CAAC,CAAA;AACF,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA;AACnB,YAAA,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAA;AAC5C,SAAA;KACF;AACO,IAAA,wBAAwB,CAAC,EAAU,EAAA;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,sBAAsB,CACtC;YACE,EAAE;AACF,YAAA,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,KAAK;YACtC,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,SAAA,EACD,EAAE,EACF;AACE,YAAA,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,IAAI;AAC3C,SAAA,CACF,CAAA;KACF;AAEO,IAAA,yBAAyB,CAAC,IAAiB,EAAA;AACjD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;AACtB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;AACnB,SAAA;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;AAC7F,QAAA,IAAI,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;AACtC,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AACjC,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;AACrB,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;AACvB,gBAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;oBAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;AACjD,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,KAAK,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;AACtF,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA;AAC/D,SAAA;KACF;AAED,IAAA,OAAO,CAAC,GAAQ,EAAA;AACd,QAAA,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAA;QAoBjC,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,MAAM,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;AACzE,YAAA,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,gBAAA,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,UAAU,IAAI,WAAW,GAAG,IAAI,CAAC;AAC/E,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA,CAAC,CAAA;AACH,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAA;KACrB;IAED,kBAAkB,GAAA;QAChB,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;AACzB,YAAA,IAAI,SAAS,CAAA;AACb,YAAA,IAAI,SAAS,CAAA;AAEb,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,cAAc,EAAE;gBACvC,SAAS,GAAG,IAAI,CAAC,WAAW,KAAK,UAAU,GAAG,GAAG;qBAChD,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;AAClD,wBAAA,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;AACnE,0BAAE,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAA;AACzE,gBAAA,IAAI,QAAQ,CAAC,sBAAsB,CAAC,6BAA6B,CAAC;oBAClE,QAAQ,CAAC,sBAAsB,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE;AACjE,oBAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,sBAAsB,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;AACnG,oBAAA,MAAM,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;oBACvD,IAAI,gBAAgB,GAAG,aAAa,EAAE;AACpC,wBAAA,SAAS,IAAI,aAAa,GAAG,SAAS,CAAC,CAAA;AACvC,wBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;AAC5F,4BAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAA;AACtE,wBAAA,SAAS,GAAG,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAA;wBAC9C,IAAI,SAAS,KAAK,QAAQ,EAAE;AAC1B,4BAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;AACrC,gCAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC7B,6BAAA;AACF,yBAAA;AAGF,qBAAA;AACF,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,UAAU,CAAC,MAAK;oBACd,SAAS,GAAG,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAA;AACpE,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;AACrC,wBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC7B,qBAAA;iBACF,EAAU,IAAI,CAAC,CAAA;AACjB,aAAA;AACF,SAAA;KACF;+GAtMU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,ugBCjB1C,gjDA0BM,EAAA,MAAA,EAAA,CAAA,8tCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDTO,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;+BACE,iCAAiC,EAAA,QAAA,EAAA,gjDAAA,EAAA,MAAA,EAAA,CAAA,8tCAAA,CAAA,EAAA,CAAA;gGAOlC,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACE,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEN,oBAAoB,EAAA,CAAA;sBADnB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MEfxC,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA1B,0BAA0B,EAAA,YAAA,EAAA,CATtB,6BAA6B,CAAA,EAAA,OAAA,EAAA,CAE1C,YAAY;YACZX,qBAAe;YACf,aAAa;AACb,YAAAO,8BAAwB,aAEhB,6BAA6B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,YAPnC,YAAY;YACZP,qBAAe;YACf,aAAa;YACbO,8BAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIf,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAVtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,6BAA6B,CAAC;AAC7C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZP,qBAAe;wBACf,aAAa;wBACbO,8BAAwB;AACzB,qBAAA;oBACD,OAAO,EAAE,CAAC,6BAA6B,CAAC;AACzC,iBAAA,CAAA;;;MCRY,aAAa,CAAA;AACxB,IAAA,WAAA,CAAoB,SAAgC,EAAA;QAAhC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;AAE5C,QAAA,IAAA,CAAA,YAAY,GAAG,OAAO,CAAC,KAAK,CAAA;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAG,OAAO,CAAC,IAAI,CAAA;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAG,OAAO,CAAC,GAAG,CAAA;AACxB,QAAA,IAAA,CAAA,WAAW,GAAG,OAAO,CAAC,IAAI,CAAA;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAI,CAAA;KANgB;AAQzD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,YAAY,CAAA;KACzB;AACD,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAA;KACvE;AACD,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;KACtE;AACD,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAA;KACvE;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC/B,OAAM;AACP,SAAA;QACD,MAAM,kBAAkB,GAAe,MAAK;AAC1C,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;AAC7D,SAAC,CAAA;AAED,QAAA,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAA;AACjC,QAAA,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAA;AACjC,QAAA,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAA;KACnC;+GAjCU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACAD,MAAM,qBAAqB,GAAG,GAAG,CAAA;AACjC,MAAMC,YAAU,GAAG,kBAAkB,CAAA;AACrC,MAAMC,SAAO,GAAG,YAAY,CAAA;AAE5B,MAAM,aAAa,GAAG;AACpB,IAAA,eAAe,EAAE,+BAA+B;CACjD,CAAA;MAIY,oBAAoB,CAAA;IAiB/B,WAAoB,CAAA,SAAwB,EAAU,IAAgB,EAAA;QAAlD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAe;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAhB9D,QAAA,IAAA,CAAA,QAAQ,GAAgC;AAC9C,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,cAAc,EAAE,EAAE;AAClB,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,YAAY,EAAE,KAAK;SACpB,CAAA;QACO,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAA;QAC/B,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAA;AAC1B,QAAA,IAAA,CAAA,OAAO,GAA4B;AACzC,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,SAAS,EAAE,EAAE;SACd,CAAA;KAE0E;AAE3E,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;KACvF;AACD,IAAA,IAAI,QAAQ,GAAA;QACV,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxD,MAAM,IAAI,GAAG,mDAAmD,CAAA;AAChE,YAAA,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;AACtC,gBAAA,aAAa,EAAE,MAAM;AACrB,gBAAA,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACjC,gBAAA,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;AACnC,aAAA,CAAC,CAAA;YACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAC7C,YAAA,IAAI,QAAQ,EAAE;gBACZ,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,WAAW,CAAC,QAAQ,EAAE,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,CAAA;AACvD,aAAA;YACD,OAAO,CAAA,EAAG,IAAI,CAAI,CAAA,EAAA,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAA;AAC3C,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;AACD,IAAA,SAAS,CAAC,WAAmB,EAAA;QAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;YAC3C,OAAO,CAAA,gFAAA,EAAmF,WAAW,CAAA,CAAE,CAAA;AACxG,SAAA;AACD,QAAA,OAAO,WAAW,CAAA;KACnB;IAID,MAAM,IAAI,CAAC,MAAmD,EAAA;AAC5D,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE;AAClE,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;AACxF,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAA;QAChC,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AACxD,QAAA,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;YAC/D,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACnC,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,OAAM;AACP,aAAA;YACD,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAA;YAC7C,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAC/C,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACjB,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAClC,aAAA;YACD,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;AACpC,SAAA;KACF;IAED,MAAM,KAAK,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAoD,iDAAA,EAAA,KAAK,CAAG,CAAA,CAAA,CAAC,CAAA;YACjF,OAAM;AACP,SAAA;AACD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC9B,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;AACnF,SAAA;KACF;IAED,MAAM,QAAQ,CAAC,KAAa,EAAA;QAC1B,IACE,IAAI,CAAC,OAAO;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC9D,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EACxB;AACA,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAA;AAChC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI;gBACF,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACjD,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC5B,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;AACtB,oBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAA;AAChC,iBAAA;AACF,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,oBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACnF,IAAI;AACF,gBAAA,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;AACxE,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;oBAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAA;AAC7C,oBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAA;AAChC,iBAAA;AACF,aAAA;YAAC,OAAO,KAAK,EAAE,GAAG;AACpB,SAAA;AACD,QAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;KACjD;AAED,IAAA,uBAAuB,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;AAC3F,SAAA;QACD,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI;AACF,YAAA,QAAQ,GAAG,QAAQ,CAACA,SAAO,CAAC,OAAO,CAACD,YAAU,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;AAC5D,SAAA;QAAC,OAAO,KAAK,EAAE,GAAG;AACnB,QAAA,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,IAAI,IAAI,GAAG,qBAAqB,CAAC,EAAE;YACrF,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,CAAuB,oBAAA,EAAA,qBAAqB,CAAsC,oCAAA,CAAA,CACnF,CAAA;AACD,YAAAC,SAAO,CAAC,OAAO,CAACD,YAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;AAClD,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAClB,SAAA;KACF;AAED,IAAA,YAAY,CAAC,KAAa,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;KAC3E;IAED,OAAO,CAAC,WAA+B,EAAE,SAA6B,EAAA;QACpE,IAAI,WAAW,IAAI,SAAS,EAAE;AAE5B,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb;AAED,IAAA,MAAM,oBAAoB,CAAC,IAAY,EAAE,WAAmB,EAAA;AAC1D,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI;aAC7B,GAAG,CAA0B,GAAG,aAAa,CAAA,MAAA,EAAS,IAAI,CAAgB,aAAA,EAAA,WAAW,EAAE,CAAC;AACxF,aAAA,SAAS,EAAE,CAAA;AACd,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;KAC9C;IAED,MAAM,gBAAgB,CAAC,KAAa,EAAA;AAClC,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI;aAC7B,GAAG,CAA0B,GAAG,aAAa,CAAC,eAAe,CAAU,OAAA,EAAA,KAAK,EAAE,CAAC;AAC/E,aAAA,SAAS,EAAE,CAAA;AACd,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;KAC9C;AAED,IAAA,uBAAuB,CAAC,KAA8B,EAAA;QACpD,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAA;KACF;+GAnKU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAV,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCiCY,iBAAiB,CAAA;IAkB5B,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,SAAS,CAAA,EAAE;IAU9C,WACU,CAAA,SAAgC,EACjB,WAAgB,EAAA;QAD/B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;AAzBjC,QAAA,IAAA,CAAA,eAAe,GAAW,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;QAoBnD,IAAiB,CAAA,iBAAA,GAA6B,IAAI,CAAA;QAClD,IAAoB,CAAA,oBAAA,GAAyB,IAAI,CAAA;QAClD,IAAM,CAAA,MAAA,GAAG,KAAK,CAAA;AAMnB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;KAC1D;AAID,IAAA,IAAY,aAAa,GAAA;QACvB,OAAO;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,uEAAuE;AACvG,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,IAAI,YAAY;AAC5D,YAAA,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,IAAI,sCAAsC;AAC1F,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,IAAI,6BAA6B;AACrE,YAAA,mBAAmB,EAAE,IAAI,CAAC,WAAW,EAAE,mBAAmB,IAAI,+BAA+B;AAC7F,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA;SACF,CAAA;KACF;AAID,IAAA,aAAa,CAAC,QAAgB,EAAA;QAC5B,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,QAAQ,CAAA;AAAE,SAAA;QAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,KAAK,WAAW,EAAE;AAAE,YAAA,OAAO,WAAW,CAAA;AAAE,SAAA;QACtF,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAAE,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;AAAE,SAAA;AACrD,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAAE,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;AAAE,SAAA;AACnE,QAAA,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAA;KAC5B;IAGD,oBAAoB,GAAA;QAClB,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAA;KACrE;AAQD,IAAA,cAAc,CAAC,iBAAoC,EAAA;QACjD,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;YAC7E,OAAM;AACP,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;AAC1C,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAA;AAGlF,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC9B,YAAA,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC7E,IAAI,WAAW,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC9D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;AACxE,aAAA;AAAM,iBAAA,IACL,IAAI,CAAC,iBAAiB,CAAC,aAAa;gBACpC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,EACpE;AACA,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAA;AACjG,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;KACnB;IAGD,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,aAAa,CAAA;KACvD;IAGD,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,IAAI,SAAS,CAAA;KAClD;IAGD,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,IAAI,MAAM,CAAA;KAC7C;IAGD,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU,CAAA;KAC3C;IAGD,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,SAAS,CAAA;KACtC;AAMD,IAAA,gBAAgB,CAAC,OAAe,EAAA;AAC9B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,IAAI,CAAA;AAAE,SAAA;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AACrC,QAAA,OAAO,OAAO,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;KAC/C;AAMD,IAAA,sBAAsB,CAAC,OAAe,EAAA;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;AACrC,QAAA,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;AAAE,YAAA,OAAO,IAAI,CAAA;AAAE,SAAA;QAC9C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;KAC/C;IAGD,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAA;KAC7C;IAUD,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,EAAE,cAAc,IAAI,EAAE,CAAA;KACvF;IAED,gBAAgB,GAAA;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAA;AAC9C,QAAA,IAAI,UAAU,EAAE;AAAE,YAAA,OAAO,UAAU,CAAA;AAAE,SAAA;QACrC,OAAO,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAA;KACxD;IAED,qBAAqB,GAAA;QACnB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,IAAI,YAAY,CAAA;KAC3D;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAA;KAC3E;IAGD,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAA;KAC/D;IAED,qBAAqB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,mBAAmB;eAC5C,IAAI,CAAC,WAAW,EAAE,mBAAmB;AACrC,eAAA,+BAA+B,CAAA;KACrC;IAGD,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAA;KAC9B;AApMU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,oDA8BlB,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AA9BZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BA+BI,MAAM;2BAAC,aAAa,CAAA;;;AC/DzB,MAAM,OAAO,GAAG,YAAY,CAAA;AAC5B,MAAM,UAAU,GAAG,IAAI,CAAA;MAMV,mBAAmB,CAAA;IAG9B,WACU,CAAA,IAAgB,EAChB,SAAgC,EAEhC,SAA+B,EAC/B,UAA6B,EACd,WAAgB,EAAA;QAL/B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;QAEhC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsB;QAC/B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAmB;AAN/B,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,aAAa,CAAU,CAAC,CAAC,CAAA;QASxD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,UAAmB,KAAI;AACxD,YAAA,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,CAAA;AAC3C,YAAA,IACE,UAAU;gBACV,IAAI,CAAC,SAAS,CAAC,cAAc;gBAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,EACtD;AACA,gBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG;AAC3B,oBAAA,KAAK,EAAE,EAAE;AACT,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,MAAM,EAAE,EAAE;iBACX,CAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;KAC/B;AAGD,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAA;KAC9C;AA2CD,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AAClC,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;AACD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAA;AACpD,QAAA,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,CAAA;AAC7D,SAAA;QACD,IAAI;YACF,IAAI,CAAC,wBAAwB,EAAE,CAAA;YAC/B,IAAI,CAAC,wBAAwB,EAAE,CAAA;AAgB/B,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AAAC,QAAA,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;KACF;AAWD,IAAA,OAAO,CACL,QAA4B,GAAA,GAAG,EAC/B,WAAsB,GAAA,IAAI,CAAC,kBAAkB,EAAA;AAE7C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AACjC,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,GAAG,WAAW,CAAA;AAC/E,YAAA,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;AACzB,SAAA;AACD,QAAA,OAAO,OAAO,CAAC,MAAM,EAAE,CAAA;KACxB;AAWD,IAAA,MAAM,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAA;AAChD,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;AACzC,YAAA,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;AACzC,SAAA;QACD,IAAI;YACF,cAAc,CAAC,KAAK,EAAE,CAAA;YACtB,YAAY,CAAC,KAAK,EAAE,CAAA;AACrB,SAAA;QAAC,MAAM;AAEP,SAAA;AACD,QAAA,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAE9B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAG,EAAA,WAAW,YAAY,CAAA;KAWlD;AACD,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;AACzC,YAAA,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;AACzC,SAAA;AAAM,aAAA;AAEL,YAAA,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAI9B,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAA,QAAA,EAAW,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,aAAa,CAAA;YAClF,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,SAAS,EAAE,CAAA;AAGlF,SAAA;QACD,IAAI;YACF,cAAc,CAAC,KAAK,EAAE,CAAA;YACtB,YAAY,CAAC,KAAK,EAAE,CAAA;AACrB,SAAA;QAAC,MAAM;AAEP,SAAA;AACD,QAAA,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAG9B,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAA,QAAA,EAAW,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,aAAa,CAAA;QAGlF,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,SAAS,EAAE,CAAA;KAGlF;AAED,IAAA,mBAAmB,CAAC,GAAW,EAAA;QAE7B,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AAG/C,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;AAChB,QAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;AAClC,QAAA,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAA;AACxB,QAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAA;AACzB,QAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;AAC5B,QAAA,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAA;AAClC,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;AAG1B,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;KAClC;IAEO,wBAAwB,GAAA;KA2B/B;IAEO,wBAAwB,GAAA;KA0B/B;AAgCD,IAAA,IAAY,kBAAkB,GAAA;QAC5B,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;AAChC,YAAA,OAAO,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAA;AAClC,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;YACd,OAAO,QAAQ,CAAC,MAAM,CAAA;AACvB,SAAA;KACF;AA7SU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,6IASpB,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AATZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAUI,MAAM;2BAAC,aAAa,CAAA;;;MCpBZ,eAAe,CAAA;IAK1B,WACS,CAAA,SAAwC,EACvC,OAA4B,EAC5B,SAAgC,EAChC,UAA0B,EAC1B,SAA2B,EAAA;QAJ5B,IAAS,CAAA,SAAA,GAAT,SAAS,CAA+B;QACvC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAqB;QAC5B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAgB;QAC1B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QARrC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;QAChB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAA;QACzB,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAA;AAQ3B,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;AAC3C,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;YAGnC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,IAAK,CAAA;AAC7D,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACzB,SAAA;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;AAC9E,YAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AACvF,SAAA;KACF;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;AACtB,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AACxC,YAAA,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AACxC,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AACxC,YAAA,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AACxC,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;AAC9C,YAAA,YAAY,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;AAC9C,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;AAC3C,YAAA,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;AAC3C,SAAA;QAED,IAAI,CAAC,YAAY,EAAE,CAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA;AAC3B,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/B,YAAA,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AAC/B,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;AACzC,YAAA,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;AACzC,SAAA;AACD,QAAA,IAAI,cAAc,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE;AACpD,YAAA,cAAc,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;AACpD,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;AAC/C,YAAA,YAAY,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAA;AAC/C,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE;AACpD,YAAA,YAAY,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAA;AACpD,SAAA;KACF;IACD,YAAY,GAAA;QACV,IAAI,CAAC,QAAQ,EAAE;AAGb,YAAA,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;YAChE,OAAM;AACP,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAEpB,OAAM;AACP,SAAA;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAA;QAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,MAAM,GAAG,+BAA+B,CAAA;AAE9C,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;YACpB,IAAI;gBACF,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC5B,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC9D,IAAI,CAAC,IAAI,EAAE;oBACT,OAAM;AACP,iBAAA;gBAED,IAAI;oBACF,QAAQ,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAa,UAAA,EAAA,MAAM,SAAS,CAAA;AACtD,iBAAA;AAAC,gBAAA,OAAO,CAAC,EAAE;AAEX,iBAAA;AAED,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,oBAAA,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBAC7C,IAAI;wBACF,QAAQ,CAAC,MAAM,GAAG,CAAG,EAAA,IAAI,aAAa,MAAM,CAAA,eAAA,EAAkB,MAAM,CAAA,CAAE,CAAA;AACvE,qBAAA;AAAC,oBAAA,OAAO,GAAG,EAAE;AAEb,qBAAA;AACF,iBAAA;AACF,aAAA;AAAC,YAAA,OAAO,GAAG,EAAE;gBAGZ,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;AAC9C,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AAED,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,0BAA0B;AAC3F,aAAC,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;AAC7D,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb;+GAnHU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAmB,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,uDCZ5B,wtBAeA,EAAA,MAAA,EAAA,CAAA,mCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDHa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,wtBAAA,EAAA,MAAA,EAAA,CAAA,mCAAA,CAAA,EAAA,CAAA;;;MEShB,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAZ,YAAY,EAAA,YAAA,EAAA,CARN,eAAe,CAAA,EAAA,OAAA,EAAA,CAE1B,YAAY;YACZG,qBAAe;YACfC,qBAAe;YACf,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAGV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YANjB,YAAY;YACZD,qBAAe;YACfC,qBAAe;YACf,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGV,YAAY,EAAA,UAAA,EAAA,CAAA;kBATxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,eAAe,CAAC;AAC/B,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZD,qBAAe;wBACfC,qBAAe;wBACf,eAAe;AAClB,qBAAA;AACJ,iBAAA,CAAA;;;MCLY,wBAAwB,CAAA;AACnC,IAAA,SAAS,CAAC,SAAqB,EAAA;QAC7B,IAAI;AACF,YAAA,IAAI,YAAoB,CAAA;AACxB,YAAA,IAAI,MAAc,CAAA;AAClB,YAAA,IAAI,MAAc,CAAA;YAClB,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAEzC,YAAA,MAAM,WAAW,GAAG;AAClB,gBAAA,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE;AACvB,gBAAA,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC7D,gBAAA,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE;AAC5B,gBAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE;aACzB,CAAA;AAED,YAAA,MAAM,SAAS,GAAG;AAChB,gBAAA,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE;AACrB,gBAAA,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3D,gBAAA,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE;AAC1B,gBAAA,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;aACvB,CAAA;AAED,YAAA,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;AACvC,gBAAA,YAAY,GAAG,CAAA,EAAG,WAAW,CAAC,GAAG,CAAI,CAAA,EAAA,WAAW,CAAC,KAAK,CAAI,CAAA,EAAA,WAAW,CAAC,IAAI,EAAE,CAAA;AAC5E,gBAAA,OAAO,YAAY,CAAA;AACpB,aAAA;AAED,YAAA,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE;AACzC,gBAAA,MAAM,GAAG,CAAA,EAAG,WAAW,CAAC,GAAG,CAAI,CAAA,EAAA,WAAW,CAAC,KAAK,CAAI,CAAA,EAAA,WAAW,CAAC,IAAI,EAAE,CAAA;AACtE,gBAAA,MAAM,GAAG,CAAA,EAAG,SAAS,CAAC,GAAG,CAAI,CAAA,EAAA,SAAS,CAAC,KAAK,CAAI,CAAA,EAAA,SAAS,CAAC,IAAI,EAAE,CAAA;AAChE,gBAAA,YAAY,GAAG,CAAG,EAAA,MAAM,CAAM,GAAA,EAAA,MAAM,EAAE,CAAA;AACtC,gBAAA,OAAO,YAAY,CAAA;AACpB,aAAA;AAED,YAAA,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE;AACzC,gBAAA,MAAM,GAAG,CAAG,EAAA,WAAW,CAAC,GAAG,EAAE,CAAA;AAC7B,gBAAA,MAAM,GAAG,CAAA,EAAG,SAAS,CAAC,GAAG,CAAI,CAAA,EAAA,SAAS,CAAC,KAAK,CAAI,CAAA,EAAA,SAAS,CAAC,IAAI,EAAE,CAAA;AACjE,aAAA;AAAM,iBAAA;gBACL,MAAM,GAAG,CAAG,EAAA,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,KAAK,CAAA,CAAE,CAAA;AAClD,gBAAA,MAAM,GAAG,CAAA,EAAG,SAAS,CAAC,GAAG,CAAI,CAAA,EAAA,SAAS,CAAC,KAAK,CAAI,CAAA,EAAA,SAAS,CAAC,IAAI,EAAE,CAAA;AACjE,aAAA;AAED,YAAA,YAAY,GAAG,CAAG,EAAA,MAAM,CAAM,GAAA,EAAA,MAAM,EAAE,CAAA;AACtC,YAAA,OAAO,YAAY,CAAA;AACpB,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YACV,OAAO,CAAA,EAAG,SAAS,CAAC,QAAQ,MAAM,SAAS,CAAC,MAAM,CAAA,CAAE,CAAA;AACrD,SAAA;KACF;+GAhDU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAxB,wBAAwB,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,sBAAsB;AAC7B,iBAAA,CAAA;;;MCDY,0BAA0B,CAAA;+GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAJtB,YAAA,EAAA,CAAA,wBAAwB,CAC7B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,YAH3B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,iBAAA,CAAA;;;MCHY,sBAAsB,CAAA;AAEjC,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAA;QACrB,MAAM,OAAO,GAAG,OAAO,CAAA;QACvB,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,IAAI,KAAK,GAAG,QAAQ,EAAE;AACpB,gBAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,aAAA;AACD,YAAA,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,GAAG,OAAO,EAAE;AACxC,gBAAA,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;AAC3C,gBAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACvB,OAAO,CAAA,EAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA;AACjC,iBAAA;gBACD,OAAO,CAAA,EAAG,KAAK,CAAA,CAAA,CAAG,CAAA;AACnB,aAAA;AACD,YAAA;AACE,gBAAA,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;AAC1C,gBAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACvB,OAAO,CAAA,EAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA;AACjC,iBAAA;gBACD,OAAO,CAAA,EAAG,KAAK,CAAA,CAAA,CAAG,CAAA;AACnB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,GAAG,CAAA;KACX;+GAzBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC3B,iBAAA,CAAA;;;MCOY,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EANpB,YAAA,EAAA,CAAA,sBAAsB,CAEnC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAErB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAJjC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACtC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA,CAAA;;;MCEY,kBAAkB,CAAA;AAG7B,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,MAAM,GAAG;YACZ,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;SACN,CAAA;KACF;AAED,IAAA,SAAS,CAAC,KAAyB,EAAA;QACjC,IAAI,OAAO,GAAG,CAAG,EAAA,KAAK,CAAC,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAA,CAAE,CAAA;QAC1E,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,IAAI,CAAI,CAAA,EAAA,KAAK,CAAC,QAAQ,EAAE,CAAA;AAChC,SAAA;AAED,QAAA,OAAO,OAAO,CAAA;KACf;+GA3BU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;;MCAY,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EANhB,YAAA,EAAA,CAAA,kBAAkB,CAE/B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAJ7B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;MCJY,yBAAyB,CAAA;IAEpC,SAAS,CAAC,IAAY,EAAE,IAAqE,EAAA;QAC3F,IAAI,IAAI,IAAI,CAAC,EAAE;AACb,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;AACjC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,CAAA;AACxC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,CAAA;QACxC,IAAI,QAAQ,GAAG,EAAE,CAAA;AACjB,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AACtC,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AACrD,YAAA,KAAK,OAAO;gBAEV,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AAClD,gBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AAC9E,gBAAA,OAAO,YAAY,CAAA;AACrB,YAAA,KAAK,OAAO;gBACV,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AACnD,gBAAA,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAE9E,gBAAA,OAAO,cAAc,CAAA;AACvB,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,KAAK,CAAC,EAAE;oBACX,QAAQ,IAAI,mBAAmB,CAAA;AAChC,iBAAA;gBACD,IAAI,CAAC,KAAK,CAAC,EAAE;AACX,oBAAA,QAAQ,IAAI,CAAA,EAAG,CAAC,CAAA,KAAA,CAAO,CAAA;AACxB,iBAAA;gBACD,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,oBAAA,QAAQ,IAAI,CAAA,EAAG,CAAC,CAAA,MAAA,CAAQ,CAAA;AACzB,iBAAA;AACD,gBAAA,OAAO,QAAQ,CAAA;AACjB,YAAA,KAAK,KAAK;gBACR,IAAI,CAAC,GAAG,EAAE,EAAE;oBACV,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AAClD,oBAAA,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAA;AACpC,iBAAA;AACD,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AACrD,YAAA,KAAK,MAAM;AAAE,gBAAA,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,CAAG,CAAA;AAChC,gBAAA,OAAO,QAAQ,CAAA;AACjB,YAAA;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AACvC,SAAA;KACF;AAED,IAAA,eAAe,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;QAC7C,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAG,EAAA,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAA;QACvD,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAG,EAAA,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAA;QAC1D,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;AACnD,QAAA,OAAO,QAAQ,CAAA;KAChB;IACD,cAAc,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,GAAW,EAAE,IAAY,EAAA;QACvE,IAAI,KAAK,GAAG,EAAE,CAAA;QACd,IAAI,QAAQ,GAAG,GAAG,CAAA;QAClB,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,YAAA,QAAQ,IAAI,IAAI,KAAK,KAAK,GAAG,CAAA,EAAG,CAAC,CAAA,CAAA,CAAG,GAAG,CAAG,EAAA,CAAC,KAAK,CAAA;AACjD,SAAA;QACD,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,KAAK,GAAG,GAAG,CAAA;AACZ,aAAA;YACD,QAAQ,IAAI,IAAI,KAAK,KAAK,GAAG,GAAG,KAAK,CAAA,EAAG,CAAC,CAAG,CAAA,CAAA,GAAG,CAAA,EAAG,KAAK,CAAG,EAAA,CAAC,MAAM,CAAA;AAClE,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,KAAK,GAAG,GAAG,CAAA;AACZ,aAAA;YACD,QAAQ,IAAI,IAAI,KAAK,KAAK,GAAG,GAAG,KAAK,CAAA,EAAG,CAAC,CAAG,CAAA,CAAA,GAAG,CAAA,EAAG,KAAK,CAAG,EAAA,CAAC,MAAM,CAAA;AAClE,SAAA;AACD,QAAA,OAAO,QAAQ,CAAA;KAChB;+GA3EU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAzB,yBAAyB,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,uBAAuB;AAC9B,iBAAA,CAAA;;;MCMY,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,EANvB,YAAA,EAAA,CAAA,yBAAyB,CAEtC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAExB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAJpC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,yBAAyB,CAAC;AACzC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACrC,iBAAA,CAAA;;;MCLY,sBAAsB,CAAA;AAEjC,IAAA,SAAS,CAAC,UAAkB,EAAA;AAC1B,QAAA,OAAO,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;KACrE;+GAJU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC3B,iBAAA,CAAA;;;MCOY,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EANpB,YAAA,EAAA,CAAA,sBAAsB,CAEnC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAErB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAJjC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACtC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA,CAAA;;;MCLY,cAAc,CAAA;AAEzB,IAAA,SAAS,CAAC,KAAU,EAAE,IAAY,EAAE,IAAY,EAAA;QAC9C,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;AACD,QAAA,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACvD,aAAA,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,CAAI,CAAA,EAAA,IAAI,CAAG,CAAA,CAAA,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;KAE3F;+GATU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA,CAAA;;;MCOY,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EANZ,YAAA,EAAA,CAAA,cAAc,CAE3B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;AAEb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAJzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,cAAc,CAAC;AAC9B,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,cAAc,CAAC;AAC1B,iBAAA,CAAA;;;MCLY,eAAe,CAAA;AAE1B,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,IAAI,KAAK,KAAK,CAAC,EAAE;AAAE,YAAA,OAAO,KAAK,CAAA;AAAE,SAAA;QACjC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACzC,QAAA,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,CAAA;QACrB,OAAO,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;KACvE;+GAPU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAf,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACpB,iBAAA,CAAA;;;MCOY,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EANb,YAAA,EAAA,CAAA,eAAe,CAE5B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAJ1B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;AAC/B,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;MCLY,aAAa,CAAA;AAExB,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;KAE3D;+GALU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAA;;;MCOY,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EANX,YAAA,EAAA,CAAA,aAAa,CAE1B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;AAEZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAJxB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,aAAa,CAAC;AAC7B,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA,CAAA;;;MCLY,gBAAgB,CAAA;AAE3B,IAAA,SAAS,CAAC,KAAS,EAAE,GAAW,EAAE,UAAkB,EAAA;QAClD,IAAI,CAAC,KAAK,EAAE;AAAE,YAAA,OAAO,EAAE,CAAA;AAAE,SAAA;QACzB,IAAI,CAAC,UAAU,EAAE;AAAE,YAAA,OAAO,KAAK,CAAA;AAAE,SAAA;AACjC,QAAA,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;AAEpD,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,IAAG;AACvB,YAAA,OAAO,CAAG,EAAA,EAAE,CAAC,GAAG,CAAC,CAAG,CAAA,CAAA,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAClE,SAAC,CAAC,CAAA;KAEH;+GAXU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAA;;;MCOY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EANd,YAAA,EAAA,CAAA,gBAAgB,CAE7B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAJ3B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;AAChC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA,CAAA;;;MCLY,gBAAgB,CAAA;AAE3B,IAAA,SAAS,CAAC,KAAU,EAAE,MAAW,EAAE,KAAc,EAAA;QAC/C,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAClC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACtC,YAAA,IAAI,KAAK,EAAE;gBACT,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,IACpB,UAAU,CAAC,MAAM,CAAC,CAAC,IAAa,EAAE,OAAO,KAErC,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;AAC1G,aAAA;AACC,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,IAAG;AACzB,gBAAA,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,IAAG;oBAC/B,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;AACxF,iBAAC,CAAC,CAAA;AACJ,aAAC,CAAC,CAAA;AAEL,SAAA;AACC,QAAA,OAAO,KAAK,CAAA;KAEf;+GApBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACrB,iBAAA,CAAA;;;MCOY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EANd,YAAA,EAAA,CAAA,gBAAgB,CAE7B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAJ3B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;AAChC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA,CAAA;;;MCLY,oBAAoB,CAAA;AAE/B,IAAA,SAAS,CAAC,KAAY,EAAE,UAAkB,EAAE,GAAG,IAAS,EAAA;QACtD,IAAI,CAAC,KAAK,EAAE;AAAE,YAAA,OAAO,EAAE,CAAA;AAAE,SAAA;QACzB,IAAI,CAAC,UAAU,EAAE;AAAE,YAAA,OAAO,KAAK,CAAA;AAAE,SAAA;AACjC,QAAA,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;AACpD,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YACvB,MAAM,MAAM,GAAI,KAAK,CAAC,MAAM,CAAC,EAAE,IAAG;gBAChC,IAAI,EAAE,CAAC,cAAc,EAAE;oBACvB,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAClG,iBAAA;gBACA,IAAI,EAAE,CAAC,eAAe,EAAE;AACvB,oBAAA,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AACjF,iBAAA;gBACD,IAAI,EAAE,CAAC,QAAQ,EAAE;oBAChB,OAAO,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAC9D,iBAAA;AAMJ,aAAC,CAAC,CAAA;AACF,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;AAChC,gBAAA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACZ,aAAA;AACD,YAAA,OAAO,MAAM,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,IAAG;YACvB,OAAO,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;AAC7D,SAAC,CAAC,CAAA;KACH;+GA/BU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAApB,oBAAoB,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA,CAAA;;;MCOY,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EANlB,YAAA,EAAA,CAAA,oBAAoB,CAEjC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAJ/B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA,CAAA;;;MCLY,kBAAkB,CAAA;AAE7B,IAAA,SAAS,CAAC,KAAU,EAAE,IAAY,EAAE,IAAY,EAAA;QAC9C,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;AACD,QAAA,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACvD,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;eAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAG,CAAA,CAAA,EAAE,iBAAiB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAA;KAG/F;+GAXU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;;MCOY,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EANhB,YAAA,EAAA,CAAA,kBAAkB,CAE/B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAJ7B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;MCJY,oBAAoB,CAAA;AAC/B,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAA;AAC3C,SAAA;QACD,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;KAC1C;+GANU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAApB,oBAAoB,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA,CAAA;;;MCMY,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EANlB,YAAA,EAAA,CAAA,oBAAoB,CAEjC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAJ/B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA,CAAA;;;MCHY,WAAW,CAAA;AAJxB,IAAA,WAAA,GAAA;QAKE,IAAS,CAAA,SAAA,GAAG,OAAO,CAAA;AACpB,KAAA;+GAFY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA,CAAA;;;MCMY,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EANb,YAAA,EAAA,CAAA,WAAW,CAExB,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;AAEV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAJ1B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,WAAW,CAAC;AAC3B,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,WAAW,CAAC;AACvB,iBAAA,CAAA;;;MCLY,eAAe,CAAA;AAE1B,IAAA,SAAS,CAAC,IAAS,EAAE,KAAA,GAAgB,CAAC,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAC5B,SAAA;AACD,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAC1C,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;gBACvB,OAAO,CAAA,EAAG,YAAY,CAAA,GAAA,CAAK,CAAA;AAC5B,aAAA;AACD,YAAA,OAAO,YAAY,CAAA;AACpB,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;+GAjBU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAf,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACpB,iBAAA,CAAA;;;MCOY,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EANb,YAAA,EAAA,CAAA,eAAe,CAE5B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAJ1B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,eAAe,CAAC;AAC/B,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;MCCY,qBAAqB,CAAA;AAEhC,IAAA,SAAS,CAAC,KAAgB,EAAA;QACxB,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,KAAK,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,SAAS,CAAA;AAC1B,SAAA;AAID,QAAA,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AACxB,YAAA,OAAO,MAAM,CAAA;AACd,SAAA;QACD,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,OAAO,KAAK,CAAC,KAAK,CAAA;AACnB,SAAA;AACD,QAAA,OAAO,gBAAgB,CAAA;KACxB;+GAjBU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAArB,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,mBAAmB;AAC1B,iBAAA,CAAA;;;MCCY,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EANnB,YAAA,EAAA,CAAA,qBAAqB,CAElC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAJhC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACrC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA,CAAA;;;MCLY,sBAAsB,CAAA;IAEjC,SAAS,CAAC,KAAU,EAAE,IAAc,EAAA;QAClC,MAAM,MAAM,GAA2B,EAAE,CAAA;AACzC,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,YAAA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;gBACd,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;AACzB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAA;KACd;+GAVU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;AAC3B,iBAAA,CAAA;;;MCOY,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EANpB,YAAA,EAAA,CAAA,sBAAsB,CAEnC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAErB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAJjC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACtC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA,CAAA;;;MCJY,qBAAqB,CAAA;AAEhC,IAAA,WAAA,CAAsB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAK;AAC3C,IAAA,SAAS,CACd,KAAa,EACb,IAAA,GAAe,MAAM,EAAA;AAErB,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;AACtD,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;AACvD,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAA;AACxD,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;AACrD,YAAA,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAA;AAC7D,YAAA;AACE,gBAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAA,CAAE,CAAC,CAAA;AAC1D,SAAA;KACF;+GArBU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAArB,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,mBAAmB;AAC1B,iBAAA,CAAA;;;MCMY,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EANnB,YAAA,EAAA,CAAA,qBAAqB,CAElC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAJhC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACrC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA,CAAA;;;MCLY,aAAa,CAAA;AAExB,IAAA,WAAA,CAAmC,WAAgB,EAAA;AACjD,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;KAC/B;AACD,IAAA,SAAS,CAAC,KAAa,EAAA;AAIrB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChE,YAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC5D,YAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAW,QAAA,EAAA,OAAO,EAAE,CAAA;YACtG,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,SAAA;AAGD,QAAA,OAAO,KAAK,CAAA;KACb;AAjBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAEJ,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAFtB,aAAa,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;AACtB,iBAAA,CAAA;;0BAGc,MAAM;2BAAC,aAAa,CAAA;;;MCItB,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EANf,YAAA,EAAA,CAAA,aAAa,CAE1B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;AAEZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAJ5B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,aAAa,CAAC;AAC7B,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA,CAAA;;;MCLY,uBAAuB,CAAA;AAElC,IAAA,WAAA,CAAmC,WAAgB,EAAA;AACjD,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;KAC/B;AACD,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;YACnD,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE;AACzC,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC3F,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC5D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAW,QAAA,EAAA,OAAO,EAAE,CAAA;oBAC1G,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;AACF,aAAA;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC3C,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE;AACjI,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC5D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAW,QAAA,EAAA,OAAO,EAAE,CAAA;oBACtG,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9C,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC7D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC7D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7C,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC5D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1C,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC5D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1C,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AACzD,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE;AACvC,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AACzD,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC5C,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AACzD,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9C,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC3D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/C,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC5D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE;AAChD,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC7D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7C,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC5D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;AACD,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC3F,oBAAA,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AAC5D,oBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;oBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,iBAAA;gBAED,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AACnD,oBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAe,aAAA,CAAA,CAAC,GAAG,CAAC,CAAC,EAAE;wBACtE,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAE,CAAA,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AACnF,wBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;wBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,qBAAA;AACD,oBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAU,QAAA,CAAA,CAAC,GAAG,CAAC,CAAC,EAAE;wBACjE,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAE,CAAA,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AACnF,wBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;wBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,qBAAA;AACD,oBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAa,WAAA,CAAA,CAAC,GAAG,CAAC,CAAC,EAAE;wBACpE,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAE,CAAA,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;AACnF,wBAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAG,EAAA,OAAO,EAAE,CAAA;wBAC9F,OAAO,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA;AAC7B,qBAAA;AACF,iBAAA;AAEF,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;KACF;AAxGU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAEd,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAFtB,uBAAuB,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA,CAAA;;0BAGc,MAAM;2BAAC,aAAa,CAAA;;;MCItB,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,EANzB,YAAA,EAAA,CAAA,uBAAuB,CAEpC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,YAJtC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;AACnC,iBAAA,CAAA;;;MCNY,mBAAmB,CAAA;AAE9B,IAAA,WAAA,CAAmC,WAAgB,EAAA;AACjD,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;KAC/B;AACD,IAAA,SAAS,CAAC,KAAU,EAAA;AAClB,QAAA,OAAO,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;KAE5C;AAED,IAAA,WAAW,CAAC,MAAc,EAAA;AACxB,QAAA,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;AAC7C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACtD,MAAM,OAAO,GAAG,EAAE,CAAA;AAClB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1B,aAAA;iBAAM,IAAI,CAAC,KAAK,CAAC,EAAE;gBAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;AAC3C,aAAA;AAAM,iBAAA;gBACL,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACvB,aAAA;AACF,SAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAChC,QAAA,OAAO,MAAM,CAAA;KACd;AAzBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEV,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAFtB,mBAAmB,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,iBAAiB;AACxB,iBAAA,CAAA;;0BAGc,MAAM;2BAAC,aAAa,CAAA;;;MCKtB,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EANjB,YAAA,EAAA,CAAA,mBAAmB,CAEhC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAJ9B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;MCLY,kBAAkB,CAAA;AAE7B,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAEjC,QAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;KACnB;+GANU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;;MCMY,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EANhB,YAAA,EAAA,CAAA,kBAAkB,CAE/B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAJ7B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;MCGY,oBAAoB,CAAA;AAI/B,IAAA,WAAA,CACU,IAAgB,EAChB,SAAgC,EAChC,UAA0B,EAAA;QAF1B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAgB;AAL5B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAA;QACzC,IAAyB,CAAA,yBAAA,GAAG,KAAK,CAAA;KAK5B;IAEL,OAAO,CACL,KAA6B,EAC7B,MAA2B,EAAA;QAE3B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAA;QACjE,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACjD,IAAI,GAAG,GAAG,EAAE,CAAA;AACZ,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;AACtB,YAAA,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA;AACzB,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;AACxD,YAAA,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,MAAA,EAAS,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA,KAAA,CAAO,CAAA;AACxD,SAAA;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAC5B,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC/E,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAClD,CAAA;KACF;IAEO,iBAAiB,CAAC,QAAa,EAAE,GAAW,EAAA;QAClD,MAAM,SAAS,GAAG,GAAG,CAAA;QACrB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACjC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,KAAI;YAClG,IAAI,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1D,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK;AACxD,qBAAA,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;AACvD,aAAA;AAED,YAAA,IAAI,MAAM,CAAC,aAAa,KAAK,gBAAgB,EAAE;AAC7C,gBAAA,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;AACxB,wBAAA,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,SAAS;AACtC,wBAAA,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,YAAY;AAC9C,qBAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,GAAW,MAAM;AACjD,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,QAAQ,EAAE,CAAiB,cAAA,EAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAE,CAAA;iBACpE,CAAC,CAAC,CAAC,CAAA;AACL,aAAA;AAED,YAAA,IAAI,MAAM,CAAC,aAAa,KAAK,sBAAsB,EAAE;AACnD,gBAAA,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,KAAI;oBACrE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;oBAC1E,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;wBAC/D,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AAC/E,qBAAA;AACD,oBAAA,OAAO,KAAK,CAAA;AACd,iBAAC,CAAC,CAAA;AACF,gBAAA,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE;oBACtF,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,KAAI;wBACrH,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;wBAC1E,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;4BAC/D,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AAC/E,yBAAA;AACD,wBAAA,OAAO,KAAK,CAAA;AACd,qBAAC,CAAC,CAAA;AACH,iBAAA;AAEF,aAAA;AACD,YAAA,OAAO,MAAM,CAAA;AACf,SAAC,CAAC,CAAA;AAEF,QAAA,OAAO,QAAQ,CAAA;KAChB;+GAvEU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAwB,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCDY,wBAAwB,CAAA;AAEnC,IAAA,WAAA,CACU,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;IAEL,OAAO,CACL,KAA6B,EAC7B,MAA2B,EAAA;AAE3B,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC3C,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC/E,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAClD,CAAA;KACF;IAEO,iBAAiB,CAAC,QAAa,EAAE,GAAW,EAAA;QAClD,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,KAAI;AAClG,YAAA,IAAI,MAAM,CAAC,aAAa,KAAK,sBAAsB,EAAE;AACnD,gBAAA,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,KAAI;AACrE,oBAAA,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;AACrE,oBAAA,OAAO,KAAK,CAAA;AACd,iBAAC,CAAC,CAAA;AACH,aAAA;AAED,YAAA,OAAO,MAAM,CAAA;AACf,SAAC,CAAC,CAAA;AAEF,QAAA,OAAO,QAAQ,CAAA;KAChB;+GA9BU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACTM,MAAM,QAAQ,GAAQ;AAC3B,IAAA,QAAQ,EAAE,OAAO;CAClB;;MCYY,WAAW,CAAA;AAEtB,IAAA,WAAA,CACU,SAAgC,EAChC,IAAgB,EACG,MAAc,EAAA;QAFjC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;QAChC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QACG,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAJnC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAA;KAKpC;AACL,IAAA,OAAO,CACL,KAA6B,EAAA;AAE7B,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;YACtB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACxC,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3D,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAY,SAAA,EAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA,CAAE,CAAC,CAAA;AACrE,SAAA;AACD,QAAA,IACE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO;YAClB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EACtC;YACA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAA,MAAA,EAAS,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAE,CAAA,CAAC,CAAA;AACtF,SAAA;AACD,QAAA,IACE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO;AAClB,aAAC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,EAC/D;AACA,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,MAAA,EAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA,CAAE,CAAC,CAAA;AAClE,SAAA;QACD,OAAO;AACL,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,yCAAyC;SACjD,CAAA;KACF;AAEO,IAAA,WAAW,CAAC,UAAkB,EAAA;AAIpC,QAAA,OAAO,KAAK,CAAA;KACb;AAEO,IAAA,UAAU,CAAC,EAAU,EAAA;QAC3B,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CACH,CAA8B,2BAAA,EAAA,EAAE,CAAwB,sBAAA,CAAA,EACxD,CAAC,QAAQ,EAAE,aAAa,CAAC,CAC1B,CAAA;KACJ;AAEO,IAAA,OAAO,CAAC,GAAW,EAAA;QACzB,MAAM,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AAC/D,QAAA,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;AACnE,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CACnF,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI;AAClB,gBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;AACtE,oBAAA,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;AAC9C,iBAAA;gBACD,OAAO,IAAI,CAAC,IAAI;AACb,qBAAA,GAAG,CAAe,CAAA,EAAG,CAAC,CAAC,WAAW,CAAA,IAAA,EAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;AAChE,qBAAA,IAAI,CACH,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EACpC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAClD,CAAA;aACJ,CAAC,EACF,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAClD,CAAA;AACF,SAAA;AACD,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAC7D,QAAQ,CAAC,MACP,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,CAAA,EAAG,GAAG,CAAA,KAAA,CAAO,CAAC,CAAC,IAAI,CAC7C,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EACpC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAClD,CACF,CACF;YACD,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;AAC7C,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,SAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,GAAG,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,CAAA,KAAA,CAAO,CAAC,CAAC,IAAI,CAC5D,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EACpC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAClD;SACJ,CAAA;AACD,QAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAC/B,GAAG,CACD,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,KAAoC;YACxD,IAAI,UAAU,CAAC,IAAI,EAAE;AACnB,gBAAA,OAAO,UAAU,CAAA;AAClB,aAAA;AACD,YAAA,OAAO,OAAO,CAAA;SACf,CACF,CACF,CAAA;KACF;AAhGU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,8EAKZ,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AALR,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAMI,MAAM;2BAAC,SAAS,CAAA;;;MCbR,eAAe,CAAA;AAC1B,IAAA,WAAA,GAAA,GACK;AACL,IAAA,OAAO,CACL,KAA6B,EAAA;AAE7B,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;AACtB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA;AAC1B,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3D,YAAA,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;AAC/B,SAAA;AACD,QAAA,IACE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO;YAClB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EACtC;AACA,YAAA,OAAO,CAAG,EAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;AACnD,SAAA;AACD,QAAA,IACE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO;AAClB,YAAA,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,EAC5B;AACA,YAAA,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;AAC/B,SAAA;AACD,QAAA,OAAO,eAAe,CAAA;KACvB;+GA3BU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCCY,iBAAiB,CAAA;AAE5B,IAAA,WAAA,GAAA;QADA,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAA;KAEf;AACL,IAAA,OAAO,CACL,KAA6B,EAAA;AAE7B,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;AACtB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA;AAC1B,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3D,YAAA,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;AAC/B,SAAA;AACD,QAAA,IACE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO;YAClB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EACtC;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxD,OAAO,CAAA,EAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA;AAC/E,SAAA;AACD,QAAA,IACE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO;AAClB,YAAA,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,EAC5B;AACA,YAAA,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;AAC/B,SAAA;AACD,QAAA,OAAO,eAAe,CAAA;KACvB;+GA7BU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACLK,IAAW,UA0ZhB;AA1ZD,CAAA,UAAiB,SAAS,EAAA;AAqIxB,IAAA,IAAY,gBAiCX,CAAA;AAjCD,IAAA,CAAA,UAAY,gBAAgB,EAAA;AAC1B,QAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,aAAsB,CAAA;AACtB,QAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,mBAA8B,CAAA;AAC9B,QAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,QAAA,gBAAA,CAAA,mBAAA,CAAA,GAAA,uBAA2C,CAAA;AAC3C,QAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AACtC,QAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,uBAAyC,CAAA;AACzC,QAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,QAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,QAAA,gBAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD,CAAA;AACrD,QAAA,gBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,QAAA,gBAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,QAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,QAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AAKnC,QAAA,gBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AAIzC,QAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AAInC,QAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AAItC,QAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,KAAC,EAjCW,gBAAgB,GAAhB,SAAgB,CAAA,gBAAA,KAAhB,0BAAgB,GAiC3B,EAAA,CAAA,CAAA,CAAA;AAqHD,IAAA,IAAY,aASX,CAAA;AATD,IAAA,CAAA,UAAY,aAAa,EAAA;AACvB,QAAA,aAAA,CAAA,SAAA,CAAA,GAAA,eAAyB,CAAA;AACzB,QAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,QAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,QAAA,aAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AACtC,QAAA,aAAA,CAAA,QAAA,CAAA,GAAA,YAAqB,CAAA;AACrB,QAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,KAAC,EATW,aAAa,GAAb,SAAa,CAAA,aAAA,KAAb,uBAAa,GASxB,EAAA,CAAA,CAAA,CAAA;AACD,IAAA,IAAY,mCAEX,CAAA;AAFD,IAAA,CAAA,UAAY,mCAAmC,EAAA;AAC7C,QAAA,mCAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,KAAC,EAFW,mCAAmC,GAAnC,SAAmC,CAAA,mCAAA,KAAnC,6CAAmC,GAE9C,EAAA,CAAA,CAAA,CAAA;AACY,IAAA,SAAA,CAAA,iCAAiC,GAAa;AACzD,QAAA,aAAa,CAAC,MAAM;AACpB,QAAA,aAAa,CAAC,MAAM;AACpB,QAAA,aAAa,CAAC,OAAO;AACrB,QAAA,mCAAmC,CAAC,QAAQ;KAC7C,CAAA;AACY,IAAA,SAAA,CAAA,0BAA0B,GAAoB;AACzD,QAAA,aAAa,CAAC,MAAM;AACpB,QAAA,aAAa,CAAC,MAAM;AACpB,QAAA,aAAa,CAAC,OAAO;AACrB,QAAA,aAAa,CAAC,QAAQ;KACvB,CAAA;AACY,IAAA,SAAA,CAAA,gCAAgC,GAAoB;AAC/D,QAAA,aAAa,CAAC,MAAM;AACpB,QAAA,aAAa,CAAC,MAAM;AACpB,QAAA,aAAa,CAAC,OAAO;AACrB,QAAA,aAAa,CAAC,QAAQ;KACvB,CAAA;AACD,IAAA,IAAY,UA6BX,CAAA;AA7BD,IAAA,CAAA,UAAY,UAAU,EAAA;AACpB,QAAA,UAAA,CAAA,YAAA,CAAA,GAAA,2CAAwD,CAAA;AACxD,QAAA,UAAA,CAAA,MAAA,CAAA,GAAA,kBAAyB,CAAA;AACzB,QAAA,UAAA,CAAA,QAAA,CAAA,GAAA,mBAA4B,CAAA;AAC5B,QAAA,UAAA,CAAA,KAAA,CAAA,GAAA,4BAAkC,CAAA;AAClC,QAAA,UAAA,CAAA,KAAA,CAAA,GAAA,WAAiB,CAAA;AACjB,QAAA,UAAA,CAAA,KAAA,CAAA,GAAA,YAAkB,CAAA;AAClB,QAAA,UAAA,CAAA,KAAA,CAAA,GAAA,WAAiB,CAAA;AACjB,QAAA,UAAA,CAAA,MAAA,CAAA,GAAA,uBAA8B,CAAA;AAC9B,QAAA,UAAA,CAAA,aAAA,CAAA,GAAA,mBAAiC,CAAA;AACjC,QAAA,UAAA,CAAA,KAAA,CAAA,GAAA,iBAAuB,CAAA;AACvB,QAAA,UAAA,CAAA,MAAA,CAAA,GAAA,kBAAyB,CAAA;AACzB,QAAA,UAAA,CAAA,WAAA,CAAA,GAAA,uBAAmC,CAAA;AACnC,QAAA,UAAA,CAAA,aAAA,CAAA,GAAA,wBAAsC,CAAA;AACtC,QAAA,UAAA,CAAA,YAAA,CAAA,GAAA,wBAAqC,CAAA;AACrC,QAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,iCAAuD,CAAA;AACvD,QAAA,UAAA,CAAA,SAAA,CAAA,GAAA,iBAA2B,CAAA;AAC3B,QAAA,UAAA,CAAA,UAAA,CAAA,GAAA,iCAA4C,CAAA;AAC5C,QAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,mBAAoC,CAAA;AACpC,QAAA,UAAA,CAAA,eAAA,CAAA,GAAA,2BAA2C,CAAA;AAC3C,QAAA,UAAA,CAAA,SAAA,CAAA,GAAA,qBAA+B,CAAA;AAC/B,QAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAE3C,QAAA,UAAA,CAAA,eAAA,CAAA,GAAA,2BAA2C,CAAA;AAC3C,QAAA,UAAA,CAAA,UAAA,CAAA,GAAA,sBAAiC,CAAA;AACjC,QAAA,UAAA,CAAA,cAAA,CAAA,GAAA,qCAAoD,CAAA;AACpD,QAAA,UAAA,CAAA,UAAA,CAAA,GAAA,kCAA6C,CAAA;AAC7C,QAAA,UAAA,CAAA,SAAA,CAAA,GAAA,qBAA+B,CAAA;AAC/B,QAAA,UAAA,CAAA,iBAAA,CAAA,GAAA,qBAAuC,CAAA;AACzC,KAAC,EA7BW,UAAU,GAAV,SAAU,CAAA,UAAA,KAAV,oBAAU,GA6BrB,EAAA,CAAA,CAAA,CAAA;AACD,IAAA,IAAY,oBA8BX,CAAA;AA9BD,IAAA,CAAA,UAAY,oBAAoB,EAAA;AAC9B,QAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,QAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,QAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,QAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,QAAA,oBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,QAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,QAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,QAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,QAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,QAAA,oBAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvC,QAAA,oBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,QAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,QAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,QAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,oBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,QAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,QAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,QAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,QAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,QAAA,oBAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AACxC,KAAC,EA9BW,oBAAoB,GAApB,SAAoB,CAAA,oBAAA,KAApB,8BAAoB,GA8B/B,EAAA,CAAA,CAAA,CAAA;AAED,IAAA,IAAY,eAKX,CAAA;AALD,IAAA,CAAA,UAAY,eAAe,EAAA;AACzB,QAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,QAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,QAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,KAAC,EALW,eAAe,GAAf,SAAe,CAAA,eAAA,KAAf,yBAAe,GAK1B,EAAA,CAAA,CAAA,CAAA;AAGD,IAAA,IAAY,QAEX,CAAA;AAFD,IAAA,CAAA,UAAY,QAAQ,EAAA;AAClB,QAAA,QAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,KAAC,EAFW,QAAQ,GAAR,SAAQ,CAAA,QAAA,KAAR,kBAAQ,GAEnB,EAAA,CAAA,CAAA,CAAA;AAED,IAAA,IAAY,eAiBX,CAAA;AAjBD,IAAA,CAAA,UAAY,eAAe,EAAA;AACzB,QAAA,eAAA,CAAA,QAAA,CAAA,GAAA,aAAsB,CAAA;AACtB,QAAA,eAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,QAAA,eAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvC,QAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,QAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,QAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,eAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,QAAA,eAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;AAC/C,QAAA,eAAA,CAAA,uBAAA,CAAA,GAAA,sBAA8C,CAAA;AAC9C,QAAA,eAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjD,QAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,QAAA,eAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,QAAA,eAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD,CAAA;AACrD,QAAA,eAAA,CAAA,kCAAA,CAAA,GAAA,kCAAqE,CAAA;AACrE,QAAA,eAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,QAAA,eAAA,CAAA,UAAA,CAAA,GAAA,mBAA8B,CAAA;AAChC,KAAC,EAjBW,eAAe,GAAf,SAAe,CAAA,eAAA,KAAf,yBAAe,GAiB1B,EAAA,CAAA,CAAA,CAAA;AAED,IAAA,IAAY,aAEX,CAAA;AAFD,IAAA,CAAA,UAAY,aAAa,EAAA;AACvB,QAAA,aAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD,CAAA;AAC3D,KAAC,EAFW,aAAa,GAAb,SAAa,CAAA,aAAA,KAAb,uBAAa,GAExB,EAAA,CAAA,CAAA,CAAA;AACH,CAAC,EA1ZgB,SAAS,KAAT,SAAS,GA0ZzB,EAAA,CAAA,CAAA;;AChZD,MAAM,iBAAiB,GAAG,oBAAoB,CAAA;AAE9C,MAAMC,gBAAc,GAAG;IACrB,OAAO,EAAE,CAAG,EAAA,iBAAiB,CAAU,QAAA,CAAA;AACvC,IAAA,iBAAiB,EAAE,CAAyB,uBAAA,CAAA;IAC5C,aAAa,EAAE,CAAG,EAAA,iBAAiB,CAAoB,kBAAA,CAAA;IACvD,aAAa,EAAE,CAAG,EAAA,iBAAiB,CAAoB,kBAAA,CAAA;IACvD,mBAAmB,EAAE,CAAG,EAAA,iBAAiB,CAAyB,uBAAA,CAAA;IAClE,cAAc,EAAE,CAAG,EAAA,iBAAiB,CAA+B,6BAAA,CAAA;IACnE,sBAAsB,EAAE,CAAG,EAAA,iBAAiB,CAA4B,0BAAA,CAAA;IACxE,gBAAgB,EAAE,CAAG,EAAA,iBAAiB,CAAmB,iBAAA,CAAA;IACzD,iBAAiB,EAAE,CAAG,EAAA,iBAAiB,CAAmB,iBAAA,CAAA;IAC1D,iBAAiB,EAAE,CAAG,EAAA,iBAAiB,CAAmB,iBAAA,CAAA;IAC1D,oCAAoC,EAAE,CAAG,EAAA,iBAAiB,CAAqC,mCAAA,CAAA;IAC/F,eAAe,EAAE,CAAG,EAAA,iBAAiB,CAAe,aAAA,CAAA;IACpD,sBAAsB,EAAE,CAAG,EAAA,iBAAiB,CAAwB,sBAAA,CAAA;IACpE,cAAc,EAAE,CAAG,EAAA,iBAAiB,CAAc,YAAA,CAAA;AAClD,IAAA,oBAAoB,EAAE,CAAC,IAAY,EAAE,EAAU,KAC7C,CAAA,EAAG,iBAAiB,CAAA,oBAAA,EAAuB,IAAI,CAAA,CAAA,EAAI,EAAE,CAAE,CAAA;IACzD,mBAAmB,EAAE,CAAG,EAAA,iBAAiB,CAAsD,oDAAA,CAAA;IAC/F,qBAAqB,EAAE,CAAC,SAAiB,KAAK,CAAG,EAAA,iBAAiB,CAAkB,eAAA,EAAA,SAAS,CAAE,CAAA;IAC/F,sBAAsB,EAAE,CAAC,SAAc,KAAK,CAAA,sDAAA,EAAyD,SAAS,CAAE,CAAA;AAChH,IAAA,iBAAiB,EAAE,CAAwC,sCAAA,CAAA;IAC3D,aAAa,EAAE,CAAC,MAAW,KAAK,CAAG,EAAA,iBAAiB,CAAuC,oCAAA,EAAA,MAAM,CAAE,CAAA;AACnG,IAAA,eAAe,EAAE,CAAkD,gDAAA,CAAA;CACpE,CAAA;MAQY,oBAAoB,CAAA;IAC/B,WACU,CAAA,IAAgB,EAChB,SAAgC,EAAA;QADhC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;KACrC;AAEL,IAAA,uBAAuB,CAAC,UAAkB,EAAA;QAExC,MAAM,GAAG,GAAGA,gBAAc,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;QAE5D,IAAI,GAAG,EAAE,GAAG;AACZ,QAAA,OAAO,EAAE,EAAE,CAAC,SAAS,EAAE,CAAA;KACxB;AAED,IAAA,YAAY,CACV,SAAiB,EACjB,gBAA8C,QAAQ,EACtD,mBAA6B,EAAE,EAAA;QAE/B,MAAM,GAAG,GAAG,CAAA,EAAGA,gBAAc,CAAC,OAAO,CAAA,CAAA,EAAI,SAAS,CAAA,eAAA,EAAkB,aAAa,CAAA,CAAE,CAAA;QACnF,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAqB,GAAG,EAAE,EAAE,gBAAgB,EAAE,CAAC;AACnD,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KAClB;AACD,IAAA,qBAAqB,CAAC,SAAiB,EAAA;QACrC,MAAM,GAAG,GAAG,CAAG,EAAAA,gBAAc,CAAC,iBAAiB,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KAC7D;AACD,IAAA,oBAAoB,CAAC,GAAa,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAGA,gBAAc,CAAC,gBAAgB,CAAI,CAAA,EAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,CACtD,CAAA;KACF;IACD,wBAAwB,CAAC,IAAY,EAAE,EAAU,EAAE,UAAqB,GAAA,CAAC,EAAE,QAAA,GAAmB,CAAC,EAAA;QAC7F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAGA,gBAAc,CAAC,oBAAoB,CACpC,IAAI,EACJ,EAAE,CACH,CAAA,YAAA,EAAe,UAAU,CAAa,UAAA,EAAA,QAAQ,CAAE,CAAA,CAClD,CAAA;KACF;AAED,IAAA,iBAAiB,CAAC,UAAoC,EAAA;QACpD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAmCA,gBAAc,CAAC,aAAa,EAAE,UAAU,CAAC;AAChF,aAAA,SAAS,EAAE,CAAA;KACf;AAED,IAAA,mBAAmB,CAAC,UAAoC,EAAA;QACtD,IAAI,UAAU,EAAE,GAAG;AAInB,QAAA,OAAO,EAAE,EAAE,CAAC,SAAS,EAAE,CAAA;KACxB;AAED,IAAA,mBAAmB,CAAC,SAAiB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAGA,gBAAc,CAAC,eAAe,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CACjD,CAAA;KACF;AAED,IAAA,MAAM,gBAAgB,CAAC,EAAU,EAAE,YAAqB,EAAE,cAAuB,EAAA;AAC/E,QAAA,OAAO,IAAI,OAAO,CAAC,OAAM,OAAO,KAAG;AACjC,YAAA,IAAI,cAAc;AAChB,gBAAA,cAAc,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AAC7C,gBAAA,MAAM,OAAO,GAAG;oBACd,aAAa,EAAE,YAAY,GAAG,YAAY,GAAG,EAAE;AAC/C,oBAAA,UAAU,EAAE,EAAE;AACd,oBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACnB,wBAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrB,wBAAA,eAAe,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC;qBACpC,CAAC;AACF,oBAAA,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;AACxB,oBAAA,WAAW,EAAE,UAAU;iBACxB,CAAA;AACD,gBAAA,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAK;oBACxE,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,iBAAC,CACA,CAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,OAAO,GAAG;oBACd,aAAa,EAAE,YAAY,GAAG,YAAY,GAAG,EAAE;AAC/C,oBAAA,UAAU,EAAE,EAAE;AACd,oBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAC/C,oBAAA,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;iBACzB,CAAA;AACD,gBAAA,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAK;oBACxE,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,iBAAC,CAAC,CAAA;AACH,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AACD,IAAA,oBAAoB,CAAC,OAAiD,EAAA;AAGpE,QAAA,IAAI,OAAO,EAAE;AAEZ,SAAA;QACD,OAAO,EAAE,EAAS,CAAA;KACnB;AAED,IAAA,WAAW,CACT,UAAkB,EAAA;AAMlB,QAAA,OAAO,KAAK,CAAA;KACb;IAED,gBAAgB,GAAA;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAACA,gBAAc,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACjG;AAED,IAAA,aAAa,CAAC,GAAW,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAACA,gBAAc,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;KAC9D;AACD,IAAA,qBAAqB,CAAC,GAAW,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,EAAAA,gBAAc,CAAC,sBAAsB,QAAQ,kBAAkB,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC,CAAA;KAChG;AACD,IAAA,MAAM,CAAC,GAA4B,EAAA;QACjC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAA;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4BA,gBAAc,CAAC,iBAAiB,EAAE;AACjF,YAAA,OAAO,EAAE,GAAG;AACb,SAAA,CAAC,CAAA;KACH;AACD,IAAA,0BAA0B,CACxB,GAAmD,EAAA;QAEnD,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAA;AAC3B,QAAA,GAAG,CAAC,aAAa;AACf,YAAA,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;AACxB,iBAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,KAAK,EAAE,CAAC,CAAA;QAC5E,GAAG,CAAC,OAAO,GAAG;YACZ,GAAG,GAAG,CAAC,OAAO;AACd,YAAA,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;SAClC,CAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnBA,gBAAc,CAAC,oCAAoC,EACnD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAA;KACF;AACD,IAAA,QAAQ,CAAC,GAA8B,EAAA;QACrC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8BA,gBAAc,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;KAC1F;AAED,IAAA,kBAAkB,CAAC,SAAiB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,CAAA,EAAGA,gBAAc,CAAC,cAAc,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC,CAAA;KAC1F;AACD,IAAA,mBAAmB,CAAC,SAAiB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,EAAGA,gBAAc,CAAC,cAAc,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC,CAAA;KACzE;IACD,gBAAgB,CAAC,SAAiB,EAAE,IAAwB,EAAA;AAC1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,CAAG,EAAAA,gBAAc,CAAC,cAAc,IAAI,SAAS,CAAA,CAAE,EAAE,IAAI,CAAC,CAAA;KAClF;AAKD,IAAA,wBAAwB,CAAC,OAA2B,EAAA;QAClD,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,EAAE;AACpC,YAAA,OAAO,OAAO,CAAA;AACf,SAAA;AACD,QAAA,IACE,OAAO,CAAC,eAAe,KAAK,SAAS;YACrC,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EACpD;YACA,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AACjC,YAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;AAC5C,SAAA;QACD,IACE,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,gBAAgB,CAAC,QAAQ;AAC/D,YAAA,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,gBAAgB,CAAC,kBAAkB;AACzE,YAAA,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,gBAAgB,CAAC,OAAO;AAC9D,YAAA,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,gBAAgB,CAAC,iBAAiB;AACxE,YAAA,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,gBAAgB,CAAC,gBAAgB;AACvE,YAAA,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,gBAAgB,CAAC,eAAe;AACtE,YAAA,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,gBAAgB,CAAC,qBAAqB;YAC5E,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,gBAAgB,CAAC,eAAe,EACtE;AACA,YAAA,OAAO,OAAO,CAAA;AACf,SAAA;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA;AAC/D,QAAA,OAAO,aAAa,CAAA;KACrB;AAED,IAAA,qBAAqB,CAAC,MAAc,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,CAAG,EAAAA,gBAAc,CAAC,mBAAmB,IAAI,MAAM,CAAA,CAAE,CAAC,CAAC,SAAS,EAAE,CAAA;KACzF;AAED,IAAA,WAAW,CAAC,GAAW,EAAA;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,CAAC,CAAA;KAC/B;AAED,IAAA,yBAAyB,CAAC,SAAiB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAMA,gBAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAA;KAC5E;AAED,IAAA,gBAAgB,CAAC,WAAgB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,CAAA,EAAGA,gBAAc,CAAC,iBAAiB,CAAA,CAAE,EAAE,WAAW,CAAC,CAAA;KAC/E;AAED,IAAA,YAAY,CAAC,MAAW,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,CAAA,EAAGA,gBAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC,CAAA;KACrE;AAED,IAAA,cAAc,CAAC,OAAY,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,CAAA,EAAGA,gBAAc,CAAC,eAAe,CAAA,CAAE,EAAE,OAAO,CAAC,CAAA;KACzE;+GApNU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cALnB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAKP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;AC/BD,MAAME,gBAAc,GAAG;IACnB,QAAQ,EAAE,CAAC,EAAU,KAAK,CAAA,8BAAA,EAAiC,EAAE,CAAE,CAAA;IAC/D,SAAS,EAAE,CAAC,EAAU,KAAK,CAAA,sCAAA,EAAyC,EAAE,CAAE,CAAA;AACxE,IAAA,UAAU,EAAE,CAA0C,wCAAA,CAAA;AACtD,IAAA,UAAU,EAAE,CAAsC,oCAAA,CAAA;CACrD,CAAA;MAGY,cAAc,CAAA;AAIzB,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAH5B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;AACpD,QAAA,IAAA,CAAA,6BAA6B,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAA;KAE1B;AAEzC,IAAA,mBAAmB,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACjC;AAED,IAAA,aAAa,CAAC,EAAO,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAMA,gBAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;KACvD;AAED,IAAA,WAAW,CAAC,MAAW,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAMA,gBAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;KAC5D;AAED,IAAA,oBAAoB,CAAC,GAAQ,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAMA,gBAAc,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;KAC3D;AAED,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAMA,gBAAc,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;KAC3D;+GAxBU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAd,cAAc,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;;MCEE,gBAAgB,CAAA;IAW3B,WACU,CAAA,SAAgC,EAChC,SAAuB,EACR,WAAgB,EAE/B,MAAqB,EACrB,MAAc,EACd,MAAsB,EAAA;QANtB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;QAChC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QAGvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;QAjBhC,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAA;QACjC,IAAe,CAAA,eAAA,GAA6C,IAAI,CAAA;QAChE,IAAK,CAAA,KAAA,GAAQ,IAAI,CAAA;QACjB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAA;QACjB,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAA;QAC3B,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAA;AAClB,QAAA,IAAA,CAAA,YAAY,GAAQ;AAClB,YAAA,IAAI,EAAE,aAAa;SACpB,CAAA;AAWC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;AAC9B,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAA;QACpD,IAAI,CAAC,eAAe,EAAE,CAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;QACrC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAA;QAClC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,4BAA4B,EAAE,CAAA;QACnC,IAAI,CAAC,kCAAkC,EAAE,CAAA;KAC1C;IAEO,eAAe,GAAA;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;YAC1C,IAAI,KAAK,YAAY,eAAe,EAAE;gBACpC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACzG,oBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;oBAChC,IAAI,CAAC,qBAAqB,EAAE,CAAA;AAC5B,oBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAA;AACpD,oBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;AACtC,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AAED,IAAA,IAAI,4BAA4B,GAAA;QAC9B,OAAO,IAAI,CAAC,oBAAoB,CAAA;KACjC;IAEO,qBAAqB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,EAAE;YAClF,IAAI,IAAI,CAAC,4BAA4B,EAAE;AACrC,gBAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,cAAc,CAAA;AACtH,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC,iBAAiB,CAAA;AACzH,aAAA;AACF,SAAA;KACF;AAEO,IAAA,gBAAgB,CAAC,cAA+C,EAAA;AACtE,QAAA,IAAI,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,eAAe,CAAA;YACrD,IAAI,CAAC,eAAe,GAAG;gBACrB,GAAG,IAAI,CAAC,eAAe;AACvB,gBAAA,KAAK,EAAE;AACL,oBAAA,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK;AAE7B,oBAAA,EAAE,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAI,CAAA,EAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAE,CAAA;AAChE,iBAAA;AACD,gBAAA,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM;oBAC/D,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE;gBAG5C,OAAO,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO;gBACvD,GAAG,EAAE,IAAI,CAAC,qBAAqB;aAChC,CAAA;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAA;AACxC,SAAA;KACF;AAED,IAAA,IAAI,qBAAqB,GAAA;QACvB,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAA;KACxD;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE;AACxF,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAA;AAC5C,SAAA;AACD,QAAA,OAAO,EAAE,CAAA;KACV;AAED,IAAA,gBAAgB,CAAC,IAAS,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/C,YAAA,IAAI,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AACxC,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;AAClB,gBAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;AACtC,aAAA;AACF,SAAA;KACF;AAED,IAAA,KAAK,CAAC,KAAU,EAAE,IAAS,EAAE,WAA4C,EAAA;QACvE,IAAI;YACF,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,EAAE,CAAC,KAAK,CACN,IAAI,CAAC,eAAe,EACpB,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM;AAChC,oBAAA,WAAW,CAAC,MAAM;AAClB,sBAAE,EAAE,EACN,KAAK,EACL;oBAEE,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM;AACxC,wBAAA,WAAW,CAAC,MAAM;AAClB,0BAAE,EAAE;AACN,oBAAA,QAAQ,EAAE,CAAC;iBACZ,EACD;AACE,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;AACb,4BAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,yBAAA;wBACD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AAC5E,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,GAAG,CAAC,IAAI,KAAK,IAAI;AAClB,qBAAA;AACD,oBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM;AAChE,wBAAA,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC;AACxD,iBAAA,CACF,CAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;AACnE,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AAEV,YAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAA;AAC3C,SAAA;KACF;AAED,IAAA,GAAG,CAAC,KAAU,EAAE,IAAS,EAAE,WAA4C,EAAA;QACrE,IAAI;YACF,EAAE,CAAC,GAAG,CACJ;gBACE,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM;AACxC,oBAAA,WAAW,CAAC,MAAM;AAClB,sBAAE,EAAE;aACP,EACD;AACE,gBAAA,OAAO,EAAE;AACP,oBAAA,KAAK,EAAE;wBACL,GAAG,IAAI,CAAC,KAAK;AACb,wBAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,qBAAA;oBACD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AAC5E,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,GAAG,CAAC,IAAI,KAAK,IAAI;AAClB,iBAAA;AACF,aAAA,CACF,CAAA;AACF,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AAEV,YAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;AACzC,SAAA;KACF;AAED,IAAA,KAAK,CAAC,IAAY,EAAE,KAAa,EAAE,IAAS,EAAA;QAC1C,IAAI;YACF,EAAE,CAAC,KAAK,CACN;gBACE,IAAI;gBACJ,KAAK;AAEL,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,QAAQ,EAAE,EAAE;aACb,EACD;AACE,gBAAA,OAAO,EAAE;AACP,oBAAA,KAAK,EAAE;wBACL,GAAG,IAAI,CAAC,KAAK;AACb,wBAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,qBAAA;AACF,iBAAA;AACF,aAAA,CACF,CAAA;AACF,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AAEV,YAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAA;AAC3C,SAAA;KACF;IAED,SAAS,CAAC,IAAY,EAAE,EAAU,EAAA;QAChC,IAAI;YACF,EAAE,CAAC,SAAS,CAAC;gBACX,EAAE;gBAEF,IAAI;AACL,aAAA,CAAC,CAAA;AACH,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AAEV,YAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAA;AAC/C,SAAA;KACF;IAED,UAAU,CAAC,IAAU,EAAE,UAAgB,EAAA;AACrC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;AAClC,YAAA,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;gBACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;AACtC,aAAA;AACD,YAAA,MAAM,KAAK,GAAG;gBACZ,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1B,GAAG,EAAE,IAAI,CAAC,OAAO;aAClB,CAAA;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,MAAM,MAAM,GAAG;AACb,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;AACb,4BAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,yBAAA;AACD,wBAAA,GAAG,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AACvE,qBAAA;AACD,oBAAA,MAAM,EAAE;wBACN,EAAE,EAAE,IAAI,CAAC,QAAQ;AACjB,wBAAA,IAAI,EAAE,UAAU;AAEhB,wBAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;AACzB,qBAAA;iBACF,CAAA;AACD,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE;AACjC,oBAAA,MAAM,CAAC,MAAM,GAAG,EAAE,CAAA;AACnB,iBAAA;AACD,gBAAA,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAC7B,aAAA;AAAM,iBAAA;AACL,gBAAA,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;AACnB,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;4BACb,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AAChC,yBAAA;AACD,wBAAA,GAAG,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;AACvB,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;AACzB,qBAAA;AACF,iBAAA,CAAC,CAAA;AACH,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAA;AAChC,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AAEV,YAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAA;AAChD,SAAA;KACF;AAED,IAAA,kBAAkB,CAAC,cAAmB,EAAA;QAEpC,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YAClC,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;AACxD,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,GAAG;AACrC,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;4BACb,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC;AACzD,yBAAA;AACF,qBAAA;AACD,oBAAA,MAAM,EAAE;wBACN,EAAE,EAAE,IAAI,CAAC,QAAQ;AAClB,qBAAA;AACF,iBAAA,GAAG;AACF,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;4BACb,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,kBAAkB,CAAC;AACzD,yBAAA;AACF,qBAAA;iBACF,CAAA;gBACD,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;AACnD,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AAEV,YAAA,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAA;AACxD,SAAA;KACF;IAGD,kCAAkC,GAAA;QAChC,IAAI,CAAC,SAAS,CAAC,YAAY;AACxB,aAAA,IAAI,CACH,MAAM,CACJ,KAAK,IACH,KAAK;AACL,YAAA,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS;YAClD,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,oBAAoB,CAAC,cAAc;YACxE,KAAK,CAAC,IAAI,CAAC,IAAI;YACf,KAAK,CAAC,IAAI,CACb,CACF;aACA,SAAS,CAAC,KAAK,IAAG;YACjB,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBAC7D,IAAI,CAAC,KAAK,CACR;oBACE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;AACvD,iBAAA,EACD,EAAE,EACF,KAAK,CAAC,WAAW,CAClB,CAAA;AACF,aAAA;YACD,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAC3D;gBACA,IAAI,CAAC,GAAG,CAAC;oBACP,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;iBACvD,EACQ,KAAK,CAAC,IAAI,CAAC,MAAM,EACjB,KAAK,CAAC,WAAW,CACzB,CAAA;AACF,aAAA;YACD,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAC3D;gBACA,EAAE,CAAC,QAAQ,CACT;AACE,oBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;AAC3B,oBAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AACjC,oBAAA,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,wBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnB,0BAAE,EAAE;oBACN,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE;iBAC5D,EACD;AACE,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;AACb,4BAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,yBAAA;wBACD,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AAC9F,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM;AACrB,qBAAA;AACF,iBAAA,CAAC,CAAA;AACL,aAAA;AAEH,SAAC,CAAC,CAAA;KACL;IAED,4BAA4B,GAAA;QAC1B,IAAI,CAAC,SAAS,CAAC,eAAe;AAC3B,aAAA,IAAI,CACH,MAAM,CACJ,KAAK,IACH,KAAK;AACL,YAAA,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS;YAClD,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,oBAAoB,CAAC,UAAU;YACpE,KAAK,CAAC,IAAI,CAAC,IAAI;YACf,KAAK,CAAC,IAAI,CACb,CACF;aACA,SAAS,CAAC,KAAK,IAAG;YACjB,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBAC7D,IAAI,CAAC,KAAK,CACR;oBACE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;AACvD,iBAAA,EACD,EAAE,EACF,KAAK,CAAC,WAAW,CAClB,CAAA;AACF,aAAA;YACD,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAC3D;gBACA,IAAI,CAAC,GAAG,CAAC;oBACP,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;iBACvD,EACQ,KAAK,CAAC,IAAI,CAAC,MAAM,EACjB,KAAK,CAAC,WAAW,CACzB,CAAA;AACF,aAAA;YACD,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAC3D;gBACA,EAAE,CAAC,QAAQ,CACT;AACE,oBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;AAC3B,oBAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AACjC,oBAAA,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,wBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnB,0BAAE,EAAE;oBACN,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE;iBAC5D,EACD;AACE,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;AACb,4BAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,yBAAA;wBACD,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AAC9F,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM;AACrB,qBAAA;AACF,iBAAA,CAAC,CAAA;AACL,aAAA;AAEH,SAAC,CAAC,CAAA;KACL;IAED,iBAAiB,GAAA;QACf,IAAI,CAAC,SAAS,CAAC,cAAc;AAC1B,aAAA,IAAI,CACH,MAAM,CACJ,KAAK,IACH,KAAK;AACL,YAAA,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS;YAClD,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,oBAAoB,CAAC,OAAO;YACjE,KAAK,CAAC,IAAI,CAAC,IAAI;YACf,KAAK,CAAC,IAAI,CACb,CACF;aACA,SAAS,CAAC,KAAK,IAAG;YACjB,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBAC7D,IAAI,CAAC,KAAK,CACR;oBACE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;AACvD,iBAAA,EACD,EAAE,EACF,KAAK,CAAC,WAAW,CAClB,CAAA;AACF,aAAA;YACD,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAC3D;gBACA,IAAI,CAAC,GAAG,CAAC;oBACP,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;AACvD,iBAAA,EACQ,EAAE,EACF,KAAK,CAAC,WAAW,CACzB,CAAA;AACF,aAAA;YACD,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAC3D;gBACA,EAAE,CAAC,QAAQ,CACT;AACE,oBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;AAC3B,oBAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AACjC,oBAAA,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,wBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnB,0BAAE,EAAE;oBACN,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE;iBAC5D,EACD;AACE,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;AACb,4BAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,yBAAA;wBACD,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AAC9F,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM;AACrB,qBAAA;AACF,iBAAA,CAAC,CAAA;AACL,aAAA;AAEH,SAAC,CAAC,CAAA;KACL;IAED,2BAA2B,GAAA;QACzB,IAAI,CAAC,SAAS,CAAC,OAAO;aACnB,IAAI,CACH,MAAM,CACJ,CAAC,KAA0C,KACzC,KAAK;AACL,YAAA,KAAK,CAAC,IAAI;AACV,YAAA,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS;YAClD,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CACvE,CACF;aACA,SAAS,CAAC,KAAK,IAAG;YACjB,IAAI;AAEF,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5B,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AAEV,gBAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAA;AAChD,aAAA;AACH,SAAC,CAAC,CAAA;KACL;IAED,oBAAoB,GAAA;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO;AACnB,aAAA,IAAI,CACH,MAAM,CACJ,KAAK,IACH,KAAK;AACL,YAAA,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS;YAClD,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,eAAe,CAAC,IAAI;YACjD,KAAK,CAAC,IAAI,CAAC,IAAI;YACf,KAAK,CAAC,IAAI,CACb,CACF;aACA,SAAS,CAAC,KAAK,IAAG;YACjB,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBAC7D,IAAI,CAAC,KAAK,CACR;oBACE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;AACvD,iBAAA,EACD,EAAE,EACF,KAAK,CAAC,WAAW,CAClB,CAAA;AACF,aAAA;YACD,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAAE;gBAC/D,IAAI,CAAC,GAAG,CAAC;oBACP,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;AACvD,iBAAA,EACQ,EAAE,EACF,KAAK,CAAC,WAAW,CACzB,CAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;KACL;IAED,sBAAsB,GAAA;QAEpB,IAAI,CAAC,SAAS,CAAC,OAAO;AACnB,aAAA,IAAI,CACH,MAAM,CACJ,KAAK,IACH,KAAK;YACL,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS,CACrD,CACF;aACA,SAAS,CAAC,KAAK,IAAG;YACjB,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM;gBACzD,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,eAAe,CAAC,MAAM,EACnD;gBACA,IAAI,CAAC,KAAK,CACR;AACE,oBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;oBACrB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;iBACvD,EACD,KAAK,CAAC,IAAI,CAAC,MAAM,EACjB,KAAK,CAAC,WAAW,CAClB,CAAA;AACF,aAAA;YACD,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ;gBAC3D,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,eAAe,CAAC,MAAM,EACnD;gBACA,IAAI,CAAC,GAAG,CACN;oBACE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;iBACvD,EACD,KAAK,CAAC,IAAI,CAAC,MAAM,EACjB,KAAK,CAAC,WAAW,CAClB,CAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;KACL;IACD,iBAAiB,GAAA;QACf,IAAI,CAAC,SAAS,CAAC,OAAO;AACnB,aAAA,IAAI,CACH,MAAM,CACJ,KAAK,IACH,KAAK;AACL,YAAA,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS;YAClD,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,eAAe,CAAC,MAAM;YACnD,KAAK,CAAC,IAAI,CAAC,IAAI;YACf,KAAK,CAAC,IAAI,CACb,CACF;aACA,SAAS,CAAC,KAAK,IAAG;AACjB,YAAA,MAAM,OAAO,GAA8B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA;YAC7D,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM;AACzD,iBAAC,CAAC,OAAO;oBACP,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,OAAO;oBAC3D,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,KAAK;qBACxD,OAAO,CAAC,QAAQ,KAAK,iBAAiB,IAAI,kBAAkB,CAAC,CAAC,EACjE;gBACA,IAAI,CAAC,KAAK,CACR;oBACE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;iBACvD,EACD,KAAK,CAAC,IAAI,CAAC,MAAM,EACjB,KAAK,CAAC,WAAW,CAElB,CAAA;AACF,aAAA;YACD,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ;AAC3D,iBAAC,CAAC,OAAO;oBACP,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,OAAO;oBAC3D,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,KAAK;qBACxD,OAAO,CAAC,QAAQ,KAAK,iBAAiB,IAAI,kBAAkB,CAAC,CAAC,EACjE;gBACA,IAAI,CAAC,GAAG,CACN;oBACE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM;oBACxD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI;iBACvD,EACD,KAAK,CAAC,IAAI,CAAC,MAAM,EACjB,KAAK,CAAC,WAAW,CAClB,CAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;KACL;IAED,mBAAmB,GAAA;AACjB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;AAClC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,SAAS,CAAC,OAAO;aACnB,IAAI,CACH,MAAM,CACJ,CAAC,KAAwC,KACvC,KAAK;AACL,YAAA,KAAK,CAAC,IAAI;AACV,YAAA,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS;YAClD,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CACrE,CACF;aACA,SAAS,CAAC,KAAK,IAAG;AACjB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;AAClC,YAAA,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACnE,gBAAA,MAAM,cAAc,GAAG;AACrB,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;4BACb,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,yBAAA;AACF,qBAAA;iBACF,CAAA;gBACD,IAAI;oBACF,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;AACxC,iBAAA;AAAC,gBAAA,OAAO,CAAC,EAAE;AAEV,oBAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAA;AAC9C,iBAAA;AACF,aAAA;AAAM,iBAAA;gBAKL,IAAI;oBACF,EAAE,CAAC,QAAQ,CACT;AACE,wBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;AAC3B,wBAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AAEjC,wBAAA,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,4BAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnB,8BAAE,EAAE;AACN,wBAAA,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;wBAC9E,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;qBACpE,EACD;AACE,wBAAA,OAAO,EAAE;AACP,4BAAA,KAAK,EAAE;gCACL,GAAG,IAAI,CAAC,KAAK;AACb,gCAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,6BAAA;4BACD,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AAC9F,yBAAA;AACD,wBAAA,MAAM,EAAE;AACN,4BAAA,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM;AACrB,yBAAA;AACF,qBAAA,CAAC,CAAA;AACL,iBAAA;AAAC,gBAAA,OAAO,CAAC,EAAE;AAEV,oBAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAA;AAC9C,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;KACL;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,SAAS,CAAC,OAAO;aACnB,IAAI,CACH,MAAM,CACJ,CAAC,KAAwC,KACvC,KAAK;AACL,YAAA,KAAK,CAAC,IAAI;AACV,YAAA,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS;YAClD,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CACrE,CACF;aACA,SAAS,CAAC,KAAK,IAAG;AACjB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YAClC,IAAI;gBACF,EAAE,CAAC,QAAQ,CACT;oBACE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;oBACrC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE;oBAC5C,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;oBAC9C,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,EACD;AACE,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;AACb,4BAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,yBAAA;AACF,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE;wBAC7D,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;AACjC,wBAAA,GAAG,EAAE,CAAA,GAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,EAAC,EAAG,EAAE,CAAE,CAAA;AACjD,wBAAA,MAAM,EAAE,EAAE;AACX,qBAAA;AACF,iBAAA,CAAC,CAAA;AACL,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AAEV,gBAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAA;AAC9C,aAAA;AACH,SAAC,CAAC,CAAA;KACL;IAED,mBAAmB,GAAA;QACjB,IAAI,CAAC,SAAS,CAAC,OAAO;aACnB,IAAI,CACH,MAAM,CACJ,CAAC,KAAyC,KACxC,KAAK;AACL,YAAA,KAAK,CAAC,IAAI;AACV,YAAA,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS;YAClD,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CACtE,CACF;aACA,SAAS,CAAC,KAAK,IAAG;AACjB,YAAA,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACnE,gBAAA,MAAM,cAAc,GAAG;AACrB,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;4BACb,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,yBAAA;AACF,qBAAA;iBACF,CAAA;gBACD,IAAI;oBACF,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;AACzC,iBAAA;AAAC,gBAAA,OAAO,CAAC,EAAE;AAEV,oBAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAA;AAC/C,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI;oBACF,EAAE,CAAC,SAAS,CACV;AACE,wBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;AAErB,wBAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;qBAGlB,EACD;AACE,wBAAA,OAAO,EAAE;AACP,4BAAA,KAAK,EAAE;gCACL,GAAG,IAAI,CAAC,KAAK;AACb,gCAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,6BAAA;AACF,yBAAA;AACF,qBAAA,CAAC,CAAA;AACL,iBAAA;AAAC,gBAAA,OAAO,CAAC,EAAE;AAEV,oBAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAA;AAC/C,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;KACL;IAED,iBAAiB,GAAA;QACf,IAAI,CAAC,SAAS,CAAC,OAAO;aACnB,IAAI,CACH,MAAM,CACJ,CAAC,KAAsC,KACrC,KAAK;AACL,YAAA,KAAK,CAAC,IAAI;AACV,YAAA,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,WAAW,CAAC,SAAS;YAClD,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CACnE,CACF;aACA,SAAS,CAAC,KAAK,IAAG;YACjB,IAAI;gBACF,EAAE,CAAC,MAAM,CACP;AACE,oBAAA,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;AACvB,oBAAA,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;AAC3B,oBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;iBACtB,EACD;AACE,oBAAA,OAAO,EAAE;AACP,wBAAA,KAAK,EAAE;4BACL,GAAG,IAAI,CAAC,KAAK;AACb,4BAAA,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClB,yBAAA;AACF,qBAAA;AACF,iBAAA,CACF,CAAA;AACF,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AAEV,gBAAA,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAA;AAC5C,aAAA;AACH,SAAC,CAAC,CAAA;KACL;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QACtD,MAAM,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;QACzC,IAAI,WAAW,GAAG,EAAE,CAAA;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;YACrC,WAAW,GAAG,SAAS,CAAA;AACxB,SAAA;QACD,OAAO;AACL,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC7B,SAAS,EAAE,IAAI,CAAC,WAAW;YAC3B,QAAQ,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5D,YAAA,MAAM,EAAE,WAAW;SACpB,CAAA;KACF;AAED,IAAA,4BAA4B,CAAC,QAAkB,EAAA;QAE7C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE5C,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AAED,QAAA,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,YAAA,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAC5B,SAAA;AAED,QAAA,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvD,YAAA,OAAO,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;AAC/B,SAAA;AAED,QAAA,OAAO,IAAI,CAAA;KACZ;AAr2BU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,6EAcjB,aAAa,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAb,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAdZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAeI,MAAM;2BAAC,aAAa,CAAA;;;MCpBZ,4BAA4B,CAAA;IAKvC,WACU,CAAA,SAAgC,EAChC,UAAgC,EAEhC,cAA8B,EAC9B,MAAc,EACd,QAAsB,EACtB,OAAyB,EAAA;QANzB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;QAChC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAsB;QAEhC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAc;QACtB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAkB;QAXnC,IAAU,CAAA,UAAA,GAAG,EAAE,CAAA;QACf,IAAoB,CAAA,oBAAA,GAAQ,IAAI,CAAA;QAEhC,IAAM,CAAA,MAAA,GAAG,KAAK,CAAA;QAUZ,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC3B,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAK;YAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAA;AAC7B,SAAC,CAAC,CAAA;KACH;AACD,IAAA,aAAa,CAAC,aAAkB,EAAE,eAAuB,EAAE,EAAW,EAAA;QACpE,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC7H,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;AAChC,YAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,SAAS,CAC/C,IAAI,IAAG;AACL,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAA;gBAC7C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;oBAChD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ;wBACnD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;oBAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ;wBAClD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AAC3D,oBAAA,MAAM,QAAQ,GAAW,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ;AACxE,wBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAA;AAExD,oBAAA,MAAM,QAAQ,GAAG;AACf,wBAAA,kBAAkB,EAAE,eAAe;AACnC,wBAAA,SAAS,EAAE,QAAQ;AACnB,wBAAA,aAAa,EAAE;AACb,4BAAA,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;AAChC,4BAAA,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;AACpB,4BAAA,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;4BAC/B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG;AACxC,gCAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS;AAChD,gCAAA,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK;6BAC1C,GAAG,EAAE;AACN,4BAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,GAAG,MAAM;AACjG,4BAAA,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc,KAAK,IAAI;AAC/F,4BAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;AACnC,4BAAA,uBAAuB,EAAE,QAAQ,CAAC,WAAW,EAAE;AAC/C,4BAAA,IAAI,EAAE;gCACJ,SAAS;gCACT,QAAQ;gCAER,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE;gCAClF,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;AAC5E,6BAAA;AACD,4BAAA,kBAAkB,EAAE,KAAK;AAC1B,yBAAA;wBACD,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG;AACrC,4BAAA,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI;yBACjD,GAAG,IAAI;qBACT,CAAA;AACD,oBAAA,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACxC,oBAAA,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAA;AACtC,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AAClB,oBAAA,IAAI,CAAC,UAAU,GAAG,eAAe,CAAA;AAClC,iBAAA;AACH,aAAC,CAAC,CAAA;AACL,SAAA;AAAM,aAAA;YACL,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBAChD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ;oBACnD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;gBAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ;oBAClD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AAC3D,gBAAA,MAAM,QAAQ,GAAW,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ;AACxE,oBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAA;AAExD,gBAAA,MAAM,QAAQ,GAAG;AACf,oBAAA,kBAAkB,EAAE,eAAe;AACnC,oBAAA,SAAS,EAAE,QAAQ;AACnB,oBAAA,aAAa,EAAE;AACb,wBAAA,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;AAChC,wBAAA,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;AACpB,wBAAA,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;wBAC/B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG;AACxC,4BAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS;AAChD,4BAAA,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK;yBAC1C,GAAG,EAAE;AACN,wBAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,GAAG,MAAM;AACjG,wBAAA,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc,KAAK,IAAI;AAC/F,wBAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;AACnC,wBAAA,uBAAuB,EAAE,QAAQ,CAAC,WAAW,EAAE;AAC/C,wBAAA,IAAI,EAAE;4BACJ,SAAS;4BACT,QAAQ;4BAER,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE;4BAClF,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;AAC5E,yBAAA;AACD,wBAAA,kBAAkB,EAAE,KAAK;AAC1B,qBAAA;AACD,oBAAA,IAAI,EAAE,IAAI;iBACX,CAAA;AACD,gBAAA,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACxC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAA;AACtC,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AAClB,gBAAA,IAAI,CAAC,UAAU,GAAG,eAAe,CAAA;AAClC,aAAA;AACF,SAAA;KACF;IACD,uBAAuB,CAAC,EAAU,EAAE,gBAAqB,EAAA;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAClC;AACE,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AACvE,YAAA,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;SACzB,CACF;AACE,aAAA,SAAS,EAAE;AACX,aAAA,KAAK,EAAE,CAAA;KACX;AACD,IAAA,eAAe,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,KAAK,EAAE;YACT,QAAQ,KAAK,CAAC,OAAO;AACnB,gBAAA,KAAK,UAAU;AACb,oBAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAqC;AAC9D,wBAAA,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS;AACzC,wBAAA,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC5C,wBAAA,IAAI,EAAE;4BACJ,GAAG,KAAK,CAAC,IAAI;AACb,4BAAA,YAAY,EAAE,QAAQ,CAAC,oBAAoB,CAAC,QAAQ;AACrD,yBAAA;wBACD,IAAI,EAAE,KAAK,CAAC,kBAAkB;AAC9B,wBAAA,EAAE,EAAE,WAAW;AAChB,qBAAA,CAAC,CAAA;oBACF,MAAK;AACP,gBAAA,KAAK,WAAW;AACd,oBAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAsC;AAC/D,wBAAA,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS;AACzC,wBAAA,aAAa,EAAE,QAAQ,CAAC,eAAe,CAAC,KAAK;AAC7C,wBAAA,IAAI,EAAE;4BACJ,GAAG,KAAK,CAAC,IAAI;AACb,4BAAA,YAAY,EAAE,QAAQ,CAAC,oBAAoB,CAAC,SAAS;AACtD,yBAAA;wBACD,IAAI,EAAE,KAAK,CAAC,kBAAkB;AAC9B,wBAAA,EAAE,EAAE,WAAW;AAChB,qBAAA,CAAC,CAAA;oBACF,MAAK;AACP,gBAAA,KAAK,YAAY;oBACf,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC3C,MAAK;AACP,gBAAA;oBACE,MAAK;AACR,aAAA;AACF,SAAA;KACF;IACD,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;AACpB,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;AAChC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;AAC7B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;KACpB;IACD,oBAAoB,GAAA;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;YAC5G,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ;gBACnD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ;gBAClD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AAC3D,YAAA,MAAM,QAAQ,GAAW,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ;AACxE,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAA;AAExD,YAAA,MAAM,QAAQ,GAAG;gBACf,kBAAkB,EAAE,IAAI,CAAC,UAAU;AACnC,gBAAA,SAAS,EAAE,gBAAgB;AAC3B,gBAAA,aAAa,EAAE;AACb,oBAAA,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;AAChC,oBAAA,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;AACpB,oBAAA,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;oBAC/B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG;AACxC,wBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS;AAChD,wBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK;qBAC1C,GAAG,EAAE;AACN,oBAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,GAAG,MAAM;AACjG,oBAAA,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc,KAAK,IAAI;AAC/F,oBAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;AACnC,oBAAA,uBAAuB,EAAE,QAAQ,CAAC,WAAW,EAAE;AAC/C,oBAAA,IAAI,EAAE;wBACJ,SAAS;wBACT,QAAQ;wBAER,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE;wBAClF,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;AAC5E,qBAAA;AACD,oBAAA,kBAAkB,EAAE,KAAK;AAC1B,iBAAA;aACF,CAAA;YACD,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AAClD,SAAA;KACF;+GAtMU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAb,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAApB,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAqB,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACJD,MAAM,SAAS,GAAG;AAChB,IAAA,QAAQ,EAAE,oCAAoC;CAC/C,CAAA;MAIY,qBAAqB,CAAA;IAGhC,WAAoB,CAAA,IAAgB,EAAU,gBAAuC,EAAA;QAAjE,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAAU,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAuB;KAAK;IAE1F,UAAU,GAAA;QACR,IAAI,CAAC,gBAAgB,CAAC,kBAAkB;AACrC,aAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACvB,aAAA,SAAS,CAAC,CAAC,eAA0C,KAAI;AACxD,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE;AACzC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAA;AACzC,aAAA;AACH,SAAC,CAAC,CAAA;KACL;AAED,IAAA,MAAM,mBAAmB,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAA;AACjF,QAAA,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,kBAAkB,CAAC,eAA0C,EAAA;QACjE,IAAI;YACF,IAAI,CAAC,eAAe,EAAE;AACpB,gBAAA,OAAO,KAAK,CAAA;AACb,aAAA;AACD,YAAA,MAAM,WAAW,GAAoB;AACnC,gBAAA,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc;AACvC,gBAAA,UAAU,EACR,CAAC,eAAe,IAAI,eAAe,CAAC,UAAU;AAC9C,qBAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc;AACnC,wBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC;oBAClD,EAAE;AACJ,gBAAA,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU;AAC5C,gBAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK;AAClC,gBAAA,aAAa,EACX,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB;AACtC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU;oBACpD,EAAE;AACJ,gBAAA,YAAY,EACV,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB;AACrC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,SAAS;oBAClD,EAAE;AACJ,gBAAA,iBAAiB,EACf,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc;AACnC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,iBAAiB;oBACxD,EAAE;AACJ,gBAAA,cAAc,EACZ,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc;AACnC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc;oBACrD,EAAE;AACJ,gBAAA,WAAW,EACT,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc;AACnC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW;oBAClD,EAAE;AACJ,gBAAA,eAAe,EACb,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc;AACnC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,eAAe;oBACtD,EAAE;AACJ,gBAAA,iBAAiB,EACf,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc;AACnC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,iBAAiB;oBACxD,EAAE;AACJ,gBAAA,IAAI,eAAe,IAAI,EAAE,CAAC;AAC1B,gBAAA,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa;AAClD,gBAAA,eAAe,EACb,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc;AACnC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,eAAe;oBACtD,IAAI,CAAC,gBAAgB,CAAC,eAAe;aACxC,CAAA;AACD,YAAA,MAAM,WAAW,GAA2B,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAA;AAChF,YAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,GAAG,WAAW,CAAA;YAClD,MAAM,IAAI,CAAC,IAAI;AACZ,iBAAA,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC;iBACpC,IAAI,CACH,KAAK,CAAC,CAAC,CAAC,EACR,UAAU,CAAC,GAAG,IAAG;AACf,gBAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,GAAG,WAAW,CAAA;AAClD,gBAAA,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;AAChB,aAAC,CAAC,CACH;AACA,iBAAA,SAAS,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AAAC,QAAA,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;KACF;+GArFU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAP,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCDY,+BAA+B,CAAA;AAOxC,IAAA,WAAA,CAAoB,SAA2B,EAAU,IAAgB,EAAU,SAAgC,EAAA;QAA/F,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAAU,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;QANnH,IAAY,CAAA,YAAA,GAAG,EAAE,CAAA;AAEjB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;AAC5C,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAA;QACjE,IAAkB,CAAA,kBAAA,GAAG,mCAAmC,CAAA;KAIvD;IAED,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc;AAC1C,gBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,oBAAoB;gBAC/D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,oBAAoB,CAAC,aAAa,EAAE;AACjF,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,oBAAoB,CAAC,aAAa,CAAA;AAC1F,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACxB,gBAAA,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;AAC9C,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;AAE3C,oBAAA,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAA;oBAClE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC9B,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACzB,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AACnC,oBAAA,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;AAC9C,iBAAA;AACF,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;AAEzC,gBAAA,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAA;gBAClE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC9B,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC3B,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,0BAA0B,CAAC,KAAa,EAAE,IAAS,EAAE,OAAY,EAAA;QAC7D,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC5C,QAAA,IAAI,OAAO,EAAE;YAET,MAAM,cAAc,GAAG,IAAI,GAAG,GAAG,GAAI,MAAM,GAAG,OAAO,CAAA;YACrD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;AAChD,SAAA;AAED,QAAA,MAAM,eAAe,GAAG,IAAI,GAAG,GAAG,GAAI,MAAM,CAAA;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;KACjD;AAED,IAAA,cAAc,CAAC,KAAa,EAAE,IAAS,EAAE,OAAY,EAAA;QACjD,IAAI,MAAM,GAAG,KAAK,CAAA;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5B,EAAE,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,KAAU,KAAI;YAC9B,IAAI,KAAK,KAAK,CAAC,EAAE;AACb,gBAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC9C,aAAA;AACL,SAAC,CAAC,CAAA;AACF,QAAA,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAClC,QAAA,IAAI,OAAO,EAAE;YAEX,MAAM,cAAc,GAAG,IAAI,GAAG,GAAG,GAAI,MAAM,GAAG,OAAO,CAAA;YACrD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;AAC9C,SAAA;AAED,QAAA,MAAM,eAAe,GAAG,IAAI,GAAG,GAAG,GAAI,MAAM,CAAA;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;KACjD;AAED,IAAA,oBAAoB,CAAC,KAAa,EAAE,IAAS,EAAE,OAAY,EAAA;QACvD,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5B,EAAE,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,KAAU,KAAI;YAC9B,IAAI,KAAK,KAAK,CAAC,EAAE;AACb,gBAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC9C,aAAA;AACL,SAAC,CAAC,CAAA;AACF,QAAA,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAClC,QAAA,IAAI,OAAO,EAAE;YAEX,MAAM,cAAc,GAAG,IAAI,GAAG,GAAG,GAAI,MAAM,GAAG,OAAO,CAAA;YACrD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;AAC9C,SAAA;AAED,QAAA,MAAM,eAAe,GAAG,IAAI,GAAG,GAAG,GAAI,MAAM,CAAA;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;KACjD;AAED,IAAA,qBAAqB,CAAC,IAAS,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;KAC5D;AAED,IAAA,sBAAsB,CAAC,KAAU,EAAE,IAAS,EAAE,MAAW,EAAA;AACrD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;AAEzB,QAAA,IAAI,MAAM,EAAE;AACX,YAAA,MAAM,UAAU,GAAG;AACf,gBAAA,OAAO,EAAE;AACP,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,cAAc,EAAE;AACd,wBAAA,oBAAoB,EAAE;4BAClB,aAAa,EAAE,IAAI,CAAC,YAAY;AACnC,yBAAA;AACF,qBAAA;AACF,iBAAA;aACJ,CAAA;YACD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAA;AAClD,SAAA;KACH;+GApHQ,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxB,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAY,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAH5B,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAGT,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACED,MAAM,UAAU,GAAG,kBAAkB,CAAC;AACtC,MAAMM,gBAAc,GAAG;IACrB,mBAAmB,EAAE,CAAG,EAAA,UAAU,CAA4C,0CAAA,CAAA;CAC/E,CAAC;MAKW,mBAAmB,CAAA;IAE9B,WACc,CAAA,IAAgB,EAChB,SAAgC,EAAA;QADhC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuB;KACzC;AAEL,IAAA,sBAAsB,CAAC,OAAY,EAAA;AACjC,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAA;AAC1E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAG,EAAAA,gBAAc,CAAC,mBAAmB,IAAI,MAAM,CAAA,CAAE,EAAE,OAAO,CAC3D,CAAA;KACJ;IACD,2BAA2B,CAAC,MAAc,EAAG,OAAY,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAA0D,uDAAA,EAAA,MAAM,CAAE,CAAA,EAAE,OAAO,CAAC,CAAA;KACnG;AAEH,IAAA,2BAA2B,CAAC,OAAY,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oDAAoD,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAW,KAAI;YAC5G,IAAI,MAAM,IAAI,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;gBACvD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GAAQ,KAAI;oBAC5C,GAAG,CAAC,sBAAsB,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAA;oBACzD,IAAI,GAAG,EAAE,OAAO,EAAE;AAChB,wBAAA,GAAG,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,GAAG,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAA;AACxE,qBAAA;AACD,oBAAA,GAAG,CAAC,uBAAuB,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAA;oBAClH,IAAG,GAAG,EAAE,OAAO,EAAC;AACT,wBAAA,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,OAAO,EAAE,cAAc,IAAI,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,CAAC,GAAE,EAAE,CAAA;wBAC1L,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,GAAE,GAAG,GAAG,CAAC,GAAE,CAAC,CAAA;AAC5E,wBAAA,GAAG,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEzE,qBAAA;AACL,iBAAC,CAAC,CAAA;AACH,aAAA;AACD,YAAA,OAAO,MAAM,CAAA;SACd,CAAC,CAAC,CAAA;KACJ;IAEC,yBAAyB,CAAC,MAAc,EAAG,OAAY,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAoC,iCAAA,EAAA,MAAM,CAAE,CAAA,EAAE,OAAO,CAAC,CAAA;KAC7E;AAED,IAAA,gBAAgB,CAAC,MAAW,EAAA;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAA6D,0DAAA,EAAA,MAAM,CAAE,CAAA,CACtE,CAAA;KACJ;+GA9CU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCZY,mBAAmB,CAAA;AAI9B,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;IACD,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IACD,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;AACD,IAAA,WAAA,GAAA,GAAiB;+GAbN,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACID,MAAM,cAAc,GAAG;AACrB,IAAA,mBAAmB,EAAE,CAA+C,6CAAA,CAAA;AACpE,IAAA,yBAAyB,EAAE,CAAqD,mDAAA,CAAA;IAChF,YAAY,EAAE,CAAC,SAAc,KAAK,CAAA,wCAAA,EAA2C,SAAS,CAAE,CAAA;AACxF,IAAA,kBAAkB,EAAE,CAAC,MAAW,EAAE,QAAa,KAAK,CAAyE,sEAAA,EAAA,MAAM,CAAa,UAAA,EAAA,QAAQ,CAAE,CAAA;CAC3J,CAAA;MAMY,oBAAoB,CAAA;IAG/B,WAAoB,CAAA,IAAgB,EAAU,MAAc,EAAA;QAAxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAF5D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAE,CAAA;AAC9B,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAE,CAAA;KACgC;IAElE,oBAAoB,GAAA;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;KACzD;IAED,uBAAuB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAA;KACnE;AAED,IAAA,cAAc,CAAC,SAAiB,EAAA;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,CAAA,EAAG,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA,CAAE,CAAC,CAAC,IAAI,CACzE,GAAG,CAAC,CAAC,IAAS,KAAI;AAChB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;AAC5B,SAAC,CAAC,EACF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KACZ;AAED,IAAA,kBAAkB,CAAC,GAAQ,EAAE,YAAiB,EAAE,KAAe,EAAE,QAAa,EAAA;QAC5E,QAAQ,GAAG,CAAC,YAAY;YACtB,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;oBACtC,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,eAAe,CAAC,mBAAmB,EAAE;wBACxE,MAAM,WAAW,GAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,UAAU,CAAC,CAAA;AACpG,wBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,6BAA6B,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE;AAC5E,4BAAA,WAAW,EAAE;gCACX,UAAU,EAAE,GAAG,CAAC,UAAU;AAC3B,6BAAA;AACF,yBAAA,CAAC,CAAA;AACH,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAkB,eAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA,aAAA,CAAe,CAAC,EAAE;AACpF,4BAAA,WAAW,EAAE;AACX,gCAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;AAC7B,gCAAA,MAAM,EAAE,QAAQ;gCAChB,YAAY,EAAE,GAAG,CAAC,YAAY;AAC/B,6BAAA;AACF,yBAAA,CAAC,CAAA;AACH,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;AAC9D,iBAAA;gBACD,MAAK;AACN,aAAA;YAAC,KAAK,UAAU,EAAE;AACjB,gBAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;oBACvC,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,eAAe,CAAC,mBAAmB,EAAE;wBACxE,MAAM,WAAW,GAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,UAAU,CAAC,CAAA;AACpG,wBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,6BAA6B,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE;AAC5E,4BAAA,WAAW,EAAE;gCACX,UAAU,EAAE,GAAG,CAAC,UAAU;AAC3B,6BAAA;AACF,yBAAA,CAAC,CAAA;AACH,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAkB,eAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAe,aAAA,CAAA,CAAC,CAAC,CAAA;AACtF,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;AAC9D,iBAAA;gBACD,MAAK;AACN,aAAA;AACF,SAAA;KACF;IAED,sBAAsB,CAAC,YAAiB,EAAE,WAAgB,EAAA;AACxD,QAAA,IAAI,YAAY,CAAC,YAAY,KAAK,iBAAiB,EAAE;AACnD,YAAA,IAAI,GAAG,GAAG,CAAA,EAAG,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAuB,oBAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;AAC7G,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAC3B,SAAA;AAAM,aAAA,IAAI,YAAY,CAAC,YAAY,KAAK,gBAAgB,EAAE;YACzD,IAAI,GAAG,GAAG,CAAG,EAAA,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAA,gBAAA,CAAkB,CAAA;AACtE,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAC3B,SAAA;KACF;AAED,IAAA,2BAA2B,CAAC,YAAiB,EAAE,WAAgB,EAAE,KAAY,EAAA;QAC3E,IAAI,YAAY,CAAC,YAAY,KAAK,+BAA+B,IAAI,YAAY,CAAC,YAAY,KAAK,6BAA6B,EAAE;AAChI,YAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AACrC,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAA0B,uBAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA,YAAA,CAAc,CAAC,EACzF;AACE,oBAAA,WAAW,EAAE;AACX,wBAAA,OAAO,EAAE,IAAI;AACb,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS;AAC/C,qBAAA;AACF,iBAAA,CACF,CAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,GAAG,GAAG,CAAA,EAAG,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAY,SAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA,WAAA,EAAc,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAA,CAAE,CAAA;AACnJ,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAC3B,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,GAAG,GAAG,CAAA,EAAG,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAsC,mCAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAA,CAAA,EAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAA,CAAE,CAAA;AAC/K,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAC3B,SAAA;KACF;IAED,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,CAAG,EAAA,cAAc,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAE,CAAA,CAAC,CAAC,IAAI,CAC5E,GAAG,CAAC,CAAC,IAAS,KAAI;AAChB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;AACzB,SAAC,CAAC,EACF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KACZ;AAED,IAAA,wBAAwB,CAAC,YAAiB,EAAE,WAAgB,EAAE,QAAa,EAAA;AACzE,QAAA,IAAI,YAAY,CAAC,YAAY,KAAK,6BAA6B,EAAE;AAC/D,YAAA,QAAQ,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;AAC3E,SAAA;AAAM,aAAA,IAAI,YAAY,CAAC,YAAY,KAAK,yBAAyB,EAAE;YAClE,IAAI,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AAC1C,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE;oBACrB,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACxF,oBAAA,IAAI,UAAU,EAAE;wBACd,IAAI,GAAG,GAAG,CAAG,EAAA,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAA,2BAAA,CAA6B,CAAA;AACrF,wBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAC3B,qBAAA;AAAM,yBAAA;AACL,wBAAA,QAAQ,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;AAC3E,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;AAC3E,iBAAA;AACH,aAAC,CAAC,CAAA;AACH,SAAA;AAAM,aAAA;YACL,IAAI,GAAG,GAAG,CAAG,EAAA,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAA,2BAAA,CAA6B,CAAA;AACrF,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAC3B,SAAA;KACF;AAED,IAAA,oBAAoB,CAAC,YAAiB,EAAE,WAAgB,EAAE,QAAa,EAAA;AACrE,QAAA,IAAI,YAAY,CAAC,YAAY,KAAK,gBAAgB,EAAE;AAClD,YAAA,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;AACzC,gBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;gBACrF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;gBAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AACzC,oBAAA,IAAI,GAAG,GAAG,CAAA,EAAG,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAY,SAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;AAClG,oBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAC3B,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,IAAI,CAAC,8CAA8C,QAAQ,CAAA,4BAAA,CAA8B,CAAC,CAAA;AACpG,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,QAAQ,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;AAC/D,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,YAAY,CAAC,YAAY,KAAK,iBAAiB,EAAE;AAC1D,YAAA,QAAQ,CAAC,IAAI,CAAC,CAAA,mDAAA,CAAqD,CAAC,CAAA;AACrE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,GAAG,GAAG,CAAA,EAAG,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAY,SAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;AAClG,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAC3B,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,YAAiB,EAAE,WAAgB,EAAE,KAAY,EAAE,QAAa,EAAA;QAChF,IAAI,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;gBAClG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,aAAA,CAAe,CAAC,EACpC;AACE,oBAAA,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;AAChC,iBAAA,CACF,CAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACvE,oBAAA,IAAI,GAAG,EAAE;AACP,wBAAA,IAAI,GAAG,CAAC,eAAe,KAAK,mBAAmB;AAC7C,4BAAA,GAAG,CAAC,gBAAgB,KAAK,mBAAmB,EAAE;AAC9C,4BAAA,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;AACrD,yBAAA;AAAM,6BAAA;AACL,4BAAA,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAA;AACtD,yBAAA;AACD,wBAAA,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;4BACzB,IAAI,YAAY,CAAC,YAAY,KAAK,sBAAsB,IAAI,YAAY,CAAC,YAAY,KAAK,mBAAmB,EAAE;gCAC7G,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAA0B,uBAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA,SAAA,EAAY,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAA,YAAA,CAAc,CAAC,CAAC,CAAA;AAC1I,6BAAA;AAAM,iCAAA;AACL,gCAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAA0B,uBAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAc,YAAA,CAAA,CAAC,CAAC,CAAA;AAC7F,6BAAA;AACF,yBAAA;AAAM,6BAAA,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,EAAE;AACjC,4BAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AACrC,gCAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAkB,eAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAe,aAAA,CAAA,CAAC,CAAC,CAAA;AACtF,6BAAA;AAAM,iCAAA;AACL,gCAAA,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;AAC9D,6BAAA;AACF,yBAAA;AAAM,6BAAA,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE;4BAClC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC5D,yBAAA;AAAM,6BAAA,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE;AACnC,4BAAA,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;AAC1C,yBAAA;AACF,qBAAA;AAAM,yBAAA;AACL,wBAAA,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;AACtC,qBAAA;AACH,iBAAC,CAAC,CAAA;AACH,aAAA;AAEF,SAAA;AAAM,aAAA,IAAI,YAAY,CAAC,QAAQ,KAAK,OAAO,EAAE;YAC5C,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;AAC/D,SAAA;AAAM,aAAA,IAAI,YAAY,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC5C,YAAA,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;AACvD,SAAA;AAAM,aAAA,IAAI,YAAY,CAAC,QAAQ,KAAK,YAAY,EAAE;YACjD,IAAI,CAAC,2BAA2B,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;AACnE,SAAA;AAAM,aAAA,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC9C,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;AACnE,SAAA;AAAM,aAAA;AACL,YAAA,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;AACtC,SAAA;KACF;+GAzMU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAhB,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAHnB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAGP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCXY,yBAAyB,CAAA;AAEpC,IAAA,SAAS,CAAC,KAAU,EAAA;AAElB,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEtC,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAA;AACtD,QAAA,OAAO,KAAK,CAAA;KACb;+GARU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAzB,yBAAyB,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,uBAAuB;AAC9B,iBAAA,CAAA;;;MCMY,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EANnB,YAAA,EAAA,CAAA,yBAAyB,CAEtC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAExB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAJhC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,yBAAyB,CAAC;AACzC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACrC,iBAAA,CAAA;;;MCJY,kBAAkB,CAAA;AAE7B,IAAA,SAAS,CAAC,KAAY,EAAE,QAAa,EAAE,EAAE,SAAiB,EAAE,EAAA;QAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAAE,YAAA,OAAO,KAAK,CAAA;AAAE,SAAA;AACtD,QAAA,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE,EAAE;YAE5B,IAAI,KAAK,KAAK,KAAK,EAAE;AAAE,gBAAA,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;AAAE,aAAA;AAC5C,YAAA,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;AAC9B,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAAE,YAAA,OAAO,KAAK,CAAA;AAAE,SAAA;AACvC,QAAA,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;KACzC;+GAXU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;;MCMY,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EANpB,YAAA,EAAA,CAAA,kBAAkB,CAE/B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAJjC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA,CAAA;;;MCLY,mBAAmB,CAAA;AAC9B,IAAA,SAAS,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,QAAQ,KAAK;AACX,gBAAA,KAAK,kBAAkB,CAAC;AACxB,gBAAA,KAAK,kBAAkB,CAAC;AACxB,gBAAA,KAAK,SAAS;AACZ,oBAAA,OAAO,SAAS,CAAA;AAClB,gBAAA,KAAK,QAAQ,CAAC;AACd,gBAAA,KAAK,QAAQ;AACX,oBAAA,OAAO,QAAQ,CAAA;AACjB,gBAAA,KAAK,YAAY,CAAC;AAClB,gBAAA,KAAK,YAAY,CAAC;AAClB,gBAAA,KAAK,YAAY;AACf,oBAAA,OAAO,QAAQ,CAAA;AACjB,gBAAA,KAAK,UAAU,CAAC;AAChB,gBAAA,KAAK,UAAU;AACb,oBAAA,OAAO,UAAU,CAAA;AACnB,gBAAA,KAAK,eAAe,CAAC;AACrB,gBAAA,KAAK,eAAe;AAClB,oBAAA,OAAO,eAAe,CAAA;AACxB,gBAAA;AACE,oBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AACvE,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE,CAAA;KACV;+GA1BU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAnB,mBAAmB,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,iBAAiB;AACxB,iBAAA,CAAA;;;MCOY,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EANjB,YAAA,EAAA,CAAA,mBAAmB,CAEhC,EAAA,OAAA,EAAA,CAAA,YAAY,aAEJ,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAElB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAJ9B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;;;"}