UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

1 lines 13.8 kB
{"version":3,"file":"ng-zorro-antd-avatar.mjs","sources":["../../components/avatar/avatar.component.ts","../../components/avatar/avatar-group.component.ts","../../components/avatar/avatar.module.ts","../../components/avatar/types.ts","../../components/avatar/public-api.ts","../../components/avatar/ng-zorro-antd-avatar.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n ViewChild,\n ViewEncapsulation,\n afterRender,\n inject,\n numberAttribute\n} from '@angular/core';\n\nimport { NzConfigKey, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzShapeSCType, NzSizeLDSType } from 'ng-zorro-antd/core/types';\nimport { toCssPixel } from 'ng-zorro-antd/core/util';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'avatar';\n\n@Component({\n selector: 'nz-avatar',\n exportAs: 'nzAvatar',\n imports: [NzIconModule],\n template: `\n @if (nzIcon && hasIcon) {\n <nz-icon [nzType]=\"nzIcon\" />\n } @else if (nzSrc && hasSrc) {\n <img [src]=\"nzSrc\" [attr.srcset]=\"nzSrcSet\" [attr.alt]=\"nzAlt\" (error)=\"imgError($event)\" />\n } @else if (nzText && hasText) {\n <span class=\"ant-avatar-string\" #textEl>{{ nzText }}</span>\n }\n <ng-content></ng-content>\n `,\n host: {\n class: 'ant-avatar',\n '[class.ant-avatar-lg]': `nzSize === 'large'`,\n '[class.ant-avatar-sm]': `nzSize === 'small'`,\n '[class.ant-avatar-square]': `nzShape === 'square'`,\n '[class.ant-avatar-circle]': `nzShape === 'circle'`,\n '[class.ant-avatar-icon]': `nzIcon`,\n '[class.ant-avatar-image]': `hasSrc `,\n '[style.width]': 'customSize',\n '[style.height]': 'customSize',\n '[style.line-height]': 'customSize',\n // nzSize type is number when customSize is true\n '[style.font-size.px]': '(hasIcon && customSize) ? $any(nzSize) / 2 : null'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class NzAvatarComponent implements OnChanges {\n readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n @Input() @WithConfig() nzShape: NzShapeSCType = 'circle';\n @Input() @WithConfig() nzSize: NzSizeLDSType | number = 'default';\n @Input({ transform: numberAttribute }) @WithConfig() nzGap = 4;\n @Input() nzText?: string;\n @Input() nzSrc?: string;\n @Input() nzSrcSet?: string;\n @Input() nzAlt?: string;\n @Input() nzIcon?: string;\n @Output() readonly nzError = new EventEmitter<Event>();\n\n hasText: boolean = false;\n hasSrc: boolean = true;\n hasIcon: boolean = false;\n customSize: string | null = null;\n\n @ViewChild('textEl', { static: false }) textEl?: ElementRef<HTMLSpanElement>;\n\n private el: HTMLElement = inject(ElementRef).nativeElement;\n private cdr = inject(ChangeDetectorRef);\n\n constructor() {\n afterRender(() => this.calcStringSize());\n }\n\n imgError(event: Event): void {\n this.nzError.emit(event);\n if (!event.defaultPrevented) {\n this.hasSrc = false;\n this.hasIcon = false;\n this.hasText = false;\n if (this.nzIcon) {\n this.hasIcon = true;\n } else if (this.nzText) {\n this.hasText = true;\n }\n this.cdr.detectChanges();\n this.setSizeStyle();\n this.calcStringSize();\n }\n }\n\n ngOnChanges(): void {\n this.hasText = !this.nzSrc && !!this.nzText;\n this.hasIcon = !this.nzSrc && !!this.nzIcon;\n this.hasSrc = !!this.nzSrc;\n\n this.setSizeStyle();\n this.calcStringSize();\n }\n\n private calcStringSize(): void {\n if (!this.hasText || !this.textEl) {\n return;\n }\n\n const textEl = this.textEl.nativeElement;\n const childrenWidth = textEl.offsetWidth;\n const avatarWidth = this.el.getBoundingClientRect?.().width ?? 0;\n const offset = this.nzGap * 2 < avatarWidth ? this.nzGap * 2 : 8;\n const scale = avatarWidth - offset < childrenWidth ? (avatarWidth - offset) / childrenWidth : 1;\n\n textEl.style.transform = `scale(${scale}) translateX(-50%)`;\n textEl.style.lineHeight = this.customSize || '';\n }\n\n private setSizeStyle(): void {\n if (typeof this.nzSize === 'number') {\n this.customSize = toCssPixel(this.nzSize);\n } else {\n this.customSize = null;\n }\n\n this.cdr.markForCheck();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'nz-avatar-group',\n exportAs: 'nzAvatarGroup',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ant-avatar-group'\n }\n})\nexport class NzAvatarGroupComponent {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { NzAvatarGroupComponent } from './avatar-group.component';\nimport { NzAvatarComponent } from './avatar.component';\n\n@NgModule({\n exports: [NzAvatarComponent, NzAvatarGroupComponent],\n imports: [NzAvatarComponent, NzAvatarGroupComponent]\n})\nexport class NzAvatarModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NzShapeSCType, NzSizeLDSType } from 'ng-zorro-antd/core/types';\n\nexport interface NzAvatarProps {\n shape?: NzShapeSCType;\n size?: NzSizeLDSType | number;\n gap?: number;\n src?: string;\n srcSet?: string;\n alt?: string;\n icon?: string;\n text?: string;\n error?: (event: Event) => void;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './avatar.component';\nexport * from './avatar-group.component';\nexport * from './avatar.module';\nexport * from './types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AA0BA,MAAM,qBAAqB,GAAgB,QAAQ;IAkCtC,iBAAiB,GAAA,CAAA,MAAA;;;;;;;;;;iBAAjB,iBAAiB,CAAA;;;AAElB,YAAA,mBAAA,GAAA,CAAA,UAAU,EAAE,CAAA;AACZ,YAAA,kBAAA,GAAA,CAAA,UAAU,EAAE,CAAA;AACkB,YAAA,iBAAA,GAAA,CAAA,UAAU,EAAE,CAAA;YAF7B,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,SAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,OAAO,EAAP,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAA,OAAO,GAA2B,KAAA,CAAA,EAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,0BAAA,CAAA;YAClC,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,QAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,QAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,MAAM,EAAN,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAA,MAAM,GAAqC,KAAA,CAAA,EAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,yBAAA,CAAA;YACb,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,OAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,KAAK,EAAL,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAA,KAAK,GAAK,KAAA,CAAA,EAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,wBAAA,CAAA;;;QAHtD,aAAa,GAAgB,qBAAqB;QACpC,OAAO,GAAA,iBAAA,CAAA,IAAA,EAAA,qBAAA,EAAkB,QAAQ,CAAC;QAClC,MAAM,IAAA,iBAAA,CAAA,IAAA,EAAA,0BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,oBAAA,EAA2B,SAAS,CAAC;QACb,KAAK,IAAA,iBAAA,CAAA,IAAA,EAAA,yBAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,mBAAA,EAAG,CAAC,CAAC;AACtD,QAAA,MAAM,GAAU,iBAAA,CAAA,IAAA,EAAA,wBAAA,CAAA;AAChB,QAAA,KAAK;AACL,QAAA,QAAQ;AACR,QAAA,KAAK;AACL,QAAA,MAAM;AACI,QAAA,OAAO,GAAG,IAAI,YAAY,EAAS;QAEtD,OAAO,GAAY,KAAK;QACxB,MAAM,GAAY,IAAI;QACtB,OAAO,GAAY,KAAK;QACxB,UAAU,GAAkB,IAAI;AAEQ,QAAA,MAAM;AAEtC,QAAA,EAAE,GAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;AAClD,QAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEvC,QAAA,WAAA,GAAA;YACE,WAAW,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;;AAG1C,QAAA,QAAQ,CAAC,KAAY,EAAA;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAC3B,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;AACd,qBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACtB,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;AAErB,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;gBACxB,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,cAAc,EAAE;;;QAIzB,WAAW,GAAA;AACT,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;AAC3C,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;YAC3C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK;YAE1B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,cAAc,EAAE;;QAGf,cAAc,GAAA;YACpB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACjC;;AAGF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;AACxC,YAAA,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW;AACxC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,IAAI,CAAC,KAAK,IAAI,CAAC;YAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;YAChE,MAAM,KAAK,GAAG,WAAW,GAAG,MAAM,GAAG,aAAa,GAAG,CAAC,WAAW,GAAG,MAAM,IAAI,aAAa,GAAG,CAAC;YAE/F,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAS,MAAA,EAAA,KAAK,oBAAoB;YAC3D,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE;;QAGzC,YAAY,GAAA;AAClB,YAAA,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;gBACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;;iBACpC;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;AAGxB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;2GA1Ed,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;+FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAIR,eAAe,CAhCzB,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,mDAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAVS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;;2FA6BX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhC7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,QAAQ,EAAE;;;;;;;;;AAST,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,YAAY;AACnB,wBAAA,uBAAuB,EAAE,CAAoB,kBAAA,CAAA;AAC7C,wBAAA,uBAAuB,EAAE,CAAoB,kBAAA,CAAA;AAC7C,wBAAA,2BAA2B,EAAE,CAAsB,oBAAA,CAAA;AACnD,wBAAA,2BAA2B,EAAE,CAAsB,oBAAA,CAAA;AACnD,wBAAA,yBAAyB,EAAE,CAAQ,MAAA,CAAA;AACnC,wBAAA,0BAA0B,EAAE,CAAS,OAAA,CAAA;AACrC,wBAAA,eAAe,EAAE,YAAY;AAC7B,wBAAA,gBAAgB,EAAE,YAAY;AAC9B,wBAAA,qBAAqB,EAAE,YAAY;;AAEnC,wBAAA,sBAAsB,EAAE;AACzB,qBAAA;AACD,oBAAA,mBAAmB,EAAE,KAAK;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC;AAClC,iBAAA;wDAGwB,OAAO,EAAA,CAAA;sBAA7B;gBACsB,MAAM,EAAA,CAAA;sBAA5B;gBACoD,KAAK,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAC5B,MAAM,EAAA,CAAA;sBAAd;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACkB,OAAO,EAAA,CAAA;sBAAzB;gBAOuC,MAAM,EAAA,CAAA;sBAA7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;AC7ExC;;;AAGG;MAaU,sBAAsB,CAAA;uGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,sJANvB,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAM1B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;AACR;AACF,iBAAA;;;ACfD;;;AAGG;MAWU,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAFf,iBAAiB,EAAE,sBAAsB,CADzC,EAAA,OAAA,EAAA,CAAA,iBAAiB,EAAE,sBAAsB,CAAA,EAAA,CAAA;AAGxC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAFf,iBAAiB,CAAA,EAAA,CAAA;;2FAEhB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;AACpD,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,sBAAsB;AACpD,iBAAA;;;ACbD;;;AAGG;;ACHH;;;AAGG;;ACHH;;AAEG;;;;"}