UNPKG

134 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngx-pipes.js","sources":["ng://ngx-pipes/src/pipes/array/diff.ts","ng://ngx-pipes/src/pipes/array/initial.ts","ng://ngx-pipes/src/pipes/array/flatten.ts","ng://ngx-pipes/src/pipes/array/intersection.ts","ng://ngx-pipes/src/pipes/helpers/helpers.ts","ng://ngx-pipes/src/pipes/array/reverse.ts","ng://ngx-pipes/src/pipes/array/tail.ts","ng://ngx-pipes/src/pipes/array/truthify.ts","ng://ngx-pipes/src/pipes/array/union.ts","ng://ngx-pipes/src/pipes/array/unique.ts","ng://ngx-pipes/src/pipes/array/without.ts","ng://ngx-pipes/src/pipes/array/pluck.ts","ng://ngx-pipes/src/pipes/array/shuffle.ts","ng://ngx-pipes/src/pipes/array/every.ts","ng://ngx-pipes/src/pipes/array/some.ts","ng://ngx-pipes/src/pipes/array/sample.ts","ng://ngx-pipes/src/pipes/array/group-by.ts","ng://ngx-pipes/src/pipes/array/filter-by.ts","ng://ngx-pipes/src/pipes/array/order-by.ts","ng://ngx-pipes/src/pipes/array/group-by-impure.ts","ng://ngx-pipes/src/pipes/array/filter-by-impure.ts","ng://ngx-pipes/src/pipes/array/order-by-impure.ts","ng://ngx-pipes/src/pipes/array/range.ts","ng://ngx-pipes/src/pipes/array/chunk.ts","ng://ngx-pipes/src/pipes/array/from-pairs.ts","ng://ngx-pipes/src/pipes/array/index.ts","ng://ngx-pipes/src/pipes/object/keys.ts","ng://ngx-pipes/src/pipes/object/values.ts","ng://ngx-pipes/src/pipes/object/pairs.ts","ng://ngx-pipes/src/pipes/object/pick.ts","ng://ngx-pipes/src/pipes/object/omit.ts","ng://ngx-pipes/src/pipes/object/invert.ts","ng://ngx-pipes/src/pipes/object/invert-by.ts","ng://ngx-pipes/src/pipes/object/diff-obj.ts","ng://ngx-pipes/src/pipes/object/index.ts","ng://ngx-pipes/src/pipes/string/a-or-an.ts","ng://ngx-pipes/src/pipes/string/ucwords.ts","ng://ngx-pipes/src/pipes/string/ltrim.ts","ng://ngx-pipes/src/pipes/string/repeat.ts","ng://ngx-pipes/src/pipes/string/rtrim.ts","ng://ngx-pipes/src/pipes/string/scan.ts","ng://ngx-pipes/src/pipes/string/shorten.ts","ng://ngx-pipes/src/pipes/string/strip-tags.ts","ng://ngx-pipes/src/pipes/string/trim.ts","ng://ngx-pipes/src/pipes/string/ucfirst.ts","ng://ngx-pipes/src/pipes/string/slugify.ts","ng://ngx-pipes/src/pipes/string/camelize.ts","ng://ngx-pipes/src/pipes/string/latinise.ts","ng://ngx-pipes/src/pipes/string/lines.ts","ng://ngx-pipes/src/pipes/string/underscore.ts","ng://ngx-pipes/src/pipes/string/match.ts","ng://ngx-pipes/src/pipes/string/test.ts","ng://ngx-pipes/src/pipes/string/lpad.ts","ng://ngx-pipes/src/pipes/string/rpad.ts","ng://ngx-pipes/src/pipes/string/pluralize.ts","ng://ngx-pipes/src/pipes/string/wrap.ts","ng://ngx-pipes/src/pipes/string/index.ts","ng://ngx-pipes/src/pipes/math/max.ts","ng://ngx-pipes/src/pipes/math/min.ts","ng://ngx-pipes/src/pipes/math/percentage.ts","ng://ngx-pipes/src/pipes/math/sum.ts","ng://ngx-pipes/src/pipes/math/floor.ts","ng://ngx-pipes/src/pipes/math/round.ts","ng://ngx-pipes/src/pipes/math/sqrt.ts","ng://ngx-pipes/src/pipes/math/pow.ts","ng://ngx-pipes/src/pipes/math/ceil.ts","ng://ngx-pipes/src/pipes/math/degrees.ts","ng://ngx-pipes/src/pipes/math/bytes.ts","ng://ngx-pipes/src/pipes/math/radians.ts","ng://ngx-pipes/src/pipes/math/index.ts","ng://ngx-pipes/src/pipes/boolean/is-defined.ts","ng://ngx-pipes/src/pipes/boolean/is-null.ts","ng://ngx-pipes/src/pipes/boolean/is-undefined.ts","ng://ngx-pipes/src/pipes/boolean/is-string.ts","ng://ngx-pipes/src/pipes/boolean/is-function.ts","ng://ngx-pipes/src/pipes/boolean/is-number.ts","ng://ngx-pipes/src/pipes/boolean/is-array.ts","ng://ngx-pipes/src/pipes/boolean/is-object.ts","ng://ngx-pipes/src/pipes/boolean/is-greater-equal-than.ts","ng://ngx-pipes/src/pipes/boolean/is-greater-than.ts","ng://ngx-pipes/src/pipes/boolean/is-less-equal-than.ts","ng://ngx-pipes/src/pipes/boolean/is-equal-to.ts","ng://ngx-pipes/src/pipes/boolean/is-not-equal-to.ts","ng://ngx-pipes/src/pipes/boolean/is-identical-to.ts","ng://ngx-pipes/src/pipes/boolean/is-not-identical-to.ts","ng://ngx-pipes/src/pipes/boolean/is-less-than.ts","ng://ngx-pipes/src/pipes/boolean/index.ts","ng://ngx-pipes/src/pipes/date/time-ago.ts","ng://ngx-pipes/src/pipes/date/index.ts","ng://ngx-pipes/src/pipes/index.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'diff' })\nexport class DiffPipe implements PipeTransform {\n transform(input: any[], ...args: any[]): any[];\n transform<T>(input: T, ...args: any[]): T;\n\n transform(input: any, ...args: any[]): any {\n if (!Array.isArray(input)) {\n return input;\n }\n\n // tslint:disable-next-line no-bitwise\n return args.reduce((d, c) => d.filter((e: any) => !~c.indexOf(e)), input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'initial' })\nexport class InitialPipe implements PipeTransform {\n transform(input: any[], num: number): any[];\n transform(input: any): any;\n\n transform(input: any, num: number = 0): any[] {\n return Array.isArray(input) ? input.slice(0, input.length - num) : input;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'flatten' })\nexport class FlattenPipe implements PipeTransform {\n transform(input: any[], shallow?: boolean): any[];\n transform<T>(input: T, shallow?: boolean): T;\n\n transform(input: any, shallow: boolean = false): any {\n if (!Array.isArray(input)) {\n return input;\n }\n\n return shallow ? [].concat.apply([], input) : this.flatten(input);\n }\n\n private flatten(array: any[]): any[] {\n return array.reduce((arr: any[], elm: any) => {\n if (Array.isArray(elm)) {\n return arr.concat(this.flatten(elm));\n }\n\n return arr.concat(elm);\n }, []);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'intersection' })\nexport class IntersectionPipe implements PipeTransform {\n transform(input: any[], ...args: any[]): any[];\n transform<T>(input: T, ...args: any[]): T;\n\n transform(input: any, ...args: any[]): any {\n if (!Array.isArray(input)) {\n return input;\n }\n\n // tslint:disable-next-line no-bitwise\n return args.reduce((n, c) => n.filter((e: any) => !!~c.indexOf(e)), input);\n }\n}\n","export function isUndefined(value: any) {\n return typeof value === 'undefined';\n}\n\nexport function isFunction(value: any) {\n return typeof value === 'function';\n}\n\nexport function isNumber(value: any) {\n return typeof value === 'number';\n}\n\nexport function isString(value: any) {\n return typeof value === 'string';\n}\n\nexport function isBoolean(value: any) {\n return typeof value === 'boolean';\n}\n\nexport function isObject(value: any) {\n return value !== null && typeof value === 'object';\n}\n\nexport function isNumberFinite(value: any) {\n return isNumber(value) && isFinite(value);\n}\n\nexport function isVowel(letter: string): boolean {\n const vowels = ['a', 'e', 'i', 'o', 'u'];\n\n return vowels.indexOf(letter) !== -1;\n}\n\nexport function ucFirst(text: string) {\n const [part, ...split] = text.split(/\\s/g);\n\n const ucd = part\n .toLowerCase()\n .split(/(?=['|-])/g)\n .map(\n (word: any) =>\n word.indexOf('-') + word.indexOf(\"'\") > -2\n ? word.slice(0, 2).toUpperCase() + word.slice(2)\n : word.slice(0, 1).toUpperCase() + word.slice(1)\n )\n .join('');\n\n return [ucd, ...split].join(' ');\n}\n\nexport function applyPrecision(num: number, precision: number) {\n if (precision <= 0) {\n return Math.round(num);\n }\n\n const tho = 10 ** precision;\n\n return Math.round(num * tho) / tho;\n}\n\nexport function extractDeepPropertyByMapKey(obj: any, map: string): any {\n const keys = map.split('.');\n const head = keys.shift();\n\n return keys.reduce((prop: any, key: string) => {\n return !isUndefined(prop) && !isUndefined(prop[key]) ? prop[key] : undefined;\n }, obj[head || '']);\n}\n\nexport function extractDeepPropertyByParentMapKey(obj: any, map: string): any {\n const keys = map.split('.');\n const tail = keys.pop();\n const props = extractDeepPropertyByMapKey(obj, keys.join('.'));\n\n return { props, tail };\n}\n\nexport function getKeysTwoObjects(obj: any, other: any): any {\n return [...Object.keys(obj), ...Object.keys(other)].filter((key, index, array) => array.indexOf(key) === index);\n}\n\nexport function isDeepEqual(obj: any, other: any): any {\n if (!isObject(obj) || !isObject(other)) {\n return obj === other;\n }\n\n return getKeysTwoObjects(obj, other).every(\n (key: any): boolean => {\n if (!isObject(obj[key]) && !isObject(other[key])) {\n return obj[key] === other[key];\n }\n if (!isObject(obj[key]) || !isObject(other[key])) {\n return false;\n }\n\n return isDeepEqual(obj[key], other[key]);\n }\n );\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'reverse' })\nexport class ReversePipe implements PipeTransform {\n transform(input: any): any {\n if (isString(input)) {\n return input\n .split('')\n .reverse()\n .join('');\n }\n\n return Array.isArray(input) ? input.slice().reverse() : input;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'tail' })\nexport class TailPipe implements PipeTransform {\n transform(input: any[], num?: number): any[];\n transform<T>(input: T, num?: number): T;\n\n transform(input: any, num: number = 0): any {\n return Array.isArray(input) ? input.slice(num) : input;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'truthify' })\nexport class TrurthifyPipe implements PipeTransform {\n transform(input: any[]): any[];\n transform<T>(input: T): T;\n\n transform(input: any): any {\n return Array.isArray(input) ? input.filter(e => !!e) : input;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'union' })\nexport class UnionPipe implements PipeTransform {\n transform(input: any[], args?: any[]): any[];\n transform<T>(input: T, args?: any[]): T;\n\n transform(input: any, args: any[] = []): any {\n if (!Array.isArray(input) || !Array.isArray(args)) {\n return input;\n }\n\n return args.reduce((newArr, currArr) => {\n return newArr.concat(\n currArr.reduce((noDupArr: any[], curr: any) => {\n // tslint:disable-next-line:no-bitwise\n return !~noDupArr.indexOf(curr) && !~newArr.indexOf(curr) ? noDupArr.concat([curr]) : noDupArr;\n }, [])\n );\n }, input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { extractDeepPropertyByMapKey, isObject, isUndefined } from '../helpers/helpers';\n\n@Pipe({ name: 'unique' })\nexport class UniquePipe implements PipeTransform {\n transform(input: any[], args?: string | undefined): any[];\n transform<T>(input: T, args?: string | undefined): T;\n\n transform(input: any, propertyName?: string | undefined): any {\n const uniques: boolean[] = [];\n\n return Array.isArray(input)\n ? isUndefined(propertyName)\n ? input.filter((e, i) => input.indexOf(e) === i)\n : input.filter((e, i) => {\n let value = extractDeepPropertyByMapKey(e, propertyName);\n value = isObject(value) ? JSON.stringify(value) : value;\n\n if (isUndefined(value) || uniques[value]) {\n return false;\n }\n\n uniques[value] = true;\n\n return true;\n })\n : input;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'without' })\nexport class WithoutPipe implements PipeTransform {\n transform(input: any[], args?: any[]): any[];\n transform(input: any, args?: any[]): any;\n\n transform(input: any, args: any[] = []): any[] {\n return Array.isArray(input)\n ? // tslint:disable-next-line:no-bitwise\n input.filter(e => !~args.indexOf(e))\n : input;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { extractDeepPropertyByMapKey, isObject } from '../helpers/helpers';\n\n@Pipe({ name: 'pluck', pure: false })\nexport class PluckPipe implements PipeTransform {\n transform(input: any[], map: string): any[];\n transform(input: any, map: string): any;\n transform<T>(input: T, map: string): T;\n\n transform(input: any, map: string): any {\n if (Array.isArray(input)) {\n return input.map(e => extractDeepPropertyByMapKey(e, map));\n }\n\n return isObject(input) ? extractDeepPropertyByMapKey(input, map) : input;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'shuffle' })\nexport class ShufflePipe implements PipeTransform {\n transform(input: any[]): any[];\n transform<T>(input: T): T;\n\n // Using a version of the Fisher-Yates shuffle algorithm\n // https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle\n transform(input: any): any {\n if (!Array.isArray(input)) {\n return input;\n }\n\n const shuffled = [...input];\n const n = input.length - 1;\n for (let i = 0; i < n; ++i) {\n const j = Math.floor(Math.random() * (n - i + 1)) + i;\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];\n }\n\n return shuffled;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'every' })\nexport class EveryPipe implements PipeTransform {\n transform(input: any, predicate: (value: any, index: number, array: any[]) => boolean): boolean | any[] {\n return Array.isArray(input) ? input.every(predicate) : false;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'some' })\nexport class SomePipe implements PipeTransform {\n transform(input: any[], predicate: (value: any, index: number, array: any[]) => boolean): boolean;\n transform<T>(input: T, predicate: (value: any, index: number, array: any[]) => boolean): T;\n\n transform(input: any, predicate: (value: any, index: number, array: any[]) => boolean): any {\n return Array.isArray(input) ? input.some(predicate) : input;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'sample' })\nexport class SamplePipe implements PipeTransform {\n transform(input: any[], len?: number): any[];\n transform<T>(input: T, len?: number): T;\n\n transform(input: any, len: number = 1): any {\n if (!Array.isArray(input)) {\n return input;\n }\n\n let sample: any[] = [];\n const tmp = [...input];\n const l = len < tmp.length ? len : tmp.length;\n for (let i = 0; i < l; ++i) {\n sample = sample.concat(tmp.splice(Math.floor(Math.random() * tmp.length), 1));\n }\n\n return sample;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { extractDeepPropertyByMapKey, isFunction } from '../helpers/helpers';\n\n@Pipe({ name: 'groupBy' })\nexport class GroupByPipe implements PipeTransform {\n transform(input: any, discriminator: any = [], delimiter: string = '|'): any {\n if (!Array.isArray(input)) {\n return input;\n }\n\n return this.groupBy(input, discriminator, delimiter);\n }\n\n private groupBy(list: any[], discriminator: any, delimiter: string) {\n return list.reduce((acc: any, payload: string) => {\n const key = this.extractKeyByDiscriminator(discriminator, payload, delimiter);\n\n acc[key] = Array.isArray(acc[key]) ? acc[key].concat([payload]) : [payload];\n\n return acc;\n }, {});\n }\n\n private extractKeyByDiscriminator(discriminator: any, payload: string, delimiter: string) {\n if (isFunction(discriminator)) {\n return (<Function>discriminator)(payload);\n }\n\n if (Array.isArray(discriminator)) {\n return discriminator.map(k => extractDeepPropertyByMapKey(payload, k)).join(delimiter);\n }\n\n return extractDeepPropertyByMapKey(payload, <string>discriminator);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {\n extractDeepPropertyByMapKey,\n extractDeepPropertyByParentMapKey,\n isBoolean,\n isNumberFinite,\n isString,\n isUndefined,\n} from '../helpers/helpers';\n\n// tslint:disable no-bitwise\n@Pipe({ name: 'filterBy' })\nexport class FilterByPipe implements PipeTransform {\n transform(input: any[], props: Array<string>, search?: any, strict?: boolean): any[];\n transform<T>(input: T, props: Array<string>, search?: any, strict?: boolean): T;\n transform(input: any, props: Array<string>, search: any = '', strict: boolean = false): any {\n if (\n !Array.isArray(input) ||\n (!Array.isArray(search) && !isString(search) && !isNumberFinite(search) && !isBoolean(search))\n ) {\n return input;\n }\n\n const terms = String(search)\n .toLowerCase()\n .split(',');\n\n return input.filter(obj => {\n return props.some(prop => {\n return terms.some(term => {\n const value = extractDeepPropertyByMapKey(obj, prop);\n /* tslint:disable */\n const { props, tail } = extractDeepPropertyByParentMapKey(obj, prop);\n\n if (isUndefined(value) && !isUndefined(props) && Array.isArray(props)) {\n return props.some(parent => {\n const str = String(parent[tail]).toLowerCase();\n\n return strict ? str === term : !!~str.indexOf(term);\n });\n }\n\n if (isUndefined(value)) {\n return false;\n }\n\n const strValue: string = String(value).toLowerCase();\n\n return strict ? term === strValue : !!~strValue.indexOf(term);\n });\n });\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { extractDeepPropertyByMapKey, isString, isUndefined } from '../helpers/helpers';\n\n@Pipe({ name: 'orderBy' })\nexport class OrderByPipe implements PipeTransform {\n transform(input: any[], config?: any): any[];\n transform<T>(input: T, config?: any): T;\n\n transform(input: any, config?: any): any {\n if (!Array.isArray(input)) {\n return input;\n }\n\n const out = [...input];\n\n // sort by multiple properties\n if (Array.isArray(config)) {\n return out.sort((a, b) => {\n const l = config.length;\n for (let i = 0; i < l; ++i) {\n const [prop, asc] = OrderByPipe.extractFromConfig(config[i]);\n const pos = OrderByPipe.orderCompare(prop, asc, a, b);\n if (pos !== 0) {\n return pos;\n }\n }\n\n return 0;\n });\n }\n\n // sort by a single property value\n if (isString(config)) {\n const [prop, asc, sign] = OrderByPipe.extractFromConfig(config);\n\n if (config.length === 1) {\n // tslint:disable-next-line:switch-default\n switch (sign) {\n case '+':\n return out.sort(OrderByPipe.simpleSort.bind(this));\n case '-':\n return out.sort(OrderByPipe.simpleSort.bind(this)).reverse();\n }\n }\n\n return out.sort(OrderByPipe.orderCompare.bind(this, prop, asc));\n }\n\n // default sort by value\n return out.sort(OrderByPipe.simpleSort.bind(this));\n }\n\n private static simpleSort(a: any, b: any) {\n return isString(a) && isString(b) ? a.toLowerCase().localeCompare(b.toLowerCase()) : a - b;\n }\n\n private static orderCompare(prop: string, asc: boolean, a: any, b: any) {\n const first = extractDeepPropertyByMapKey(a, prop);\n const second = extractDeepPropertyByMapKey(b, prop);\n\n if (first === second) {\n return 0;\n }\n\n if (isUndefined(first) || first === '') {\n return 1;\n }\n\n if (isUndefined(second) || second === '') {\n return -1;\n }\n\n if (isString(first) && isString(second)) {\n const pos = first.toLowerCase().localeCompare(second.toLowerCase());\n\n return asc ? pos : -pos;\n }\n\n return asc ? first - second : second - first;\n }\n\n private static extractFromConfig(config: any) {\n const sign = config.substr(0, 1);\n const prop = config.replace(/^[-+]/, '');\n const asc = sign !== '-';\n\n return [prop, asc, sign];\n }\n}\n","import { Pipe } from '@angular/core';\nimport { GroupByPipe } from './group-by';\n\n// tslint:disable use-pipe-transform-interface\n@Pipe({ name: 'groupByImpure', pure: false })\nexport class GroupByImpurePipe extends GroupByPipe {}\n","import { Pipe } from '@angular/core';\nimport { FilterByPipe } from './filter-by';\n\n// tslint:disable use-pipe-transform-interface\n@Pipe({ name: 'filterByImpure', pure: false })\nexport class FilterByImpurePipe extends FilterByPipe {}\n","import { Pipe } from '@angular/core';\nimport { OrderByPipe } from './order-by';\n\n// tslint:disable use-pipe-transform-interface\n@Pipe({ name: 'orderByImpure', pure: false })\nexport class OrderByImpurePipe extends OrderByPipe {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'range' })\nexport class RangePipe implements PipeTransform {\n transform(start: number = 1, count: number = 0, step: number = 1): any {\n return Array(count)\n .fill('')\n .map((v, i) => step * i + start);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'chunk' })\nexport class ChunkPipe implements PipeTransform {\n transform(input: any, size: number = 1): any {\n if (isString(input)) {\n return this.chunk(input\n .split(''), size);\n }\n\n return Array.isArray(input) ? this.chunk(input, size) : input;\n }\n\n private chunk(input: any[], size: number) {\n return Array(Math.ceil(input.length / size))\n .fill([])\n .map((_, index) => index * size)\n .map(begin => input.slice(begin, begin + size));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'fromPairs' })\nexport class FromPairsPipe implements PipeTransform {\n transform(input: any): any {\n if (!Array.isArray(input)) {\n return input;\n }\n\n return input.reduce((obj, arr) => {\n if (!Array.isArray(arr)) {\n return obj;\n }\n\n const [prop, val] = arr;\n\n obj[prop] = val;\n\n return obj;\n }, {});\n }\n}\n","import { DiffPipe } from './diff';\nimport { InitialPipe } from './initial';\nimport { FlattenPipe } from './flatten';\nimport { IntersectionPipe } from './intersection';\nimport { ReversePipe } from './reverse';\nimport { TailPipe } from './tail';\nimport { TrurthifyPipe } from './truthify';\nimport { UnionPipe } from './union';\nimport { UniquePipe } from './unique';\nimport { WithoutPipe } from './without';\nimport { PluckPipe } from './pluck';\nimport { ShufflePipe } from './shuffle';\nimport { EveryPipe } from './every';\nimport { SomePipe } from './some';\nimport { SamplePipe } from './sample';\nimport { GroupByPipe } from './group-by';\nimport { FilterByPipe } from './filter-by';\nimport { OrderByPipe } from './order-by';\nimport { NgModule } from '@angular/core';\nimport { GroupByImpurePipe } from './group-by-impure';\nimport { FilterByImpurePipe } from './filter-by-impure';\nimport { OrderByImpurePipe } from './order-by-impure';\nimport { RangePipe } from './range';\nimport { ChunkPipe } from './chunk';\nimport {FromPairsPipe} from './from-pairs';\n\nconst ARRAY_PIPES = [\n DiffPipe,\n FlattenPipe,\n InitialPipe,\n IntersectionPipe,\n ReversePipe,\n TailPipe,\n TrurthifyPipe,\n UnionPipe,\n UniquePipe,\n WithoutPipe,\n PluckPipe,\n ShufflePipe,\n EveryPipe,\n SomePipe,\n SamplePipe,\n GroupByPipe,\n GroupByImpurePipe,\n FilterByPipe,\n FilterByImpurePipe,\n OrderByPipe,\n OrderByImpurePipe,\n RangePipe,\n ChunkPipe,\n FromPairsPipe\n];\n\n@NgModule({\n declarations: ARRAY_PIPES,\n imports: [],\n exports: ARRAY_PIPES,\n})\nexport class NgArrayPipesModule {}\n\nexport { DiffPipe } from './diff';\nexport { InitialPipe } from './initial';\nexport { FlattenPipe } from './flatten';\nexport { IntersectionPipe } from './intersection';\nexport { ReversePipe } from './reverse';\nexport { TailPipe } from './tail';\nexport { TrurthifyPipe } from './truthify';\nexport { UnionPipe } from './union';\nexport { UniquePipe } from './unique';\nexport { WithoutPipe } from './without';\nexport { PluckPipe } from './pluck';\nexport { ShufflePipe } from './shuffle';\nexport { EveryPipe } from './every';\nexport { SomePipe } from './some';\nexport { SamplePipe } from './sample';\nexport { GroupByPipe } from './group-by';\nexport { FilterByPipe } from './filter-by';\nexport { OrderByPipe } from './order-by';\nexport { GroupByImpurePipe } from './group-by-impure';\nexport { FilterByImpurePipe } from './filter-by-impure';\nexport { OrderByImpurePipe } from './order-by-impure';\nexport { RangePipe } from './range';\nexport { ChunkPipe } from './chunk';\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isObject } from '../helpers/helpers';\n\n@Pipe({ name: 'keys' })\nexport class KeysPipe implements PipeTransform {\n transform(obj: any): any[] {\n if (Array.isArray(obj) || !isObject(obj)) {\n return obj;\n }\n\n return Object.keys(obj);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isObject } from '../helpers/helpers';\n\n@Pipe({ name: 'values' })\nexport class ValuesPipe implements PipeTransform {\n transform(obj: any): any[] {\n if (Array.isArray(obj) || !isObject(obj)) {\n return obj;\n }\n\n return Object.keys(obj).map(k => obj[k]);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isObject } from '../helpers/helpers';\n\n@Pipe({ name: 'pairs' })\nexport class PairsPipe implements PipeTransform {\n transform(obj: any): any[] {\n if (Array.isArray(obj) || !isObject(obj)) {\n return obj;\n }\n\n return Object.entries(obj);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isObject } from '../helpers/helpers';\n\n@Pipe({ name: 'pick' })\nexport class PickPipe implements PipeTransform {\n transform(obj: any, ...args: Array<string>): Object {\n if (Array.isArray(obj) || !isObject(obj)) {\n return obj;\n }\n\n return args.reduce((o, k) => {\n return Object.assign(o, { [k]: obj[k] });\n }, {});\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isObject } from '../helpers/helpers';\n\n@Pipe({ name: 'omit' })\nexport class OmitPipe implements PipeTransform {\n transform(obj: any, ...args: Array<string>): Object {\n if (Array.isArray(obj) || !isObject(obj)) {\n return obj;\n }\n\n return (\n Object.keys(obj)\n // tslint:disable-next-line:no-bitwise\n .filter(k => !~args.indexOf(k))\n .reduce((o, k) => {\n return Object.assign(o, { [k]: obj[k] });\n }, {})\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isObject } from '../helpers/helpers';\n\n@Pipe({ name: 'invert' })\nexport class InvertPipe implements PipeTransform {\n transform(obj: any): Object {\n if (Array.isArray(obj) || !isObject(obj)) {\n return obj;\n }\n\n return Object.keys(obj).reduce((o, k) => {\n return Object.assign(o, { [obj[k]]: k });\n }, {});\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isObject } from '../helpers/helpers';\n\n@Pipe({ name: 'invertBy' })\nexport class InvertByPipe implements PipeTransform {\n transform(obj: any, cb?: Function): Object {\n if (Array.isArray(obj) || !isObject(obj)) {\n return obj;\n }\n\n return Object.keys(obj).reduce((o: any, k: string) => {\n const key = cb ? cb(obj[k]) : obj[k];\n\n return Array.isArray(o[key]) ? (o[key].push(k), o) : Object.assign(o, { [key]: [k] });\n }, {});\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getKeysTwoObjects, isDeepEqual, isObject } from '../helpers/helpers';\n\n@Pipe({ name: 'diffObj' })\nexport class DiffObjPipe implements PipeTransform {\n transform(obj: any, original: any = {}): any {\n if (Array.isArray(obj) || Array.isArray(original) || !isObject(obj) || !isObject(original)) {\n return {};\n }\n\n return getKeysTwoObjects(obj, original).reduce((diff: any, key: any) => {\n if (!isDeepEqual(original[key], obj[key])) {\n diff[key] = obj[key];\n }\n\n return diff;\n }, {});\n }\n}\n","import { KeysPipe } from './keys';\nimport { ValuesPipe } from './values';\nimport { PairsPipe } from './pairs';\nimport { PickPipe } from './pick';\nimport { OmitPipe } from './omit';\nimport { InvertPipe } from './invert';\nimport { InvertByPipe } from './invert-by';\nimport { DiffObjPipe } from './diff-obj';\nimport { NgModule } from '@angular/core';\n\nconst OBJECT_PIPES = [KeysPipe, ValuesPipe, PairsPipe, PickPipe, InvertPipe, InvertByPipe, OmitPipe, DiffObjPipe];\n\n@NgModule({\n declarations: OBJECT_PIPES,\n imports: [],\n exports: OBJECT_PIPES,\n})\nexport class NgObjectPipesModule {}\n\nexport { KeysPipe } from './keys';\nexport { ValuesPipe } from './values';\nexport { PairsPipe } from './pairs';\nexport { PickPipe } from './pick';\nexport { OmitPipe } from './omit';\nexport { InvertPipe } from './invert';\nexport { InvertByPipe } from './invert-by';\nexport { DiffObjPipe } from './diff-obj';\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isVowel } from '../helpers/helpers';\n\n@Pipe({\n name: 'aOrAn',\n})\n/**\n * Takes a string and returns the string prepended by 'a' or 'an'.\n * Uses both naive and holdout-list approaches.\n * @constructor\n * @param {string} stringEntity - Entity to prepend 'a' or 'an' to.\n */\nexport class AorAnPipe implements PipeTransform {\n private irregularMap: any = {\n herb: 'an',\n honor: 'an',\n honorable: 'an',\n hour: 'an',\n mba: 'an',\n msc: 'an',\n 'm.sc.': 'an',\n unicorn: 'a',\n };\n transform(stringEntity: string): string {\n if (!stringEntity || stringEntity === '') {\n return '';\n } else {\n const firstWord = stringEntity.trim().split(' ')[0];\n if (this.irregularMap[firstWord.toLocaleLowerCase()]) {\n return `${this.irregularMap[firstWord.toLocaleLowerCase()]} ${stringEntity}`;\n } else {\n return isVowel(stringEntity[0]) ? `an ${stringEntity}` : `a ${stringEntity}`;\n }\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString, ucFirst } from '../helpers/helpers';\n\n@Pipe({ name: 'ucwords' })\nexport class UcWordsPipe implements PipeTransform {\n transform(input: string): string;\n transform(input: any): any;\n\n transform(text: any): string {\n if (isString(text)) {\n return text\n .split(' ')\n .map((sub: any) => ucFirst(sub))\n .join(' ');\n }\n\n return text;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'ltrim' })\nexport class LeftTrimPipe implements PipeTransform {\n transform(text: string, chars: string = '\\\\s'): string {\n return isString(text) ? text.replace(new RegExp(`^[${chars}]+`), '') : text;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'repeat' })\nexport class RepeatPipe implements PipeTransform {\n transform(str: string, n: number = 1, separator: string = ''): string {\n if (n <= 0) {\n throw new RangeError();\n }\n\n return n === 1 ? str : this.repeat(str, n - 1, separator);\n }\n\n private repeat(str: string, n: number, separator: string): string {\n return isString(str) ? (n === 0 ? str : str + separator + this.repeat(str, n - 1, separator)) : str;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'rtrim' })\nexport class RightTrimPipe implements PipeTransform {\n transform(text: string, chars: string = '\\\\s'): string {\n return isString(text) ? text.replace(new RegExp(`[${chars}]+$`), '') : text;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString, isUndefined } from '../helpers/helpers';\n\n@Pipe({ name: 'scan' })\nexport class ScanPipe implements PipeTransform {\n transform(text: string, args: string[] = []): string {\n return isString(text)\n ? text.replace(/\\{(\\d+)}/g, (match, index) => (!isUndefined(args[index]) ? args[index] : match))\n : text;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'shorten' })\nexport class ShortenPipe implements PipeTransform {\n transform(input: string, length?: number, suffix?: string, wordBreak?: boolean): string;\n transform(input: any, length?: number, suffix?: string, wordBreak?: boolean): any;\n\n transform(text: any, length: number = 0, suffix: string = '', wordBreak: boolean = true): string {\n if (!isString(text)) {\n return text;\n }\n\n if (text.length > length) {\n if (wordBreak) {\n return text.slice(0, length) + suffix;\n }\n\n // tslint:disable-next-line:no-bitwise\n if (!!~text.indexOf(' ', length)) {\n return text.slice(0, text.indexOf(' ', length)) + suffix;\n }\n }\n\n return text;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'stripTags' })\nexport class StripTagsPipe implements PipeTransform {\n transform(text: string, ...allowedTags: any[]): string {\n return allowedTags.length > 0\n ? text.replace(new RegExp(`<(?!\\/?(${allowedTags.join('|')})\\s*\\/?)[^>]+>`, 'g'), '')\n : text.replace(/<(?:.|\\s)*?>/g, '');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'trim' })\nexport class TrimPipe implements PipeTransform {\n transform(text: string, chars: string = '\\\\s'): string {\n return isString(text) ? text.replace(new RegExp(`^[${chars}]+|[${chars}]+$`, 'g'), '') : text;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString, ucFirst } from '../helpers/helpers';\n\n@Pipe({ name: 'ucfirst' })\nexport class UcFirstPipe implements PipeTransform {\n transform(input: string): string;\n transform(input: any): any;\n\n transform(text: any): string {\n return isString(text) ? ucFirst(text) : text;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'slugify' })\nexport class SlugifyPipe implements PipeTransform {\n transform(str: string): string {\n return isString(str)\n ? str\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\-]+/g, ' ')\n .replace(/\\s+/g, '-')\n : str;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'camelize' })\nexport class CamelizePipe implements PipeTransform {\n transform(input: string, chars?: string): string;\n transform(input: any, chars?: string): any;\n\n transform(text: any, chars: string = '\\\\s'): string {\n if (!isString(text)) {\n return text;\n }\n\n return text\n .toLowerCase()\n .split(/[-_\\s]/g)\n .filter((v: string) => !!v)\n .map((word: string, key: any) => {\n return !key ? word : word.slice(0, 1).toUpperCase() + word.slice(1);\n })\n .join('');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'latinise' })\nexport class LatinisePipe implements PipeTransform {\n // Source: http://semplicewebsites.com/removing-accents-javascript\n // tslint:disable-next-line whitespace max-line-length object-literal-key-quotes\n private latinMap: any = {\n Á: 'A',\n Ă: 'A',\n Ắ: 'A',\n Ặ: 'A',\n Ằ: 'A',\n Ẳ: 'A',\n Ẵ: 'A',\n Ǎ: 'A',\n Â: 'A',\n Ấ: 'A',\n Ậ: 'A',\n Ầ: 'A',\n Ẩ: 'A',\n Ẫ: 'A',\n Ä: 'A',\n Ǟ: 'A',\n Ȧ: 'A',\n Ǡ: 'A',\n Ạ: 'A',\n Ȁ: 'A',\n À: 'A',\n Ả: 'A',\n Ȃ: 'A',\n Ā: 'A',\n Ą: 'A',\n Å: 'A',\n Ǻ: 'A',\n Ḁ: 'A',\n Ⱥ: 'A',\n Ã: 'A',\n Ꜳ: 'AA',\n Æ: 'AE',\n Ǽ: 'AE',\n Ǣ: 'AE',\n Ꜵ: 'AO',\n Ꜷ: 'AU',\n Ꜹ: 'AV',\n Ꜻ: 'AV',\n Ꜽ: 'AY',\n Ḃ: 'B',\n Ḅ: 'B',\n Ɓ: 'B',\n Ḇ: 'B',\n Ƀ: 'B',\n Ƃ: 'B',\n Ć: 'C',\n Č: 'C',\n Ç: 'C',\n Ḉ: 'C',\n Ĉ: 'C',\n Ċ: 'C',\n Ƈ: 'C',\n Ȼ: 'C',\n Ď: 'D',\n Ḑ: 'D',\n Ḓ: 'D',\n Ḋ: 'D',\n Ḍ: 'D',\n Ɗ: 'D',\n Ḏ: 'D',\n Dz: 'D',\n Dž: 'D',\n Đ: 'D',\n Ƌ: 'D',\n DZ: 'DZ',\n DŽ: 'DZ',\n É: 'E',\n Ĕ: 'E',\n Ě: 'E',\n Ȩ: 'E',\n Ḝ: 'E',\n Ê: 'E',\n Ế: 'E',\n Ệ: 'E',\n Ề: 'E',\n Ể: 'E',\n Ễ: 'E',\n Ḙ: 'E',\n Ë: 'E',\n Ė: 'E',\n Ẹ: 'E',\n Ȅ: 'E',\n È: 'E',\n Ẻ: 'E',\n Ȇ: 'E',\n Ē: 'E',\n Ḗ: 'E',\n Ḕ: 'E',\n Ę: 'E',\n Ɇ: 'E',\n Ẽ: 'E',\n Ḛ: 'E',\n Ꝫ: 'ET',\n Ḟ: 'F',\n Ƒ: 'F',\n Ǵ: 'G',\n Ğ: 'G',\n Ǧ: 'G',\n Ģ: 'G',\n Ĝ: 'G',\n Ġ: 'G',\n Ɠ: 'G',\n Ḡ: 'G',\n Ǥ: 'G',\n Ḫ: 'H',\n Ȟ: 'H',\n Ḩ: 'H',\n Ĥ: 'H',\n Ⱨ: 'H',\n Ḧ: 'H',\n Ḣ: 'H',\n Ḥ: 'H',\n Ħ: 'H',\n Í: 'I',\n Ĭ: 'I',\n Ǐ: 'I',\n Î: 'I',\n Ï: 'I',\n Ḯ: 'I',\n İ: 'I',\n Ị: 'I',\n Ȉ: 'I',\n Ì: 'I',\n Ỉ: 'I',\n Ȋ: 'I',\n Ī: 'I',\n Į: 'I',\n Ɨ: 'I',\n Ĩ: 'I',\n Ḭ: 'I',\n Ꝺ: 'D',\n Ꝼ: 'F',\n Ᵹ: 'G',\n Ꞃ: 'R',\n Ꞅ: 'S',\n Ꞇ: 'T',\n Ꝭ: 'IS',\n Ĵ: 'J',\n Ɉ: 'J',\n Ḱ: 'K',\n Ǩ: 'K',\n Ķ: 'K',\n Ⱪ: 'K',\n Ꝃ: 'K',\n Ḳ: 'K',\n Ƙ: 'K',\n Ḵ: 'K',\n Ꝁ: 'K',\n Ꝅ: 'K',\n Ĺ: 'L',\n Ƚ: 'L',\n Ľ: 'L',\n Ļ: 'L',\n Ḽ: 'L',\n Ḷ: 'L',\n Ḹ: 'L',\n Ⱡ: 'L',\n Ꝉ: 'L',\n Ḻ: 'L',\n Ŀ: 'L',\n Ɫ: 'L',\n Lj: 'L',\n Ł: 'L',\n LJ: 'LJ',\n Ḿ: 'M',\n Ṁ: 'M',\n Ṃ: 'M',\n Ɱ: 'M',\n Ń: 'N',\n Ň: 'N',\n Ņ: 'N',\n Ṋ: 'N',\n Ṅ: 'N',\n Ṇ: 'N',\n Ǹ: 'N',\n Ɲ: 'N',\n Ṉ: 'N',\n Ƞ: 'N',\n Nj: 'N',\n Ñ: 'N',\n NJ: 'NJ',\n Ó: 'O',\n Ŏ: 'O',\n Ǒ: 'O',\n Ô: 'O',\n Ố: 'O',\n Ộ: 'O',\n Ồ: 'O',\n Ổ: 'O',\n Ỗ: 'O',\n Ö: 'O',\n Ȫ: 'O',\n Ȯ: 'O',\n Ȱ: 'O',\n Ọ: 'O',\n Ő: 'O',\n Ȍ: 'O',\n Ò: 'O',\n Ỏ: 'O',\n Ơ: 'O',\n Ớ: 'O',\n Ợ: 'O',\n Ờ: 'O',\n Ở: 'O',\n Ỡ: 'O',\n Ȏ: 'O',\n Ꝋ: 'O',\n Ꝍ: 'O',\n Ō: 'O',\n Ṓ: 'O',\n Ṑ: 'O',\n Ɵ: 'O',\n Ǫ: 'O',\n Ǭ: 'O',\n Ø: 'O',\n Ǿ: 'O',\n Õ: 'O',\n Ṍ: 'O',\n Ṏ: 'O',\n Ȭ: 'O',\n Ƣ: 'OI',\n Ꝏ: 'OO',\n Ɛ: 'E',\n Ɔ: 'O',\n Ȣ: 'OU',\n Ṕ: 'P',\n Ṗ: 'P',\n Ꝓ: 'P',\n Ƥ: 'P',\n Ꝕ: 'P',\n Ᵽ: 'P',\n Ꝑ: 'P',\n Ꝙ: 'Q',\n Ꝗ: 'Q',\n Ŕ: 'R',\n Ř: 'R',\n Ŗ: 'R',\n Ṙ: 'R',\n Ṛ: 'R',\n Ṝ: 'R',\n Ȑ: 'R',\n Ȓ: 'R',\n Ṟ: 'R',\n Ɍ: 'R',\n Ɽ: 'R',\n Ꜿ: 'C',\n Ǝ: 'E',\n Ś: 'S',\n Ṥ: 'S',\n Š: 'S',\n Ṧ: 'S',\n Ş: 'S',\n Ŝ: 'S',\n Ș: 'S',\n Ṡ: 'S',\n Ṣ: 'S',\n Ṩ: 'S',\n ẞ: 'SS',\n Ť: 'T',\n Ţ: 'T',\n Ṱ: 'T',\n Ț: 'T',\n Ⱦ: 'T',\n Ṫ: 'T',\n Ṭ: 'T',\n Ƭ: 'T',\n Ṯ: 'T',\n Ʈ: 'T',\n Ŧ: 'T',\n Ɐ: 'A',\n Ꞁ: 'L',\n Ɯ: 'M',\n Ʌ: 'V',\n Ꜩ: 'TZ',\n Ú: 'U',\n Ŭ: 'U',\n Ǔ: 'U',\n Û: 'U',\n Ṷ: 'U',\n Ü: 'U',\n Ǘ: 'U',\n Ǚ: 'U',\n Ǜ: 'U',\n Ǖ: 'U',\n Ṳ: 'U',\n Ụ: 'U',\n Ű: 'U',\n Ȕ: 'U',\n Ù: 'U',\n Ủ: 'U',\n Ư: 'U',\n Ứ: 'U',\n Ự: 'U',\n Ừ: 'U',\n Ử: 'U',\n Ữ: 'U',\n Ȗ: 'U',\n Ū: 'U',\n Ṻ: 'U',\n Ų: 'U',\n Ů: 'U',\n Ũ: 'U',\n Ṹ: 'U',\n Ṵ: 'U',\n Ꝟ: 'V',\n Ṿ: 'V',\n Ʋ: 'V',\n Ṽ: 'V',\n Ꝡ: 'VY',\n Ẃ: 'W',\n Ŵ: 'W',\n Ẅ: 'W',\n Ẇ: 'W',\n Ẉ: 'W',\n Ẁ: 'W',\n Ⱳ: 'W',\n Ẍ: 'X',\n Ẋ: 'X',\n Ý: 'Y',\n Ŷ: 'Y',\n Ÿ: 'Y',\n Ẏ: 'Y',\n Ỵ: 'Y',\n Ỳ: 'Y',\n Ƴ: 'Y',\n Ỷ: 'Y',\n Ỿ: 'Y',\n Ȳ: 'Y',\n Ɏ: 'Y',\n Ỹ: 'Y',\n Ź: 'Z',\n Ž: 'Z',\n Ẑ: 'Z',\n Ⱬ: 'Z',\n Ż: 'Z',\n Ẓ: 'Z',\n Ȥ: 'Z',\n Ẕ: 'Z',\n Ƶ: 'Z',\n IJ: 'IJ',\n Œ: 'OE',\n ᴀ: 'A',\n ᴁ: 'AE',\n ʙ: 'B',\n ᴃ: 'B',\n ᴄ: 'C',\n ᴅ: 'D',\n ᴇ: 'E',\n ꜰ: 'F',\n ɢ: 'G',\n ʛ: 'G',\n ʜ: 'H',\n ɪ: 'I',\n ʁ: 'R',\n ᴊ: 'J',\n ᴋ: 'K',\n ʟ: 'L',\n ᴌ: 'L',\n ᴍ: 'M',\n ɴ: 'N',\n ᴏ: 'O',\n ɶ: 'OE',\n ᴐ: 'O',\n ᴕ: 'OU',\n ᴘ: 'P',\n ʀ: 'R',\n ᴎ: 'N',\n ᴙ: 'R',\n ꜱ: 'S',\n ᴛ: 'T',\n ⱻ: 'E',\n ᴚ: 'R',\n ᴜ: 'U',\n ᴠ: 'V',\n ᴡ: 'W',\n ʏ: 'Y',\n ᴢ: 'Z',\n á: 'a',\n ă: 'a',\n ắ: 'a',\n ặ: 'a',\n ằ: 'a',\n ẳ: 'a',\n ẵ: 'a',\n ǎ: 'a',\n â: 'a',\n ấ: 'a',\n ậ: 'a',\n ầ: 'a',\n ẩ: 'a',\n ẫ: 'a',\n ä: 'a',\n ǟ: 'a',\n ȧ: 'a',\n ǡ: 'a',\n ạ: 'a',\n ȁ: 'a',\n à: 'a',\n ả: 'a',\n ȃ: 'a',\n ā: 'a',\n ą: 'a',\n ᶏ: 'a',\n ẚ: 'a',\n å: 'a',\n ǻ: 'a',\n ḁ: 'a',\n ⱥ: 'a',\n ã: 'a',\n ꜳ: 'aa',\n æ: 'ae',\n ǽ: 'ae',\n ǣ: 'ae',\n ꜵ: 'ao',\n ꜷ: 'au',\n ꜹ: 'av',\n ꜻ: 'av',\n ꜽ: 'ay',\n ḃ: 'b',\n ḅ: 'b',\n ɓ: 'b',\n ḇ: 'b',\n ᵬ: 'b',\n ᶀ: 'b',\n ƀ: 'b',\n ƃ: 'b',\n ɵ: 'o',\n ć: 'c',\n č: 'c',\n ç: 'c',\n ḉ: 'c',\n ĉ: 'c',\n ɕ: 'c',\n ċ: 'c',\n ƈ: 'c',\n ȼ: 'c',\n ď: 'd',\n ḑ: 'd',\n ḓ: 'd',\n ȡ: 'd',\n ḋ: 'd',\n ḍ: 'd',\n ɗ: 'd',\n ᶑ: 'd',\n ḏ: 'd',\n ᵭ: 'd',\n ᶁ: 'd',\n đ: 'd',\n ɖ: 'd',\n ƌ: 'd',\n ı: 'i',\n ȷ: 'j',\n ɟ: 'j',\n ʄ: 'j',\n dz: 'dz',\n dž: 'dz',\n é: 'e',\n ĕ: 'e',\n ě: 'e',\n ȩ: 'e',\n ḝ: 'e',\n ê: 'e',\n ế: 'e',\n ệ: 'e',\n ề: 'e',\n ể: 'e',\n ễ: 'e',\n ḙ: 'e',\n ë: 'e',\n ė: 'e',\n ẹ: 'e',\n ȅ: 'e',\n è: 'e',\n ẻ: 'e',\n ȇ: 'e',\n ē: 'e',\n ḗ: 'e',\n ḕ: 'e',\n ⱸ: 'e',\n ę: 'e',\n ᶒ: 'e',\n ɇ: 'e',\n ẽ: 'e',\n ḛ: 'e',\n ꝫ: 'et',\n ḟ: 'f',\n ƒ: 'f',\n ᵮ: 'f',\n ᶂ: 'f',\n ǵ: 'g',\n ğ: 'g',\n ǧ: 'g',\n ģ: 'g',\n ĝ: 'g',\n ġ: 'g',\n ɠ: 'g',\n ḡ: 'g',\n ᶃ: 'g',\n ǥ: 'g',\n ḫ: 'h',\n ȟ: 'h',\n ḩ: 'h',\n ĥ: 'h',\n ⱨ: 'h',\n ḧ: 'h',\n ḣ: 'h',\n ḥ: 'h',\n ɦ: 'h',\n ẖ: 'h',\n ħ: 'h',\n ƕ: 'hv',\n í: 'i',\n ĭ: 'i',\n ǐ: 'i',\n î: 'i',\n ï: 'i',\n ḯ: 'i',\n ị: 'i',\n ȉ: 'i',\n ì: 'i',\n ỉ: 'i',\n ȋ: 'i',\n ī: 'i',\n į: 'i',\n ᶖ: 'i',\n ɨ: 'i',\n ĩ: 'i',\n ḭ: 'i',\n ꝺ: 'd',\n ꝼ: 'f',\n ᵹ: 'g',\n ꞃ: 'r',\n ꞅ: 's',\n ꞇ: 't',\n ꝭ: 'is',\n ǰ: 'j',\n ĵ: 'j',\n ʝ: 'j',\n ɉ: 'j',\n ḱ: 'k',\n ǩ: 'k',\n ķ: 'k',\n ⱪ: 'k',\n ꝃ: 'k',\n ḳ: 'k',\n ƙ: 'k',\n ḵ: 'k',\n ᶄ: 'k',\n ꝁ: 'k',\n ꝅ: 'k',\n ĺ: 'l',\n ƚ: 'l',\n ɬ: 'l',\n ľ: 'l',\n ļ: 'l',\n ḽ: 'l',\n ȴ: 'l',\n ḷ: 'l',\n ḹ: 'l',\n ⱡ: 'l',\n ꝉ: 'l',\n ḻ: 'l',\n ŀ: 'l',\n ɫ: 'l',\n ᶅ: 'l',\n ɭ: 'l',\n ł: 'l',\n lj: 'lj',\n ſ: 's',\n ẜ: 's',\n ẛ: 's',\n ẝ: 's',\n ḿ: 'm',\n ṁ: 'm',\n ṃ: 'm',\n ɱ: 'm',\n ᵯ: 'm',\n ᶆ: 'm',\n ń: 'n',\n ň: 'n',\n ņ: 'n',\n ṋ: 'n',\n ȵ: 'n',\n ṅ: 'n',\n ṇ: 'n',\n ǹ: 'n',\n ɲ: 'n',\n ṉ: 'n',\n ƞ: 'n',\n ᵰ: 'n',\n ᶇ: 'n',\n ɳ: 'n',\n ñ: 'n',\n nj: 'nj',\n ó: 'o',\n ŏ: 'o',\n ǒ: 'o',\n ô: 'o',\n ố: 'o',\n ộ: 'o',\n ồ: 'o',\n ổ: 'o',\n ỗ: 'o',\n ö: 'o',\n ȫ: 'o',\n ȯ: 'o',\n ȱ: 'o',\n ọ: 'o',\n ő: 'o',\n ȍ: 'o',\n ò: 'o',\n ỏ: 'o',\n ơ: 'o',\n ớ: 'o',\n ợ: 'o',\n ờ: 'o',\n ở: 'o',\n ỡ: 'o',\n ȏ: 'o',\n ꝋ: 'o',\n ꝍ: 'o',\n ⱺ: 'o',\n ō: 'o',\n ṓ: 'o',\n ṑ: 'o',\n ǫ: 'o',\n ǭ: 'o',\n ø: 'o',\n ǿ: 'o',\n õ: 'o',\n ṍ: 'o',\n ṏ: 'o',\n ȭ: 'o',\n ƣ: 'oi',\n ꝏ: 'oo',\n ɛ: 'e',\n ᶓ: 'e',\n ɔ: 'o',\n ᶗ: 'o',\n ȣ: 'ou',\n ṕ: 'p',\n ṗ: 'p',\n ꝓ: 'p',\n ƥ: 'p',\n ᵱ: 'p',\n ᶈ: 'p',\n ꝕ: 'p',\n ᵽ: 'p',\n ꝑ: 'p',\n ꝙ: 'q',\n ʠ: 'q',\n ɋ: 'q',\n ꝗ: 'q',\n ŕ: 'r',\n ř: 'r',\n ŗ: 'r',\n ṙ: 'r',\n ṛ: 'r',\n ṝ: 'r',\n ȑ: 'r',\n ɾ: 'r',\n ᵳ: 'r',\n ȓ: 'r',\n ṟ: 'r',\n ɼ: 'r',\n ᵲ: 'r',\n ᶉ: 'r',\n ɍ: 'r',\n ɽ: 'r',\n ↄ: 'c',\n ꜿ: 'c',\n ɘ: 'e',\n ɿ: 'r',\n ś: 's',\n ṥ: 's',\n š: 's',\n ṧ: 's',\n ş: 's',\n ŝ: 's',\n ș: 's',\n ṡ: 's',\n ṣ: 's',\n ṩ: 's',\n ʂ: 's',\n ᵴ: 's',\n ᶊ: 's',\n ȿ: 's',\n ɡ: 'g',\n ß: 'ss',\n ᴑ: 'o',\n ᴓ: 'o',\n ᴝ: 'u',\n ť: 't',\n ţ: 't',\n ṱ: 't',\n ț: 't',\n ȶ: 't',\n ẗ: 't',\n ⱦ: 't',\n ṫ: 't',\n ṭ: 't',\n ƭ: 't',\n ṯ: 't',\n ᵵ: 't',\n ƫ: 't',\n ʈ: 't',\n ŧ: 't',\n ᵺ: 'th',\n ɐ: 'a',\n ᴂ: 'ae',\n ǝ: 'e',\n ᵷ: 'g',\n ɥ: 'h',\n ʮ: 'h',\n ʯ: 'h',\n ᴉ: 'i',\n ʞ: 'k',\n ꞁ: 'l',\n ɯ: 'm',\n ɰ: 'm',\n ᴔ: 'oe',\n ɹ: 'r',\n ɻ: 'r',\n ɺ: 'r',\n ⱹ: 'r',\n ʇ: 't',\n ʌ: 'v',\n ʍ: 'w',\n ʎ: 'y',\n ꜩ: 'tz',\n ú: 'u',\n ŭ: 'u',\n ǔ: 'u',\n û: 'u',\n ṷ: 'u',\n ü: 'u',\n ǘ: 'u',\n ǚ: 'u',\n ǜ: 'u',\n ǖ: 'u',\n ṳ: 'u',\n ụ: 'u',\n ű: 'u',\n ȕ: 'u',\n ù: 'u',\n ủ: 'u',\n ư: 'u',\n ứ: 'u',\n ự: 'u',\n ừ: 'u',\n ử: 'u',\n ữ: 'u',\n ȗ: 'u',\n ū: 'u',\n ṻ: 'u',\n ų: 'u',\n ᶙ: 'u',\n ů: 'u',\n ũ: 'u',\n ṹ: 'u',\n ṵ: 'u',\n ᵫ: 'ue',\n ꝸ: 'um',\n ⱴ: 'v',\n ꝟ: 'v',\n ṿ: 'v',\n ʋ: 'v',\n ᶌ: 'v',\n ⱱ: 'v',\n ṽ: 'v',\n ꝡ: 'vy',\n ẃ: 'w',\n ŵ: 'w',\n ẅ: 'w',\n ẇ: 'w',\n ẉ: 'w',\n ẁ: 'w',\n ⱳ: 'w',\n ẘ: 'w',\n ẍ: 'x',\n ẋ: 'x',\n ᶍ: 'x',\n ý: 'y',\n ŷ: 'y',\n ÿ: 'y',\n ẏ: 'y',\n ỵ: 'y',\n ỳ: 'y',\n ƴ: 'y',\n ỷ: 'y',\n ỿ: 'y',\n ȳ: 'y',\n ẙ: 'y',\n ɏ: 'y',\n ỹ: 'y',\n ź: 'z',\n ž: 'z',\n ẑ: 'z',\n ʑ: 'z',\n ⱬ: 'z',\n ż: 'z',\n ẓ: 'z',\n ȥ: 'z',\n ẕ: 'z',\n ᵶ: 'z',\n ᶎ: 'z',\n ʐ: 'z',\n ƶ: 'z',\n ɀ: 'z',\n ff: 'ff',\n ffi: 'ffi',\n ffl: 'ffl',\n fi: 'fi',\n fl: 'fl',\n ij: 'ij',\n œ: 'oe',\n st: 'st',\n ₐ: 'a',\n ₑ: 'e',\n ᵢ: 'i',\n ⱼ: 'j',\n ₒ: 'o',\n ᵣ: 'r',\n ᵤ: 'u',\n ᵥ: 'v',\n ₓ: 'x',\n };\n\n transform(input: string, chars?: string): string;\n transform(input: any, chars?: string): any;\n\n transform(text: any, chars: string = '\\\\s'): string {\n return isString(text)\n ? text.replace(/[^A-Za-z0-9]/g, (key: string) => {\n return this.latinMap[key] || key;\n })\n : text;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'lines' })\nexport class LinesPipe implements PipeTransform {\n transform(text: any, chars: string = '\\\\s'): Array<string> | any {\n return isString(text) ? text.replace(/\\r\\n/g, '\\n').split('\\n') : text;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'underscore' })\nexport class UnderscorePipe implements PipeTransform {\n transform(input: string, chars?: string): string;\n transform(input: any, chars?: string): any;\n\n transform(text: any, chars: string = '\\\\s'): string {\n return isString(text)\n ? text\n .trim()\n .replace(/\\s+/g, '')\n .replace(/[A-Z]/g, (c: string, k: any) => {\n return k ? `_${c.toLowerCase()}` : c.toLowerCase();\n })\n : text;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'match' })\nexport class MatchPipe implements PipeTransform {\n transform(text: string, pattern: string, flags?: string): RegExpMatchArray | null;\n transform<T>(text: T, pattern: string, flags?: string): T;\n\n transform(text: any, pattern: string, flags?: string): any {\n if (!isString(text)) {\n return text;\n }\n\n return text.match(new RegExp(pattern, flags));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'test' })\nexport class TestPipe implements PipeTransform {\n transform(text: string, pattern: string, flags?: string): boolean;\n transform<T>(text: T, pattern: string, flags?: string): T;\n\n transform(text: any, pattern: string, flags?: string): any {\n if (!isString(text)) {\n return text;\n }\n\n return new RegExp(pattern, flags).test(text);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'lpad' })\nexport class LeftPadPipe implements PipeTransform {\n transform(str: string, length: number, padCharacter: string = ' '): string {\n if (!isString(str) || str.length >= length) {\n return str;\n }\n while (str.length < length) {\n str = padCharacter + str;\n }\n\n return str;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'rpad' })\nexport class RightPadPipe implements PipeTransform {\n transform(str: string, length: number = 1, padCharacter: string = ' '): string {\n if (!isString(str) || str.length >= length) {\n return str;\n }\n while (str.length < length) {\n str = str + padCharacter;\n }\n\n return str;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isVowel } from '../helpers/helpers';\n\n@Pipe({\n name: 'makePluralString',\n})\n\n/**\n * Takes a singular entity string and pluralizes it.\n * Uses both naive and holdout-list approaches.\n * If several words appear in the string, only the last word is pluralized -- this\n * means that if \"your story\" was passed in, \"your stories\" would be passed out.\n *\n * @param {string} singularEntity - Entity to pluralize. Pass as a singular ('story' or 'house').\n * NOTE: The last word is examined. So you can pass in e.g. 'my story'.\n * @param {number} [quantity=0] quantity - How many of the entity are there? If left blank, this will\n * pluralize the string (e.g. 'story' -> 'stories', 'house' -> 'houses'). If given a value,\n * this will pluralize appropriately (e.g. ('story', 1) -> 'story', ('story', 2) -> 'stories').\n */\nexport class MakePluralStringPipe implements PipeTransform {\n private irregularMap: any = {\n addendum: 'addenda',\n alga: 'algae',\n alumna: 'alumnae',\n alumnus: 'alumni',\n analysis: 'analyses',\n antenna: 'antennae',\n appendix: 'appendices',\n aquarium: 'aquaria',\n arch: 'arches',\n axe: 'axes',\n axis: 'axes',\n bacillus: 'bacilli',\n bacterium: 'bacteria',\n basis: 'bases',\n batch: 'batches',\n beach: 'beaches',\n beau: 'beaux',\n bison: 'bison',\n brush: 'brushes',\n buffalo: 'buffaloes',\n bureau: 'bureaus',\n bus: 'busses',\n cactus: 'cacti',\n calf: 'calves',\n chateau: 'chateaux',\n cherry: 'cherries',\n child: 'children',\n church: 'churches',\n circus: 'circuses',\n cod: 'cod',\n corps: 'corps',\n corpus: 'corpora',\n crisis: 'crises',\n criterion: 'criteria',\n curriculum: 'curricula',\n datum: 'data',\n deer: 'deer',\n diagnosis: 'diagnoses',\n die: 'dice',\n domino: 'dominoes',\n dwarf: 'dwarves',\n echo: 'echoes',\n elf: 'elves',\n ellipsis: 'ellipses',\n embargo: 'embargoes',\n emphasis: 'emphases',\n erratum: 'errata',\n fax: 'faxes',\n fireman: 'firemen',\n fish: 'fish',\n flush: 'flushes',\n focus: 'foci',\n foot: 'feet',\n formula: 'formulas',\n fungus: 'fungi',\n genus: 'genera',\n goose: 'geese',\n grafito: 'grafiti',\n half: 'halves',\n hero: 'heroes',\n hoax: 'hoaxes',\n hoof: 'hooves',\n hypothesis: 'hypotheses',\n index: 'indices',\n kiss: 'kisses',\n knife: 'knives',\n leaf: 'leaves',\n life: 'lives',\n loaf: 'loaves',\n louse: 'lice',\n man: 'men',\n mango: 'mangoes',\n matrix: 'matrices',\n means: 'means',\n medium: 'media',\n memorandum: 'memoranda',\n millennium: 'milennia',\n moose: 'moose',\n mosquito: 'mosquitoes',\n motto: 'mottoes',\n mouse: 'mice',\n nebula: 'nebulae',\n neurosis: 'neuroses',\n nucleus: 'nuclei',\n oasis: 'oases',\n octopus: 'octopodes',\n ovum: 'ova',\n ox: 'oxen',\n paralysis: 'paralyses',\n parenthesis: 'parentheses',\n person: 'people',\n phenomenon: 'phenomena',\n plateau: 'plateaux',\n potato: 'potatoes',\n quiz: 'quizzes',\n radius: 'radii',\n reflex: 'reflexes',\n 'runner-up': 'runners-up',\n scampo: 'scampi',\n scarf: 'scarves',\n scissors: 'scissors',\n scratch: 'scratches',\n self: 'selves',\n series: 'series',\n sheaf: 'sheaves',\n sheep: 'sheep',\n shelf: 'shelves',\n 'son-in-law': 'sons-in-law',\n species: 'species',\n splash: 'splashes',\n stimulus: 'stimuli',\n stitch: 'stitches',\n stratum: 'strata',\n syllabus: 'syllabi',\n symposium: 'symposia',\n synopsis: 'synopses',\n synthesis: 'syntheses',\n tableau: 'tableaux',\n tax: 'taxes',\n that: 'those',\n thesis: 'theses',\n thief: 'thieves',\n this: 'these',\n tomato: 'tomatoes',\n tooth: 'teeth',\n tornado: 'tornadoes',\n torpedo: 'torpedoes',\n vertebra: 'vertebrae',\n veto: 'vetoes',\n vita: 'vitae',\n volcano: 'volcanoes',\n waltz: 'waltzes',\n wash: 'washes',\n watch: 'watches',\n wharf: 'wharves',\n wife: 'wives',\n wolf: 'wolves',\n woman: 'women',\n zero: 'zeroes',\n };\n\n transform(singularEntity: string, quantity: number = 0): string {\n if (!singularEntity || singularEntity === '') {\n return '';\n }\n\n if (quantity === 1) {\n return singularEntity;\n } else {\n const lastWord = singularEntity.trim().split(' ')[singularEntity.trim().split(' ').length - 1];\n if (this.irregularMap[lastWord.toLocaleLowerCase()]) {\n if (lastWord[0] === lastWord[0].toLocaleUpperCase()) {\n return singularEntity.replace(\n lastWord,\n this.irregularMap[lastWord.toLocaleLowerCase()].replace(\n this.irregularMap[lastWord.toLocaleLowerCase()][0],\n this.irregularMap[lastWord.toLocaleLowerCase()][0].toLocaleUpperCase()\n )\n );\n }\n\n return singularEntity.replace(lastWord, this.irregularMap[lastWord.toLocaleLowerCase()]);\n } else if (lastWord[lastWord.length - 1] === 'y') {\n // Naive approach:\n // consonant+y = word - 'y' +'ies'\n // vowel+y = word + 's'\n\n return isVowel(lastWord[lastWord.length - 2])\n ? singularEntity + 's'\n : singularEntity.replace(lastWord, lastWord.slice(0, -1) + 'ies');\n } else if (lastWord[lastWord.length - 1] === 's') {\n return singularEntity + 'es';\n } else {\n return singularEntity + 's';\n }\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'wrap' })\nexport class WrapPipe implements PipeTransform {\n transform(str: string, prefix: string = '', suffix: string = ''): string {\n if (!isString(str)) {\n return str;\n }\n\n return (!!prefix && isString(prefix) ? prefix : '') + str + (!!suffix && isString(suffix) ? suffix : '');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AorAnPipe } from './a-or-an';\nimport { UcWordsPipe } from './ucwords';\nimport { LeftTrimPipe } from './ltrim';\nimport { RepeatPipe } from './repeat';\nimport { RightTrimPipe } from './rtrim';\nimport { ScanPipe } from './scan';\nimport { ShortenPipe } from './shorten';\nimport { StripTagsPipe } from './strip-tags';\nimport { TrimPipe } from './trim';\nimport { UcFirstPipe } from './ucfirst';\nimport { SlugifyPipe } from './slugify';\nimport { CamelizePipe } from './camelize';\nimport { LatinisePipe } from './latinise';\nimport { LinesPipe } from './lines';\nimport { UnderscorePipe } from './underscore';\nimport { MatchPipe } from './match';\nimport { TestPipe } from './test';\nimport { LeftPadPipe } from './lpad';\nimport { RightPadPipe } from './rpad';\nimport { MakePluralStringPipe } from './pluralize';\nimport { WrapPipe } from './wrap';\n\nexport const STRING_PIPES = [\n AorAnPipe,\n LeftTrimPipe,\n RepeatPipe,\n RightTrimPipe,\n ScanPipe,\n ShortenPipe,\n StripTagsPipe,\n TrimPipe,\n UcFirstPipe,\n UcWordsPipe,\n SlugifyPipe,\n CamelizePipe,\n LatinisePipe,\n LinesPipe,\n UnderscorePipe,\n MatchPipe,\n TestPipe,\n LeftPadPipe,\n RightPadPipe,\n MakePluralStringPipe,\n WrapPipe,\n];\n\n@NgModule({\n declarations: STRING_PIPES,\n imports: [],\n exports: STRING_PIPES,\n})\nexport class NgStringPipesModule {}\n\nexport { AorAnPipe } from './a-or-an';\nexport { UcWordsPipe } from './ucwords';\nexport { LeftTrimPipe } from './ltrim';\nexport { RepeatPipe } from './repeat';\nexport { RightTrimPipe } from './rtrim';\nexport { ScanPipe } from './scan';\nexport { ShortenPipe } from './shorten';\nexport { StripTagsPipe } from './strip-tags';\nexport { TrimPipe } from './trim';\nexport { UcFirstPipe } from './ucfirst';\nexport { SlugifyPipe } from './slugify';\nexport { CamelizePipe } from './camelize';\nexport { LatinisePipe } from './latinise';\nexport { LinesPipe } from './lines';\nexport { UnderscorePipe } from './underscore';\nexport { MatchPipe } from './match';\nexport { TestPipe } from './test';\nexport { LeftPadPipe } from './lpad';\nexport { RightPadPipe } from './rpad';\nexport { MakePluralStringPipe } from './pluralize';\nexport { WrapPipe } from './wrap';\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'max' })\nexport class MaxPipe implements PipeTransform {\n transform(arr: any): number | number[] {\n return Array.isArray(arr) ? Math.max(...arr) : arr;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'min' })\nexport class MinPipe implements PipeTransform {\n transform(arr: any): number | number[] {\n return Array.isArray(arr) ? Math.min(...arr) : arr;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'percentage' })\nexport class PercentagePipe implements PipeTransform {\n transform(num: number, total?: number, floor?: boolean): number;\n transform<T>(num: T, total?: number, floor?: boolean): T;\n\n transform(num: any, total: number = 100, floor: boolean = false): any {\n if (isNaN(num)) {\n return num;\n }\n\n const percent = (num * 100) / total;\n\n return floor ? Math.floor(percent) : percent;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'sum' })\nexport class SumPipe implements PipeTransform {\n transform(num: any[]): number;\n transform<T>(num: any): T;\n\n transform(arr: any): any {\n return Array.isArray(arr) ? arr.reduce((sum, curr) => sum + curr, 0) : arr;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'floor' })\nexport class FloorPipe implements PipeTransform {\n transform(num: number, precision: number = 0): number {\n if (precision <= 0) {\n return Math.floor(num);\n }\n\n const tho = 10 ** precision;\n\n return Math.floor(num * tho) / tho;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { applyPrecision } from '../helpers/helpers';\n\n@Pipe({ name: 'round' })\nexport class RoundPipe implements PipeTransform {\n transform(num: number, precision: number = 0): number {\n return applyPrecision(num, precision);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'sqrt' })\nexport class SqrtPipe implements PipeTransform {\n transform(num: number): number;\n transform<T>(num: T): T;\n\n transform(num: any): any {\n return !isNaN(num) ? Math.sqrt(num) : num;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'pow' })\nexport class PowerPipe implements PipeTransform {\n transform(num: number, power?: number): number;\n transform(num: any, power?: number): any;\n\n transform(num: any, power: number = 2): number {\n return !isNaN(num) ? num ** power : num;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'ceil' })\nexport class CeilPipe implements PipeTransform {\n transform(num: number, precision: number = 0): number {\n if (precision <= 0) {\n return Math.ceil(num);\n }\n\n const tho = 10 ** precision;\n\n return Math.ceil(num * tho) / tho;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isNumberFinite } from '../helpers/helpers';\n\n@Pipe({ name: 'degrees' })\nexport class DegreesPipe implements PipeTransform {\n transform(radians: number): number {\n if (!isNumberFinite(radians)) {\n return NaN;\n }\n\n return (radians * 180) / Math.PI;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { applyPrecision, isNumberFinite, isUndefined } from '../helpers/helpers';\n\n@Pipe({ name: 'bytes' })\nexport class BytesPipe implements PipeTransform {\n private dictionary: Array<{ max: number; type: string }> = [\n { max: 1024, type: 'B' },\n { max: 1048576, type: 'KB' },\n { max: 1073741824, type: 'MB' },\n { max: 1.0995116e12, type: 'GB' },\n ];\n\n transform(value: number, precision?: number | undefined): string | number {\n if (!isNumberFinite(value)) {\n return NaN;\n }\n\n const format = this.dictionary.find(d => value < d.max) || this.dictionary[this.dictionary.length - 1];\n const calc = value / (format.max / 1024);\n const num = isUndefined(precision) ? calc : applyPrecision(calc, precision);\n\n return `${num} ${format.type}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isNumberFinite } from '../helpers/helpers';\n\n@Pipe({ name: 'radians' })\nexport class RadiansPipe implements PipeTransform {\n transform(degrees: number): number {\n if (!isNumberFinite(degrees)) {\n return NaN;\n }\n\n return (degrees * Math.PI) / 180;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MaxPipe } from './max';\nimport { MinPipe } from './min';\nimport { PercentagePipe } from './percentage';\nimport { SumPipe } from './sum';\nimport { FloorPipe } from './floor';\nimport { RoundPipe } from './round';\nimport { SqrtPipe } from './sqrt';\nimport { PowerPipe } from './pow';\nimport { CeilPipe } from './ceil';\nimport { DegreesPipe } from './degrees';\nimport { BytesPipe } from './bytes';\nimport { RadiansPipe } from './radians';\n\nexport const MATH_PIPES = [\n MaxPipe,\n MinPipe,\n PercentagePipe,\n SumPipe,\n FloorPipe,\n RoundPipe,\n SqrtPipe,\n PowerPipe,\n CeilPipe,\n DegreesPipe,\n BytesPipe,\n RadiansPipe,\n];\n\n@NgModule({\n declarations: MATH_PIPES,\n imports: [],\n exports: MATH_PIPES,\n})\nexport class NgMathPipesModule {}\n\nexport { MaxPipe } from './max';\nexport { MinPipe } from './min';\nexport { PercentagePipe } from './percentage';\nexport { SumPipe } from './sum';\nexport { FloorPipe } from './floor';\nexport { RoundPipe } from './round';\nexport { SqrtPipe } from './sqrt';\nexport { PowerPipe } from './pow';\nexport { CeilPipe } from './ceil';\nexport { DegreesPipe } from './degrees';\nexport { BytesPipe } from './bytes';\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isUndefined } from '../helpers/helpers';\n\n@Pipe({ name: 'isDefined' })\nexport class IsDefinedPipe implements PipeTransform {\n transform(input: any): boolean {\n return !isUndefined(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isNull' })\nexport class IsNullPipe implements PipeTransform {\n transform(input: any): boolean {\n return input === null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isUndefined } from '../helpers/helpers';\n\n@Pipe({ name: 'isUndefined' })\nexport class IsUndefinedPipe implements PipeTransform {\n transform(input: any): boolean {\n return isUndefined(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isString } from '../helpers/helpers';\n\n@Pipe({ name: 'isString' })\nexport class IsStringPipe implements PipeTransform {\n transform(input: any): boolean {\n return isString(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isFunction } from '../helpers/helpers';\n\n@Pipe({ name: 'isFunction' })\nexport class IsFunctionPipe implements PipeTransform {\n transform(input: any): boolean {\n return isFunction(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isNumber } from '../helpers/helpers';\n\n@Pipe({ name: 'isNumber' })\nexport class IsNumberPipe implements PipeTransform {\n transform(input: any): boolean {\n return isNumber(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isArray' })\nexport class IsArrayPipe implements PipeTransform {\n transform(input: any): boolean {\n return Array.isArray(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isObject } from '../helpers/helpers';\n\n@Pipe({ name: 'isObject' })\nexport class IsObjectPipe implements PipeTransform {\n transform(input: any): boolean {\n return isObject(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isGreaterEqualThan' })\nexport class IsGreaterEqualThanPipe implements PipeTransform {\n transform(input: number, other: number): boolean {\n return input >= other;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isGreaterThan' })\nexport class IsGreaterThanPipe implements PipeTransform {\n transform(input: number, other: number): boolean {\n return input > other;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isLessEqualThan' })\nexport class IsLessEqualThanPipe implements PipeTransform {\n transform(input: number, other: number): boolean {\n return input <= other;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isEqualTo' })\nexport class IsEqualToPipe implements PipeTransform {\n transform(input: any, other: any): boolean {\n // tslint:disable-next-line:triple-equals\n return input == other;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isNotEqualTo' })\nexport class IsNotEqualToPipe implements PipeTransform {\n transform(input: any, other: any): boolean {\n // tslint:disable-next-line:triple-equals\n return input != other;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isIdenticalTo' })\nexport class IsIdenticalToPipe implements PipeTransform {\n transform(input: any, other: any): boolean {\n return input === other;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isNotIdenticalTo' })\nexport class IsNotIdenticalToPipe implements PipeTransform {\n transform(input: any, other: any): boolean {\n return input !== other;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'isLessThan' })\nexport class IsLessThanPipe implements PipeTransform {\n transform(input: number, other: number): boolean {\n return input < other;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { IsDefinedPipe } from './is-defined';\nimport { IsNullPipe } from './is-null';\nimport { IsUndefinedPipe } from './is-undefined';\nimport { IsStringPipe } from './is-string';\nimport { IsFunctionPipe } from './is-function';\nimport { IsNumberPipe } from './is-number';\nimport { IsArrayPipe } from './is-array';\nimport { IsObjectPipe } from './is-object';\nimport { IsGreaterEqualThanPipe } from './is-greater-equal-than';\nimport { IsGreaterThanPipe } from './is-greater-than';\nimport { IsLessEqualThanPipe } from './is-less-equal-than';\nimport { IsEqualToPipe } from './is-equal-to';\nimport { IsNotEqualToPipe } from './is-not-equal-to';\nimport { IsIdenticalToPipe } from './is-identical-to';\nimport { IsNotIdenticalToPipe } from './is-not-identical-to';\nimport { IsLessThanPipe } from './is-less-than';\n\nexport const BOOLEAN_PIPES = [\n IsDefinedPipe,\n IsNullPipe,\n IsUndefinedPipe,\n IsStringPipe,\n IsFunctionPipe,\n IsNumberPipe,\n IsArrayPipe,\n IsObjectPipe,\n IsGreaterEqualThanPipe,\n IsGreaterThanPipe,\n IsLessEqualThanPipe,\n IsLessEqualThanPipe,\n IsEqualToPipe,\n IsNotEqualToPipe,\n IsIdenticalToPipe,\n IsNotIdenticalToPipe,\n IsLessThanPipe,\n];\n\n@NgModule({\n declarations: BOOLEAN_PIPES,\n imports: [],\n exports: BOOLEAN_PIPES,\n})\nexport class NgBooleanPipesModule {}\n\nexport { IsDefinedPipe } from './is-defined';\nexport { IsNullPipe } from './is-null';\nexport { IsUndefinedPipe } from './is-undefined';\nexport { IsStringPipe } from './is-string';\nexport { IsFunctionPipe } from './is-function';\nexport { IsNumberPipe } from './is-number';\nexport { IsArrayPipe } from './is-array';\nexport { IsObjectPipe } from './is-object';\nexport { IsGreaterEqualThanPipe } from './is-greater-equal-than';\nexport { IsGreaterThanPipe } from './is-greater-than';\nexport { IsLessEqualThanPipe } from './is-less-equal-than';\nexport { IsEqualToPipe } from './is-equal-to';\nexport { IsNotEqualToPipe } from './is-not-equal-to';\nexport { IsIdenticalToPipe } from './is-identical-to';\nexport { IsNotIdenticalToPipe } from './is-not-identical-to';\nexport { IsLessThanPipe } from './is-less-than';\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'timeAgo' })\nexport class TimeAgoPipe implements PipeTransform {\n private static YEAR_MS: number = 1000 * 60 * 60 * 24 * 7 * 4 * 12;\n private static MAPPER: any = [\n { single: 'last year', many: 'years', div: 1 },\n { single: 'last month', many: 'months', div: 12 },\n { single: 'last week', many: 'weeks', div: 4 },\n { single: 'yesterday', many: 'days', div: 7 },\n { single: 'an hour ago', many: 'hours', div: 24 },\n { single: 'just now', many: 'minutes', div: 60 },\n ];\n\n /**\n * @param inputDate: Date | Moment - not included as TypeScript interface,\n * in order to keep `ngx-pipes` \"pure\" from dependencies!\n */\n public transform(inputDate: any): string {\n if (!inputDate || (!inputDate.getTime && !inputDate.toDate)) {\n return 'Invalid date';\n }\n\n const past = inputDate.toDate ? inputDate.toDate() : inputDate.getTime();\n const now = +new Date();\n\n if (past > now) {\n return 'in the future';\n }\n\n for (let i = 0, l = TimeAgoPipe.MAPPER.length, ms = now - past, div = TimeAgoPipe.YEAR_MS; i < l; ++i) {\n const elm = TimeAgoPipe.MAPPER[i];\n const unit = Math.floor(ms / (div /= elm.div));\n\n if (unit >= 1) {\n return unit === 1 ? elm.single : `${unit} ${elm.many} ago`;\n }\n }\n\n return 'just now';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TimeAgoPipe } from './time-ago';\n\nexport const DATE_PIPES = [TimeAgoPipe];\n\n@NgModule({\n declarations: DATE_PIPES,\n imports: [],\n exports: DATE_PIPES,\n})\nexport class NgDatePipesModule {}\n\nexport { TimeAgoPipe } from './time-ago';\n","import { NgModule } from '@angular/core';\nimport { NgArrayPipesModule } from './array/index';\nimport { NgObjectPipesModule } from './object/index';\nimport { NgStringPipesModule } from './string/index';\nimport { NgMathPipesModule } from './math/index';\nimport { NgBooleanPipesModule } from './boolean/index';\nimport { NgDatePipesModule } from './date/index';\n\n@NgModule({\n exports: [\n NgArrayPipesModule,\n NgStringPipesModule,\n NgMathPipesModule,\n NgBooleanPipesModule,\n NgObjectPipesModule,\n NgDatePipesModule,\n ],\n})\nexport class NgPipesModule {}\n\nexport * from './array/index';\nexport * from './object/index';\nexport * from './string/index';\nexport * from './math/index';\nexport * from './boolean/index';\nexport * from './date/index';\n"],"names":[],"mappings":"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C,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;SACP,CAAC;KAYH;IAPC,SAAS,CAAC,IAAS,EAAE,QAAgB,KAAK;QACxC,OAAO,QAAQ,CAAC,IAAI,CAAC;cACjB,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,GAAW;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;aAClC,CAAC;cACF,IAAI,CAAC;KACV;CACF,CAAA;AA10BY,YAAY;IADxB,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;GACd,YAAY,CA00BxB;;IC10BY,SAAS,GAAtB,MAAa,SAAS;IACpB,SAAS,CAAC,IAAS,EAAE,QAAgB,KAAK;QACxC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KACxE;CACF,CAAA;AAJY,SAAS;IADrB,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;GACX,SAAS,CAIrB;;ICJY,cAAc,GAA3B,MAAa,cAAc;IAIzB,SAAS,CAAC,IAAS,EAAE,QAAgB,KAAK;QACxC,OAAO,QAAQ,CAAC,IAAI,CAAC;cACjB,IAAI;iBACD,IAAI,EAAE;iBACN,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;iBACnB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAS,EAAE,CAAM;gBACnC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;aACpD,CAAC;cACJ,IAAI,CAAC;KACV;CACF,CAAA;AAdY,cAAc;IAD1B,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;GAChB,cAAc,CAc1B;;ICdY,SAAS,GAAtB,MAAa,SAAS;IAIpB,SAAS,CAAC,IAAS,EAAE,OAAe,EAAE,KAAc;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;KAC/C;CACF,CAAA;AAXY,SAAS;IADrB,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;GACX,SAAS,CAWrB;;ICXY,QAAQ,GAArB,MAAa,QAAQ;IAInB,SAAS,CAAC,IAAS,EAAE,OAAe,EAAE,KAAc;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9C;CACF,CAAA;AAXY,QAAQ;IADpB,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;GACV,QAAQ,CAWpB;;ICXY,WAAW,GAAxB,MAAa,WAAW;IACtB,SAAS,CAAC,GAAW,EAAE,MAAc,EAAE,eAAuB,GAAG;QAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE;YAC1C,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE;YAC1B,GAAG,GAAG,YAAY,GAAG,GAAG,CAAC;SAC1B;QAED,OAAO,GAAG,CAAC;KACZ;CACF,CAAA;AAXY,WAAW;IADvB,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;GACV,WAAW,CAWvB;;ICXY,YAAY,GAAzB,MAAa,YAAY;IACvB,SAAS,CAAC,GAAW,EAAE,SAAiB,CAAC,EAAE,eAAuB,GAAG;QACnE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE;YAC1C,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE;YAC1B,GAAG,GAAG,GAAG,GAAG,YAAY,CAAC;SAC1B;QAED,OAAO,GAAG,CAAC;KACZ;CACF,CAAA;AAXY,YAAY;IADxB,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;GACV,YAAY,CAWxB;;ICIY,oBAAoB;;;;;;;;;;;;;AAAjC,MAAa,oBAAoB;IAhBjC;QAiBU,iBAAY,GAAQ;YAC1B,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,UAAU;YACrB,UAAU,EAAE,WAAW;YACvB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,WAAW;YACtB,GAAG,EAAE,MAAM;YACX,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,QAAQ;YACjB,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,YAAY;YACxB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,WAAW;YACvB,UAAU,EAAE,UAAU;YACtB,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,KAAK;YACX,EAAE,EAAE,MAAM;YACV,SAAS,EAAE,WAAW;YACtB,WAAW,EAAE,aAAa;YAC1B,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,WAAW;YACvB,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,YAAY;YACzB,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,SAAS;YAChB,YAAY,EAAE,aAAa;YAC3B,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,UAAU;YACnB,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,QAAQ;SACf,CAAC;KAsCH;IApCC,SAAS,CAAC,cAAsB,EAAE,WAAmB,CAAC;QACpD,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,EAAE,EAAE;YAC5C,OAAO,EAAE,CAAC;SACX;QAED,IAAI,QAAQ,KAAK,CAAC,EAAE;YAClB,OAAO,cAAc,CAAC;SACvB;aAAM;YACL,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/F,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,EAAE;gBACnD,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE;oBACnD,OAAO,cAAc,CAAC,OAAO,CAC3B,QAAQ,EACR,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CACrD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,EAClD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CACvE,CACF,CAAC;iBACH;gBAED,OAAO,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;aAC1F;iBAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;;;;gBAKhD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;sBACzC,cAAc,GAAG,GAAG;sBACpB,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;aACrE;iBAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;gBAChD,OAAO,cAAc,GAAG,IAAI,CAAC;aAC9B;iBAAM;gBACL,OAAO,cAAc,GAAG,GAAG,CAAC;aAC7B;SACF;KACF;CACF,CAAA;AAnLY,oBAAoB;IAhBhC,IAAI,CAAC;QACJ,IAAI,EAAE,kBAAkB;KACzB,CAAC;;;;;;;;;;;;;GAcW,oBAAoB,CAmLhC;;IClMY,QAAQ,GAArB,MAAa,QAAQ;IACnB,SAAS,CAAC,GAAW,EAAE,SAAiB,EAAE,EAAE,SAAiB,EAAE;QAC7D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,GAAG,CAAC;SACZ;QAED,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;KAC1G;CACF,CAAA;AARY,QAAQ;IADpB,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;GACV,QAAQ,CAQpB;;MCWY,YAAY,GAAG;IAC1B,SAAS;IACT,YAAY;IACZ,UAAU;IACV,aAAa;IACb,QAAQ;IACR,WAAW;IACX,aAAa;IACb,QAAQ;IACR,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,cAAc;IACd,SAAS;IACT,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,oBAAoB;IACpB,QAAQ;CACT,CAAC;AAOF,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;CAAG,CAAA;AAAtB,mBAAmB;IAL/B,QAAQ,CAAC;QACR,YAAY,EAAE,YAAY;QAC1B,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,YAAY;KACtB,CAAC;GACW,mBAAmB,CAAG;;ICjDtB,OAAO,GAApB,MAAa,OAAO;IAClB,SAAS,CAAC,GAAQ;QAChB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;KACpD;CACF,CAAA;AAJY,OAAO;IADnB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GACT,OAAO,CAInB;;ICJY,OAAO,GAApB,MAAa,OAAO;IAClB,SAAS,CAAC,GAAQ;QAChB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;KACpD;CACF,CAAA;AAJY,OAAO;IADnB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GACT,OAAO,CAInB;;ICJY,cAAc,GAA3B,MAAa,cAAc;IAIzB,SAAS,CAAC,GAAQ,EAAE,QAAgB,GAAG,EAAE,QAAiB,KAAK;QAC7D,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YACd,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC;QAEpC,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;KAC9C;CACF,CAAA;AAbY,cAAc;IAD1B,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;GAChB,cAAc,CAa1B;;ICbY,OAAO,GAApB,MAAa,OAAO;IAIlB,SAAS,CAAC,GAAQ;QAChB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;KAC5E;CACF,CAAA;AAPY,OAAO;IADnB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GACT,OAAO,CAOnB;;ICPY,SAAS,GAAtB,MAAa,SAAS;IACpB,SAAS,CAAC,GAAW,EAAE,YAAoB,CAAC;QAC1C,IAAI,SAAS,IAAI,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACxB;QAED,MAAM,GAAG,GAAG,SAAA,EAAE,EAAI,SAAS,CAAA,CAAC;QAE5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;KACpC;CACF,CAAA;AAVY,SAAS;IADrB,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;GACX,SAAS,CAUrB;;ICTY,SAAS,GAAtB,MAAa,SAAS;IACpB,SAAS,CAAC,GAAW,EAAE,YAAoB,CAAC;QAC1C,OAAO,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;KACvC;CACF,CAAA;AAJY,SAAS;IADrB,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;GACX,SAAS,CAIrB;;ICLY,QAAQ,GAArB,MAAa,QAAQ;IAInB,SAAS,CAAC,GAAQ;QAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;KAC3C;CACF,CAAA;AAPY,QAAQ;IADpB,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;GACV,QAAQ,CAOpB;;ICPY,SAAS,GAAtB,MAAa,SAAS;IAIpB,SAAS,CAAC,GAAQ,EAAE,QAAgB,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAA,GAAG,EAAI,KAAK,CAAA,GAAG,GAAG,CAAC;KACzC;CACF,CAAA;AAPY,SAAS;IADrB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GACT,SAAS,CAOrB;;ICPY,QAAQ,GAArB,MAAa,QAAQ;IACnB,SAAS,CAAC,GAAW,EAAE,YAAoB,CAAC;QAC1C,IAAI,SAAS,IAAI,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACvB;QAED,MAAM,GAAG,GAAG,SAAA,EAAE,EAAI,SAAS,CAAA,CAAC;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;KACnC;CACF,CAAA;AAVY,QAAQ;IADpB,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;GACV,QAAQ,CAUpB;;ICTY,WAAW,GAAxB,MAAa,WAAW;IACtB,SAAS,CAAC,OAAe;QACvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,GAAG,CAAC;SACZ;QAED,OAAO,CAAC,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;KAClC;CACF,CAAA;AARY,WAAW;IADvB,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;GACb,WAAW,CAQvB;;ICRY,SAAS,GAAtB,MAAa,SAAS;IADtB;QAEU,eAAU,GAAyC;YACzD,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACxB,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;YAC5B,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;YAC/B,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;SAClC,CAAC;KAaH;IAXC,SAAS,CAAC,KAAa,EAAE,SAA8B;QACrD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvG,MAAM,IAAI,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE5E,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;KAChC;CACF,CAAA;AAnBY,SAAS;IADrB,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;GACX,SAAS,CAmBrB;;ICnBY,WAAW,GAAxB,MAAa,WAAW;IACtB,SAAS,CAAC,OAAe;QACvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO,GAAG,CAAC;SACZ;QAED,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC;KAClC;CACF,CAAA;AARY,WAAW;IADvB,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;GACb,WAAW,CAQvB;;MCEY,UAAU,GAAG;IACxB,OAAO;IACP,OAAO;IACP,cAAc;IACd,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,WAAW;IACX,SAAS;IACT,WAAW;CACZ,CAAC;AAOF,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAL7B,QAAQ,CAAC;QACR,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,UAAU;KACpB,CAAC;GACW,iBAAiB,CAAG;;IC9BpB,aAAa,GAA1B,MAAa,aAAa;IACxB,SAAS,CAAC,KAAU;QAClB,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAC5B;CACF,CAAA;AAJY,aAAa;IADzB,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;GACf,aAAa,CAIzB;;ICLY,UAAU,GAAvB,MAAa,UAAU;IACrB,SAAS,CAAC,KAAU;QAClB,OAAO,KAAK,KAAK,IAAI,CAAC;KACvB;CACF,CAAA;AAJY,UAAU;IADtB,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;GACZ,UAAU,CAItB;;ICHY,eAAe,GAA5B,MAAa,eAAe;IAC1B,SAAS,CAAC,KAAU;QAClB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;KAC3B;CACF,CAAA;AAJY,eAAe;IAD3B,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;GACjB,eAAe,CAI3B;;ICJY,YAAY,GAAzB,MAAa,YAAY;IACvB,SAAS,CAAC,KAAU;QAClB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;KACxB;CACF,CAAA;AAJY,YAAY;IADxB,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;GACd,YAAY,CAIxB;;ICJY,cAAc,GAA3B,MAAa,cAAc;IACzB,SAAS,CAAC,KAAU;QAClB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;KAC1B;CACF,CAAA;AAJY,cAAc;IAD1B,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;GAChB,cAAc,CAI1B;;ICJY,YAAY,GAAzB,MAAa,YAAY;IACvB,SAAS,CAAC,KAAU;QAClB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;KACxB;CACF,CAAA;AAJY,YAAY;IADxB,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;GACd,YAAY,CAIxB;;ICLY,WAAW,GAAxB,MAAa,WAAW;IACtB,SAAS,CAAC,KAAU;QAClB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC7B;CACF,CAAA;AAJY,WAAW;IADvB,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;GACb,WAAW,CAIvB;;ICHY,YAAY,GAAzB,MAAa,YAAY;IACvB,SAAS,CAAC,KAAU;QAClB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;KACxB;CACF,CAAA;AAJY,YAAY;IADxB,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;GACd,YAAY,CAIxB;;ICLY,sBAAsB,GAAnC,MAAa,sBAAsB;IACjC,SAAS,CAAC,KAAa,EAAE,KAAa;QACpC,OAAO,KAAK,IAAI,KAAK,CAAC;KACvB;CACF,CAAA;AAJY,sBAAsB;IADlC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;GACxB,sBAAsB,CAIlC;;ICJY,iBAAiB,GAA9B,MAAa,iBAAiB;IAC5B,SAAS,CAAC,KAAa,EAAE,KAAa;QACpC,OAAO,KAAK,GAAG,KAAK,CAAC;KACtB;CACF,CAAA;AAJY,iBAAiB;IAD7B,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;GACnB,iBAAiB,CAI7B;;ICJY,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,SAAS,CAAC,KAAa,EAAE,KAAa;QACpC,OAAO,KAAK,IAAI,KAAK,CAAC;KACvB;CACF,CAAA;AAJY,mBAAmB;IAD/B,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;GACrB,mBAAmB,CAI/B;;ICJY,aAAa,GAA1B,MAAa,aAAa;IACxB,SAAS,CAAC,KAAU,EAAE,KAAU;;QAE9B,OAAO,KAAK,IAAI,KAAK,CAAC;KACvB;CACF,CAAA;AALY,aAAa;IADzB,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;GACf,aAAa,CAKzB;;ICLY,gBAAgB,GAA7B,MAAa,gBAAgB;IAC3B,SAAS,CAAC,KAAU,EAAE,KAAU;;QAE9B,OAAO,KAAK,IAAI,KAAK,CAAC;KACvB;CACF,CAAA;AALY,gBAAgB;IAD5B,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;GAClB,gBAAgB,CAK5B;;ICLY,iBAAiB,GAA9B,MAAa,iBAAiB;IAC5B,SAAS,CAAC,KAAU,EAAE,KAAU;QAC9B,OAAO,KAAK,KAAK,KAAK,CAAC;KACxB;CACF,CAAA;AAJY,iBAAiB;IAD7B,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;GACnB,iBAAiB,CAI7B;;ICJY,oBAAoB,GAAjC,MAAa,oBAAoB;IAC/B,SAAS,CAAC,KAAU,EAAE,KAAU;QAC9B,OAAO,KAAK,KAAK,KAAK,CAAC;KACxB;CACF,CAAA;AAJY,oBAAoB;IADhC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;GACtB,oBAAoB,CAIhC;;ICJY,cAAc,GAA3B,MAAa,cAAc;IACzB,SAAS,CAAC,KAAa,EAAE,KAAa;QACpC,OAAO,KAAK,GAAG,KAAK,CAAC;KACtB;CACF,CAAA;AAJY,cAAc;IAD1B,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;GAChB,cAAc,CAI1B;;MCWY,aAAa,GAAG;IAC3B,aAAa;IACb,UAAU;IACV,eAAe;IACf,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,sBAAsB;IACtB,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IACpB,cAAc;CACf,CAAC;AAOF,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;CAAG,CAAA;AAAvB,oBAAoB;IALhC,QAAQ,CAAC;QACR,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,aAAa;KACvB,CAAC;GACW,oBAAoB,CAAG;;;AC3CpC,IAGa,WAAW,mBAAxB,MAAa,WAAW;;;;;IAef,SAAS,CAAC,SAAc;QAC7B,IAAI,CAAC,SAAS,KAAK,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC3D,OAAO,cAAc,CAAC;SACvB;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QACzE,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAExB,IAAI,IAAI,GAAG,GAAG,EAAE;YACd,OAAO,eAAe,CAAC;SACxB;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAW,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,aAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;YACrG,MAAM,GAAG,GAAG,aAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAE/C,IAAI,IAAI,IAAI,CAAC,EAAE;gBACb,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC;aAC5D;SACF;QAED,OAAO,UAAU,CAAC;KACnB;CACF,CAAA;AArCgB,mBAAO,GAAW,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACnD,kBAAM,GAAQ;IAC3B,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;IAC9C,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE;IACjD,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;IAC9C,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE;IAC7C,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;IACjD,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;CACjD,CAAC;AATS,WAAW;IADvB,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;GACb,WAAW,CAsCvB;;MCtCY,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC;AAOxC,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAL7B,QAAQ,CAAC;QACR,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,UAAU;KACpB,CAAC;GACW,iBAAiB,CAAG;;ICQpB,aAAa,GAA1B,MAAa,aAAa;CAAG,CAAA;AAAhB,aAAa;IAVzB,QAAQ,CAAC;QACR,OAAO,EAAE;YACP,kBAAkB;YAClB,mBAAmB;YACnB,iBAAiB;YACjB,oBAAoB;YACpB,mBAAmB;YACnB,iBAAiB;SAClB;KACF,CAAC;GACW,aAAa,CAAG;;;;"}
\No newline at end of file