{"version":3,"file":"cauca-911-input-validators.mjs","sources":["../../../projects/cauca-input-validators/src/lib/shared/models/gsm-7bit-chars.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/sms-avoid-characters.directive.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/sms-segment-calculator.directive.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/phone-number-detector.directive.ts","../../../projects/cauca-input-validators/src/lib/shared/directives/url-detector.directive.ts","../../../projects/cauca-input-validators/src/public-api.ts","../../../projects/cauca-input-validators/src/cauca-911-input-validators.ts"],"sourcesContent":["export class Gsm7bitChars {\n    public static gsm7bitChars = '@£$¥èéùìòÇ\\\\nØø\\\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\\\\\"#¤%&\\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑÜ§¿abcdefghijklmnopqrstuvwxyzäöñüà';\n    public static gsm7bitCharsExt = '\\\\^{}\\\\\\\\\\\\[~\\\\]|€';\n    public static gsm7bitRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitChars + ']*$');\n    public static gsm7bitExtRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitChars + Gsm7bitChars.gsm7bitCharsExt + ']*$');\n    public static gsm7bitExtOnlyRegExp = RegExp('^[' + Gsm7bitChars.gsm7bitCharsExt + ']*$');\n}","import { AfterViewInit, Directive, ElementRef, HostListener, inject, output } from '@angular/core';\nimport { Gsm7bitChars } from '../models/gsm-7bit-chars';\n\ninterface CharsList {\n  charsToAvoid: string[];\n  charsToReplace: string[];\n}\n\n@Directive({\n    selector: '[caucaSmsAvoidCharacters]',\n})\nexport class SmsAvoidCharactersDirective implements AfterViewInit {\n\n  public readonly charsToAvoidChanged = output<string[]>();\n  public readonly charsToReplaceChanged = output<string[]>();\n\n  private charsToAvoid: string[] = [];\n  private charsToReplace: string[] = [];\n  private readonly elementRef = inject(ElementRef);\n\n  public ngAfterViewInit(): void {\n    this.onCheck();\n  }\n\n  @HostListener('input')\n  @HostListener('paste')\n  @HostListener('blur')\n  public onCheck() {\n    this.checkCharacterException(this.elementRef.nativeElement.value);\n  }\n\n  private checkCharacterException(text: string): void {\n    const charsList = this.listUTF16Chars(text);\n\n    if (this.compareCharsList(this.charsToAvoid, charsList.charsToAvoid)) {\n      this.charsToAvoid = this.removeDuplicates(charsList.charsToAvoid);\n      this.charsToAvoidChanged.emit(this.charsToAvoid);\n    }\n    if (this.compareCharsList(this.charsToReplace, charsList.charsToReplace)) {\n      this.charsToReplace = this.removeDuplicates(charsList.charsToReplace);\n      this.charsToReplaceChanged.emit(this.charsToReplace);\n    }\n  }\n\n  private listUTF16Chars(text: string): CharsList {\n    const charToAvoidOrReplace = text.replace(new RegExp('([' + Gsm7bitChars.gsm7bitChars + ']+)', 'g'), '');\n    const charToReplace = charToAvoidOrReplace.replace(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'), '');\n    const charToAvoid = charToAvoidOrReplace.match(new RegExp('([' + Gsm7bitChars.gsm7bitCharsExt + ']+)', 'g'));\n\n    return {\n      charsToAvoid: charToAvoid ? charToAvoid[0].split('') : [],\n      charsToReplace: charToReplace ? charToReplace.split('') : []\n    };\n  }\n\n  private compareCharsList(list1: string[], list2: string[]): boolean {\n    return JSON.stringify(list1) !== JSON.stringify(list2);\n  }\n\n  private removeDuplicates(items: string[]): string[] {\n    return [...new Set(items)];\n  }\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, inject, output } from '@angular/core';\nimport { Gsm7bitChars } from '../models/gsm-7bit-chars';\n\n@Directive({\n    selector: '[caucaSmsSegmentCalculator]',\n})\nexport class SmsSegmentCalculatorDirective implements AfterViewInit {\n  public readonly segmentCountChanged = output<number>();\n\n  private readonly elementRef = inject(ElementRef);\n  private segmentCount = 0;\n  private messageLength = {\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    GSM7: 160,\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    GSM7ext: 160,\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    UTF16: 70\n  };\n  private multiMessageLength = {\n      // eslint-disable-next-line @typescript-eslint/naming-convention\n      GSM7: 153,\n      // eslint-disable-next-line @typescript-eslint/naming-convention\n      GSM7ext: 153,\n      // eslint-disable-next-line @typescript-eslint/naming-convention\n      UTF16: 67\n  };\n\n  public ngAfterViewInit(): void {\n    this.onCheck();\n  }\n\n  @HostListener('input')\n  @HostListener('paste')\n  @HostListener('blur')\n  public onCheck() {\n    this.checkNumberOfSegment(this.elementRef.nativeElement.value);\n  }\n\n  private checkNumberOfSegment(text: string): void {\n    const segmentCount = this.countNumberOfSegment(text);\n\n    if (this.segmentCount !== segmentCount) {\n      this.segmentCountChanged.emit(segmentCount);\n      this.segmentCount = segmentCount;\n    }\n  }\n\n  private countNumberOfSegment(text: string): number {\n    if (!text) {\n        return 0;\n    }\n\n    const length = this.countSmsChars(text);\n    const charset = this.getCharset(text);\n    const perMessage = (length > this.messageLength[charset] ? this.multiMessageLength[charset] : this.messageLength[charset]);\n\n    return Math.ceil(length / perMessage);\n  }\n\n  private countSmsChars(text: string): number {\n    let length = text.length;\n    const charset = this.getCharset(text);\n\n    if (charset === 'GSM7ext') {\n        length += this.countGsm7bitExt(text);\n    }\n\n    return length;\n  }\n\n  private countGsm7bitExt(text: string): number {\n    let char2;\n    const chars = () => {\n        let _i; let _len;\n        const _results = [];\n\n        for (_i = 0, _len = text.length; _i < _len; _i++) {\n            char2 = text[_i];\n            if (char2.match(Gsm7bitChars.gsm7bitExtOnlyRegExp) != null) {\n                _results.push(char2);\n            }\n        }\n        return _results;\n    };\n\n    return chars.length;\n  }\n\n  private getCharset(text: string): string {\n    switch (false) {\n        case text.match(Gsm7bitChars.gsm7bitRegExp) == null:\n            return 'GSM7';\n        case text.match(Gsm7bitChars.gsm7bitExtRegExp) == null:\n            return 'GSM7ext';\n        default:\n            return 'UTF16';\n    }\n  }\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, inject, output } from '@angular/core';\n\n@Directive({\n    selector: '[caucaPhoneNumberDetector]',\n})\nexport class PhoneNumberDetectorDirective implements AfterViewInit {\n\n  public readonly hasPhoneNumberChanged = output<boolean>();\n\n  private hasPhoneNumber = false;\n  private readonly elementRef = inject(ElementRef);\n\n  public ngAfterViewInit(): void {\n    this.onCheck();\n  }\n\n  @HostListener('input')\n  @HostListener('paste')\n  @HostListener('blur')\n  public onCheck() {\n    this.checkIfTextHasPhoneNumber(this.elementRef.nativeElement.value);\n  }\n\n  private checkIfTextHasPhoneNumber(text: string): void {\n    const hasPhoneNumber = this.checkForPhoneNumber(text);\n\n    if (this.hasPhoneNumber !== hasPhoneNumber) {\n      this.hasPhoneNumberChanged.emit(hasPhoneNumber);\n      this.hasPhoneNumber = hasPhoneNumber;\n    }\n  }\n\n  private checkForPhoneNumber(text: string): boolean {\n    if (!text) {\n        return false;\n    }\n\n    const regex = /\\(?(\\d{3})\\)?[- .]?(\\d{3})[- .]?(\\d{4})/gm;\n\n    return regex.test(text);\n  }\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, inject, output } from '@angular/core';\n\n@Directive({\n    selector: '[caucaUrlDetector]',\n})\nexport class UrlDetectorDirective implements AfterViewInit {\n\n  public readonly hasUrlChanged = output<boolean>();\n  public readonly hasLongUrlChanged = output<boolean>();\n\n  private hasUrl = false;\n  private hasLongUrl = false;\n  private readonly elementRef = inject(ElementRef);\n  private readonly schemeRegex = /[a-zA-Z]{3,5}:\\/\\//im;\n  private readonly urlRegex = /((?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(\\/[-a-zA-Z0-9()@:%_\\+.~#?&//=]*))/i;\n\n  public ngAfterViewInit(): void {\n    this.onCheck();\n  }\n\n  @HostListener('input')\n  @HostListener('paste')\n  @HostListener('blur')\n  public onCheck() {\n    this.checkIfTextHasUrl(this.elementRef.nativeElement.value);\n  }\n\n  private checkIfTextHasUrl(text: string): void {\n    const hasUrl = this.checkForScheme(text) || this.checkForUrl(text);\n    if (this.hasUrl !== hasUrl) {\n      this.hasUrl = hasUrl;\n      this.hasUrlChanged.emit(hasUrl);\n    }\n\n    const hasLongUrl = this.checkForLongUrl(text);\n    if (this.hasLongUrl !== hasLongUrl) {\n      this.hasLongUrl = hasLongUrl;\n      this.hasLongUrlChanged.emit(hasLongUrl);\n    }\n\n  }\n\n  private checkForScheme(text: string): boolean {\n    if (!text) {\n        return false;\n    }\n\n    return this.schemeRegex.test(text);\n  }\n\n  private checkForUrl(text: string): boolean {\n    if (!text) {\n        return false;\n    }\n\n    this.urlRegex.lastIndex = 0;\n    const url = this.urlRegex;\n    return url.test(text);\n  }\n\n  private checkForLongUrl(text: string): boolean {\n    if (!text) {\n        return false;\n    }\n\n    const globalRegex = new RegExp(this.urlRegex.source, 'gi');\n    const urls: string[] = [];\n    let match: RegExpExecArray | null;\n    while ((match = globalRegex.exec(text)) !== null) {\n      urls.push(match[0]);\n    }\n\n    return urls.some((url: string) => url.length > 120);\n  }\n}\n","/*\n * Public API Surface of cauca-input-validators\n */\n\nexport { SmsAvoidCharactersDirective } from './lib/shared/directives/sms-avoid-characters.directive';\nexport { SmsSegmentCalculatorDirective } from './lib/shared/directives/sms-segment-calculator.directive';\nexport { PhoneNumberDetectorDirective } from './lib/shared/directives/phone-number-detector.directive';\nexport { UrlDetectorDirective } from './lib/shared/directives/url-detector.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAAa,YAAY,CAAA;aACP,IAAA,CAAA,YAAY,GAAG,wIAAwI,CAAC;aACxJ,IAAA,CAAA,eAAe,GAAG,oBAAoB,CAAC;aACvC,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;AACjE,IAAA,SAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC;aACnG,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC;;;MCMhF,2BAA2B,CAAA;AAHxC,IAAA,WAAA,GAAA;QAKkB,IAAA,CAAA,mBAAmB,GAAG,MAAM,EAAY;QACxC,IAAA,CAAA,qBAAqB,GAAG,MAAM,EAAY;QAElD,IAAA,CAAA,YAAY,GAAa,EAAE;QAC3B,IAAA,CAAA,cAAc,GAAa,EAAE;AACpB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AA4CjD,IAAA;IA1CQ,eAAe,GAAA;QACpB,IAAI,CAAC,OAAO,EAAE;IAChB;IAKO,OAAO,GAAA;QACZ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;IACnE;AAEQ,IAAA,uBAAuB,CAAC,IAAY,EAAA;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAE3C,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE;YACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC;YACjE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAClD;AACA,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE;YACxE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,cAAc,CAAC;YACrE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QACtD;IACF;AAEQ,IAAA,cAAc,CAAC,IAAY,EAAA;QACjC,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,GAAG,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QACxG,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,eAAe,GAAG,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QACpH,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,eAAe,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;QAE5G,OAAO;AACL,YAAA,YAAY,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE;AACzD,YAAA,cAAc,EAAE,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;SAC3D;IACH;IAEQ,gBAAgB,CAAC,KAAe,EAAE,KAAe,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACxD;AAEQ,IAAA,gBAAgB,CAAC,KAAe,EAAA;QACtC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B;4HAlDW,2BAA2B,GAAA,CAAA,CAAA,CAAA,CAAA;oEAA3B,2BAA2B,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,wCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAA3B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,OAAA,aAAS,CAAA,CAAA,CAAA,CAAkB,CAAA,OAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,OAA3B,aAAS,CAAA,CAAA,CAAA,CAAkB,CAAA,MAAA,EAAA,SAAA,mDAAA,GAAA,EAAA,OAA3B,aAAS,CAAA,CAAA,CAAA,CAAkB;;;iFAA3B,2BAA2B,EAAA,CAAA;cAHvC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,2BAA2B;AACxC,aAAA;;kBAcE,YAAY;mBAAC,OAAO;;kBACpB,YAAY;mBAAC,OAAO;;kBACpB,YAAY;mBAAC,MAAM;;;MCpBT,6BAA6B,CAAA;AAH1C,IAAA,WAAA,GAAA;QAIkB,IAAA,CAAA,mBAAmB,GAAG,MAAM,EAAU;AAErC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACxC,IAAA,CAAA,YAAY,GAAG,CAAC;AAChB,QAAA,IAAA,CAAA,aAAa,GAAG;;AAEtB,YAAA,IAAI,EAAE,GAAG;;AAET,YAAA,OAAO,EAAE,GAAG;;AAEZ,YAAA,KAAK,EAAE;SACR;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAG;;AAEzB,YAAA,IAAI,EAAE,GAAG;;AAET,YAAA,OAAO,EAAE,GAAG;;AAEZ,YAAA,KAAK,EAAE;SACV;AAyEF,IAAA;IAvEQ,eAAe,GAAA;QACpB,IAAI,CAAC,OAAO,EAAE;IAChB;IAKO,OAAO,GAAA;QACZ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;IAChE;AAEQ,IAAA,oBAAoB,CAAC,IAAY,EAAA;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAEpD,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE;AACtC,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;AAC3C,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;QAClC;IACF;AAEQ,IAAA,oBAAoB,CAAC,IAAY,EAAA;QACvC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,CAAC;QACZ;QAEA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACrC,QAAA,MAAM,UAAU,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1H,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IACvC;AAEQ,IAAA,aAAa,CAAC,IAAY,EAAA;AAChC,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAErC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AACvB,YAAA,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QACxC;AAEA,QAAA,OAAO,MAAM;IACf;AAEQ,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,KAAK;QACT,MAAM,KAAK,GAAG,MAAK;AACf,YAAA,IAAI,EAAE;AAAE,YAAA,IAAI,IAAI;YAChB,MAAM,QAAQ,GAAG,EAAE;AAEnB,YAAA,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE;AAC9C,gBAAA,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;gBAChB,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,IAAI,EAAE;AACxD,oBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxB;YACJ;AACA,YAAA,OAAO,QAAQ;AACnB,QAAA,CAAC;QAED,OAAO,KAAK,CAAC,MAAM;IACrB;AAEQ,IAAA,UAAU,CAAC,IAAY,EAAA;QAC7B,QAAQ,KAAK;YACT,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,IAAI;AAC/C,gBAAA,OAAO,MAAM;YACjB,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,IAAI;AAClD,gBAAA,OAAO,SAAS;AACpB,YAAA;AACI,gBAAA,OAAO,OAAO;;IAExB;8HA5FW,6BAA6B,GAAA,CAAA,CAAA,CAAA,CAAA;oEAA7B,6BAA6B,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,2BAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,0CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAA7B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,OAAA,aAAS,CAAA,CAAA,CAAA,CAAoB,CAAA,OAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,OAA7B,aAAS,CAAA,CAAA,CAAA,CAAoB,CAAA,MAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,OAA7B,aAAS,CAAA,CAAA,CAAA,CAAoB;;;iFAA7B,6BAA6B,EAAA,CAAA;cAHzC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,6BAA6B;AAC1C,aAAA;;kBA2BE,YAAY;mBAAC,OAAO;;kBACpB,YAAY;mBAAC,OAAO;;kBACpB,YAAY;mBAAC,MAAM;;;MC7BT,4BAA4B,CAAA;AAHzC,IAAA,WAAA,GAAA;QAKkB,IAAA,CAAA,qBAAqB,GAAG,MAAM,EAAW;QAEjD,IAAA,CAAA,cAAc,GAAG,KAAK;AACb,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AA+BjD,IAAA;IA7BQ,eAAe,GAAA;QACpB,IAAI,CAAC,OAAO,EAAE;IAChB;IAKO,OAAO,GAAA;QACZ,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;IACrE;AAEQ,IAAA,yBAAyB,CAAC,IAAY,EAAA;QAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAErD,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,EAAE;AAC1C,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/C,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc;QACtC;IACF;AAEQ,IAAA,mBAAmB,CAAC,IAAY,EAAA;QACtC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,KAAK;QAChB;QAEA,MAAM,KAAK,GAAG,2CAA2C;AAEzD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;6HAnCW,4BAA4B,GAAA,CAAA,CAAA,CAAA,CAAA;oEAA5B,4BAA4B,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,0BAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,yCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAA5B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,OAAA,aAAS,CAAA,CAAA,CAAA,CAAmB,CAAA,OAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,OAA5B,aAAS,CAAA,CAAA,CAAA,CAAmB,CAAA,MAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,OAA5B,aAAS,CAAA,CAAA,CAAA,CAAmB;;;iFAA5B,4BAA4B,EAAA,CAAA;cAHxC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,4BAA4B;AACzC,aAAA;;kBAYE,YAAY;mBAAC,OAAO;;kBACpB,YAAY;mBAAC,OAAO;;kBACpB,YAAY;mBAAC,MAAM;;;MCbT,oBAAoB,CAAA;AAHjC,IAAA,WAAA,GAAA;QAKkB,IAAA,CAAA,aAAa,GAAG,MAAM,EAAW;QACjC,IAAA,CAAA,iBAAiB,GAAG,MAAM,EAAW;QAE7C,IAAA,CAAA,MAAM,GAAG,KAAK;QACd,IAAA,CAAA,UAAU,GAAG,KAAK;AACT,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC/B,IAAA,CAAA,WAAW,GAAG,sBAAsB;QACpC,IAAA,CAAA,QAAQ,GAAG,mGAAmG;AA4DhI,IAAA;IA1DQ,eAAe,GAAA;QACpB,IAAI,CAAC,OAAO,EAAE;IAChB;IAKO,OAAO,GAAA;QACZ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;IAC7D;AAEQ,IAAA,iBAAiB,CAAC,IAAY,EAAA;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAClE,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC;QAEA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC7C,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;AAClC,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;QACzC;IAEF;AAEQ,IAAA,cAAc,CAAC,IAAY,EAAA;QACjC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,KAAK;QAChB;QAEA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IACpC;AAEQ,IAAA,WAAW,CAAC,IAAY,EAAA;QAC9B,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,KAAK;QAChB;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC;AAC3B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ;AACzB,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB;AAEQ,IAAA,eAAe,CAAC,IAAY,EAAA;QAClC,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,KAAK;QAChB;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;QAC1D,MAAM,IAAI,GAAa,EAAE;AACzB,QAAA,IAAI,KAA6B;AACjC,QAAA,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE;YAChD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB;AAEA,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAW,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IACrD;qHApEW,oBAAoB,GAAA,CAAA,CAAA,CAAA,CAAA;oEAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAApB,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OAAA,aAAS,CAAA,CAAA,CAAA,CAAW,CAAA,OAAA,EAAA,SAAA,6CAAA,GAAA,EAAA,OAApB,aAAS,CAAA,CAAA,CAAA,CAAW,CAAA,MAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAApB,aAAS,CAAA,CAAA,CAAA,CAAW;;;iFAApB,oBAAoB,EAAA,CAAA;cAHhC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,oBAAoB;AACjC,aAAA;;kBAgBE,YAAY;mBAAC,OAAO;;kBACpB,YAAY;mBAAC,OAAO;;kBACpB,YAAY;mBAAC,MAAM;;;ACtBtB;;AAEG;;ACFH;;AAEG;;;;"}