{"version":3,"file":"ngx-bootstrap-typeahead.mjs","sources":["../../../../src/typeahead/latin-map.ts","../../../../src/typeahead/typeahead-options.class.ts","../../../../src/typeahead/typeahead-match.class.ts","../../../../src/typeahead/typeahead-utils.ts","../../../../src/typeahead/typeahead-animations.ts","../../../../src/typeahead/typeahead-container.component.ts","../../../../src/typeahead/typeahead-container.component.html","../../../../src/typeahead/typeahead.config.ts","../../../../src/typeahead/typeahead.directive.ts","../../../../src/typeahead/typeahead.module.ts","../../../../src/typeahead/ngx-bootstrap-typeahead.ts"],"sourcesContent":["export const latinMap: { [key: string]: string } = {\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    'ǲ': 'D',\n    'ǅ': 'D',\n    'Đ': 'D',\n    'Ƌ': 'D',\n    'Ǳ': 'DZ',\n    'Ǆ': '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    'ǈ': 'L',\n    'Ł': 'L',\n    'Ǉ': '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    'ǋ': 'N',\n    'Ñ': 'N',\n    'Ǌ': '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    'Ť': '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',\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',\n    'ǆ': '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',\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',\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    'ᴑ': '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',\n    'ﬃ': 'ffi',\n    'ﬄ': 'ffl',\n    'ﬁ': 'fi',\n    'ﬂ': 'fl',\n    'ĳ': 'ij',\n    'œ': 'oe',\n    'ﬆ': 'st',\n    'ₐ': 'a',\n    'ₑ': 'e',\n    'ᵢ': 'i',\n    'ⱼ': 'j',\n    'ₒ': 'o',\n    'ᵣ': 'r',\n    'ᵤ': 'u',\n    'ᵥ': 'v',\n    'ₓ': 'x'\n};\n","import { TypeaheadDirective } from './typeahead.directive';\n\nexport class TypeaheadOptions {\n  placement: string;\n  animation: boolean;\n  typeaheadRef: TypeaheadDirective;\n\n  constructor(options: TypeaheadOptions) {\n    this.placement = options.placement;\n    this.animation = options.animation;\n    this.typeaheadRef = options.typeaheadRef;\n  }\n}\n","export class TypeaheadMatch {\n  readonly value: string;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n  readonly item: any;\n  protected header: boolean;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n  constructor(item: any, value: string = item, header = false) {\n    this.item = item;\n    this.value = value;\n    this.header = header;\n  }\n\n  isHeader(): boolean {\n    return this.header;\n  }\n\n  toString(): string {\n    return this.value;\n  }\n}\n","import { latinMap } from './latin-map';\n\nexport function latinize(str: string): string {\n  if (!str) {\n    return '';\n  }\n\n  return str.replace(/[^A-Za-z0-9[\\] ]/g, function(a: string): string {\n    return latinMap[a] || a;\n  });\n}\n\nexport function escapeRegexp(queryToEscape: string): string {\n  // Regex: capture the whole query string and replace it with the string\n  // that will be used to match the results, for example if the capture is\n  // 'a' the result will be \\a\n  return queryToEscape.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n}\n\nexport function tokenize(str: string,\n                         wordRegexDelimiters = ' ',\n                         phraseRegexDelimiters = '', delimitersForMultipleSearch?: string): Array<string> {\n\n  let result: string[] = [];\n  if (!delimitersForMultipleSearch) {\n    result = tokenizeWordsAndPhrases(str, wordRegexDelimiters, phraseRegexDelimiters);\n  } else {\n    const multipleSearchRegexStr = `([${delimitersForMultipleSearch}]+)`;\n    const delimitedTokens = str.split(new RegExp(multipleSearchRegexStr, 'g'));\n    const lastToken = delimitedTokens[delimitedTokens.length - 1];\n    if (lastToken > '') {\n      if (wordRegexDelimiters && phraseRegexDelimiters) {\n        result = tokenizeWordsAndPhrases(lastToken, wordRegexDelimiters, phraseRegexDelimiters);\n      } else {\n        result.push(lastToken);\n      }\n    }\n  }\n\n  return result;\n}\n\nfunction tokenizeWordsAndPhrases(str: string, wordRegexDelimiters: string, phraseRegexDelimiters: string): Array<string> {\n  const result: string[] = [];\n  const regexStr = `(?:[${phraseRegexDelimiters}])([^${phraseRegexDelimiters}]+)` +\n    `(?:[${phraseRegexDelimiters}])|([^${wordRegexDelimiters}]+)`;\n  const preTokenized: string[] = str.split(new RegExp(regexStr, 'g'));\n  const preTokenizedLength: number = preTokenized.length;\n  let token: string;\n  const replacePhraseDelimiters = new RegExp(`[${phraseRegexDelimiters}]+`, 'g');\n\n  for (let i = 0; i < preTokenizedLength; i += 1) {\n    token = preTokenized[i];\n    if (token && token.length && token !== wordRegexDelimiters) {\n      result.push(token.replace(replacePhraseDelimiters, ''));\n    }\n  }\n\n  return result;\n}\n\n// eslint-disable-next-line\nexport function getValueFromObject(object: string | Record<string | number, any>, option?: string): string {\n  if (!option || typeof object !== 'object') {\n    return object.toString();\n  }\n\n  if (option.endsWith('()')) {\n    const functionName = option.slice(0, option.length - 2);\n\n    return (object[functionName] as () => string)().toString();\n  }\n\n  const properties: string = option\n    .replace(/\\[(\\w+)\\]/g, '.$1')\n    .replace(/^\\./, '');\n  const propertiesArray: string[] = properties.split('.');\n\n  for (const property of propertiesArray) {\n    if (property in (object as Record<string, unknown>)) {\n      // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n      // @ts-ignore\n      object = object[property];\n    }\n  }\n  if (!object) {\n    return '';\n  }\n\n  return object.toString();\n}\n","import {\n  animate,\n  style,\n  AnimationTriggerMetadata,\n  state,\n  transition,\n  trigger\n} from '@angular/animations';\n\nexport const TYPEAHEAD_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\n\nexport const typeaheadAnimation: AnimationTriggerMetadata =\n  trigger('typeaheadAnimation', [\n    state('animated-down', style({ height: '*', overflow: 'hidden'})),\n    transition('* => animated-down', [\n      style({ height: 0, overflow: 'hidden' }),\n      animate(TYPEAHEAD_ANIMATION_TIMING)\n    ]),\n    state('animated-up', style({ height: '*', overflow: 'hidden'})),\n    transition('* => animated-up', [\n      style({ height: '*', overflow: 'hidden' }),\n      animate(TYPEAHEAD_ANIMATION_TIMING)\n    ]),\n    transition('* => unanimated', animate('0s'))\n  ]);\n","import {\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  HostListener,\n  OnDestroy,\n  QueryList,\n  Renderer2,\n  TemplateRef,\n  ViewChild,\n  ViewChildren,\n  Output,\n  EventEmitter\n} from '@angular/core';\n\nimport { Utils } from 'ngx-bootstrap/utils';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { Subscription } from 'rxjs';\n\nimport { latinize } from './typeahead-utils';\nimport { TypeaheadMatch } from './typeahead-match.class';\nimport { TypeaheadDirective } from './typeahead.directive';\nimport { typeaheadAnimation } from './typeahead-animations';\nimport { TypeaheadOptionItemContext, TypeaheadOptionListContext, TypeaheadTemplateMethods } from './models';\n\nlet nextWindowId = 0;\n\n@Component({\n  selector: 'typeahead-container',\n  templateUrl: './typeahead-container.component.html',\n  // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n  host: {\n    class: 'dropdown open bottom dropdown-menu',\n    '[style.height]': `needScrollbar ? guiHeight: 'auto'`,\n    '[style.visibility]': `'inherit'`,\n    '[class.dropup]': 'dropup',\n    style: 'position: absolute;display: block;',\n    '[attr.role]': `'listbox'`\n  },\n  styles: [\n    `\n    :host.dropdown {\n      z-index: 1000;\n    }\n\n    :host.dropdown-menu, .dropdown-menu {\n      overflow-y: auto;\n      height: 100px;\n    }\n  `\n  ],\n  animations: [typeaheadAnimation]\n})\n\nexport class TypeaheadContainerComponent implements OnDestroy {\n  // eslint-disable-next-line @angular-eslint/no-output-rename\n  @Output('activeChange') activeChangeEvent = new EventEmitter();\n\n  parent?: TypeaheadDirective;\n  query?: string[] | string;\n  isFocused = false;\n  top?: string;\n  left?: string;\n  display?: string;\n  placemen?: string;\n  dropup?: boolean;\n  guiHeight?: string;\n  needScrollbar?: boolean;\n  animationState?: string;\n  positionServiceSubscription = new Subscription();\n  height = 0;\n  popupId = `ngb-typeahead-${nextWindowId++}`;\n\n  get typeaheadTemplateMethods(): TypeaheadTemplateMethods {\n    return {\n      selectMatch: this.selectMatch.bind(this),\n      selectActive: this.selectActive.bind(this),\n      isActive: this.isActive.bind(this)\n    };\n  }\n\n  protected _active?: TypeaheadMatch;\n  protected _matches: TypeaheadMatch[] = [];\n\n  @ViewChild('ulElement', { static: false })\n  private ulElement?: ElementRef;\n\n  @ViewChildren('liElements')\n  private liElements?: QueryList<ElementRef>;\n\n  constructor(\n    private positionService: PositioningService,\n    private renderer: Renderer2,\n    public element: ElementRef,\n    private changeDetectorRef: ChangeDetectorRef\n  ) {\n    this.renderer.setAttribute(this.element.nativeElement, 'id', this.popupId);\n    this.positionServiceSubscription.add(this.positionService.event$?.subscribe(\n      () => {\n        if (this.isAnimated) {\n          this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n          this.changeDetectorRef.detectChanges();\n\n          return;\n        }\n\n        this.animationState = 'unanimated';\n        this.changeDetectorRef.detectChanges();\n      }\n    ));\n  }\n\n  get active(): TypeaheadMatch | undefined {\n    return this._active;\n  }\n\n  set active(active: TypeaheadMatch | undefined) {\n    this._active = active;\n    this.activeChanged();\n  }\n\n  get matches(): TypeaheadMatch[] {\n    return this._matches;\n  }\n\n  set matches(value: TypeaheadMatch[]) {\n    this.positionService.setOptions({\n      modifiers: { flip: { enabled: this.adaptivePosition } },\n      allowedPositions: ['top', 'bottom']\n    });\n\n    this._matches = value;\n\n    this.needScrollbar = this.typeaheadScrollable && this.typeaheadOptionsInScrollableView < this.matches.length;\n\n    if (this.typeaheadScrollable) {\n      setTimeout(() => {\n        this.setScrollableMode();\n      });\n    }\n\n    if (this.typeaheadIsFirstItemActive && this._matches.length > 0) {\n      this.setActive(this._matches[0]);\n\n      if (this._active?.isHeader()) {\n        this.nextActiveMatch();\n      }\n    }\n\n    if (this._active && !this.typeaheadIsFirstItemActive) {\n      const concurrency = this._matches.find(match => match.value === this._active?.value);\n\n      if (concurrency) {\n        this.selectActive(concurrency);\n\n        return;\n      }\n\n      this.active = void 0;\n    }\n  }\n\n  get isTopPosition(): boolean {\n    return this.element.nativeElement.classList.contains('top');\n  }\n\n  get optionsListTemplate(): TemplateRef<TypeaheadOptionListContext> | undefined {\n    return this.parent ? this.parent.optionsListTemplate : undefined;\n  }\n\n  get isAnimated(): boolean {\n    return this.parent ? this.parent.isAnimated : false;\n  }\n\n  get adaptivePosition(): boolean {\n    return this.parent ? this.parent.adaptivePosition : false;\n  }\n\n  get typeaheadScrollable(): boolean {\n    return this.parent ? this.parent.typeaheadScrollable : false;\n  }\n\n  get typeaheadOptionsInScrollableView(): number {\n    return this.parent ? this.parent.typeaheadOptionsInScrollableView : 5;\n  }\n\n  get typeaheadIsFirstItemActive(): boolean {\n    return this.parent ? this.parent.typeaheadIsFirstItemActive : true;\n  }\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  get itemTemplate(): TemplateRef<TypeaheadOptionItemContext> | undefined {\n    return this.parent ? this.parent.typeaheadItemTemplate : undefined;\n  }\n\n  get canSelectItemsOnBlur(): boolean {\n    return !!this.parent?.selectItemOnBlur;\n  }\n\n  selectActiveMatch(isActiveItemChanged?: boolean): void {\n    if (this._active && this.parent?.typeaheadSelectFirstItem) {\n      this.selectMatch(this._active);\n    }\n\n    if (!this.parent?.typeaheadSelectFirstItem && isActiveItemChanged) {\n      this.selectMatch(this._active);\n    }\n  }\n\n  activeChanged(): void {\n    if (!this._active) {\n      return;\n    }\n    const index = this.matches.indexOf(this._active);\n    this.activeChangeEvent.emit(`${this.popupId}-${index}`);\n  }\n\n  prevActiveMatch(): void {\n    if (!this._active) {\n      return;\n    }\n\n    const index = this.matches.indexOf(this._active);\n    this.setActive(this.matches[\n      index - 1 < 0 ? this.matches.length - 1 : index - 1\n      ]);\n\n    if (this._active.isHeader()) {\n      this.prevActiveMatch();\n    }\n\n    if (this.typeaheadScrollable) {\n      this.scrollPrevious(index);\n    }\n  }\n\n  nextActiveMatch(): void {\n    const index = this._active ? this.matches.indexOf(this._active) : -1;\n    this.setActive(this.matches[\n      index + 1 > this.matches.length - 1 ? 0 : index + 1\n      ]);\n\n    if (this._active?.isHeader()) {\n      this.nextActiveMatch();\n    }\n\n    if (this.typeaheadScrollable) {\n      this.scrollNext(index);\n    }\n  }\n\n  selectActive(value: TypeaheadMatch): void {\n    this.isFocused = true;\n    this.setActive(value);\n  }\n\n  highlight(match: TypeaheadMatch, query: string[] | string): string {\n    let itemStr: string = match.value;\n    let itemStrHelper: string = (this.parent && this.parent.typeaheadLatinize\n      ? latinize(itemStr)\n      : itemStr).toLowerCase();\n    let startIdx: number;\n    let tokenLen: number;\n    // Replaces the capture string with the same string inside of a \"strong\" tag\n    if (typeof query === 'object') {\n      const queryLen: number = query.length;\n      for (let i = 0; i < queryLen; i += 1) {\n        // query[i] is already latinized and lower case\n        startIdx = itemStrHelper.indexOf(query[i]);\n        tokenLen = query[i].length;\n        if (startIdx >= 0 && tokenLen > 0) {\n          itemStr =\n            `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\n            `${itemStr.substring(startIdx + tokenLen)}`;\n          itemStrHelper =\n            `${itemStrHelper.substring(0, startIdx)}        ${' '.repeat(tokenLen)}         ` +\n            `${itemStrHelper.substring(startIdx + tokenLen)}`;\n        }\n      }\n    } else if (query) {\n      // query is already latinized and lower case\n      startIdx = itemStrHelper.indexOf(query);\n      tokenLen = query.length;\n      if (startIdx >= 0 && tokenLen > 0) {\n        itemStr =\n          `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\n          `${itemStr.substring(startIdx + tokenLen)}`;\n      }\n    }\n\n    return itemStr;\n  }\n\n  @HostListener('mouseleave')\n  @HostListener('blur')\n  focusLost(): void {\n    this.isFocused = false;\n    if (!this.canSelectItemsOnBlur) {\n      this.setActive(void 0);\n    }\n  }\n\n  isActive(value: TypeaheadMatch): boolean {\n    return this.active === value;\n  }\n\n  selectMatch(value?: TypeaheadMatch, event?: Event): boolean {\n    if (event) {\n      event.stopPropagation();\n      event.preventDefault();\n    }\n    this.parent?.changeModel(value);\n    setTimeout(() => this.parent?.typeaheadOnSelect.emit(value), 0);\n\n    return false;\n  }\n\n  setScrollableMode(): void {\n    if (!this.ulElement) {\n      this.ulElement = this.element;\n    }\n\n    if (this.liElements?.first) {\n      const ulStyles = Utils.getStyles(this.ulElement.nativeElement);\n      const liStyles = Utils.getStyles(this.liElements.first.nativeElement);\n      const ulPaddingBottom = parseFloat((ulStyles['padding-bottom'] ? ulStyles['padding-bottom'] : '')\n        .replace('px', ''));\n      const ulPaddingTop = parseFloat((ulStyles['padding-top'] ? ulStyles['padding-top'] : '0')\n        .replace('px', ''));\n      const optionHeight = parseFloat((liStyles.height ? liStyles.height : '0')\n        .replace('px', ''));\n      const height = this.typeaheadOptionsInScrollableView * optionHeight;\n      this.guiHeight = `${height + ulPaddingTop + ulPaddingBottom}px`;\n    }\n\n    this.renderer.setStyle(this.element.nativeElement, 'visibility', 'visible');\n  }\n\n  scrollPrevious(index: number): void {\n    if (index === 0) {\n      this.scrollToBottom();\n\n      return;\n    }\n    if (this.liElements && this.ulElement) {\n      const liElement = this.liElements.toArray()[index - 1];\n      if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n        this.ulElement.nativeElement.scrollTop = liElement.nativeElement.offsetTop;\n      }\n    }\n  }\n\n  scrollNext(index: number): void {\n    if (index + 1 > this.matches.length - 1) {\n      this.scrollToTop();\n\n      return;\n    }\n    if (this.liElements && this.ulElement) {\n      const liElement = this.liElements.toArray()[index + 1];\n      if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n        this.ulElement.nativeElement.scrollTop =\n          liElement.nativeElement.offsetTop -\n          Number(this.ulElement.nativeElement.offsetHeight) +\n          Number(liElement.nativeElement.offsetHeight);\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.positionServiceSubscription.unsubscribe();\n  }\n\n  protected setActive(value?: TypeaheadMatch): void {\n    this._active = value;\n    let preview;\n    if (!(this._active == null || this._active.isHeader())) {\n      preview = value;\n    }\n    this.parent?.typeaheadOnPreview.emit(preview);\n  }\n\n  private isScrolledIntoView(elem: HTMLElement): boolean {\n    if (!this.ulElement) {\n      return false;\n    }\n    const containerViewTop: number = this.ulElement.nativeElement.scrollTop;\n    const containerViewBottom = containerViewTop + Number(this.ulElement.nativeElement.offsetHeight);\n    const elemTop = elem.offsetTop;\n    const elemBottom = elemTop + elem.offsetHeight;\n\n    return ((elemBottom <= containerViewBottom) && (elemTop >= containerViewTop));\n  };\n\n  private scrollToBottom(): void {\n    if (!this.ulElement?.nativeElement) {\n      return;\n    }\n    this.ulElement.nativeElement.scrollTop = this.ulElement.nativeElement.scrollHeight;\n  }\n\n  private scrollToTop(): void {\n    if (!this.ulElement?.nativeElement) {\n      return;\n    }\n    this.ulElement.nativeElement.scrollTop = 0;\n  }\n}\n","<!-- inject options list template -->\n<ng-template [ngTemplateOutlet]=\"optionsListTemplate || bs4Template\"\n             [ngTemplateOutletContext]=\"{\n               matches: matches,\n               itemTemplate: itemTemplate || bsItemTemplate,\n               query: query,\n               $implicit: typeaheadTemplateMethods\n             }\">\n</ng-template>\n\n<!-- default options item template -->\n<ng-template #bsItemTemplate let-match=\"match\" let-query=\"query\">\n  <span [innerHtml]=\"highlight(match, query)\"></span>\n</ng-template>\n\n<!-- Bootstrap 4 options list template -->\n<ng-template #bs4Template>\n  <ng-template ngFor let-match let-i=\"index\" [ngForOf]=\"matches\">\n    <h6 *ngIf=\"match.isHeader()\" class=\"dropdown-header\">{{ match }}</h6>\n    <ng-template [ngIf]=\"!match.isHeader()\">\n      <button #liElements\n              [id]=\"popupId + '-' + i\"\n              role=\"option\"\n              [@typeaheadAnimation]=\"animationState\"\n              class=\"dropdown-item\"\n              (click)=\"selectMatch(match, $event)\"\n              (mouseenter)=\"selectActive(match)\"\n              [class.active]=\"isActive(match)\">\n        <ng-template [ngTemplateOutlet]=\"itemTemplate || bsItemTemplate\"\n                     [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\n        </ng-template>\n      </button>\n    </ng-template>\n  </ng-template>\n</ng-template>\n","import { Injectable } from '@angular/core';\n\n/** Default values provider for typeahead */\n@Injectable({ providedIn: 'root' })\nexport class TypeaheadConfig {\n  /** sets use adaptive position */\n  adaptivePosition = false;\n  /** turn on/off animation */\n  isAnimated = false;\n  /** used to hide results on blur */\n  hideResultsOnBlur = true;\n  /** if true, typeahead will cancel async request on blur */\n  cancelRequestOnFocusLost = false;\n  /** used to choose the first item in typeahead container */\n  selectFirstItem = true;\n  /** used to active/inactive the first item in typeahead container */\n  isFirstItemActive = true;\n  /** used to choose set minimal no of characters that needs to\n   * be entered before typeahead kicks-in\n   */\n  minLength = 1;\n  /**\n   * used to choose item on blur event\n   */\n  selectItemOnBlur = false;\n}\n","import {\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n  TemplateRef,\n  ViewContainerRef\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\n\nimport { EMPTY, from, isObservable, Observable, Subscription } from 'rxjs';\nimport { debounceTime, filter, mergeMap, switchMap, tap, toArray } from 'rxjs/operators';\nimport { TypeaheadOptionItemContext, TypeaheadOptionListContext } from './models';\n\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadMatch } from './typeahead-match.class';\nimport { TypeaheadOrder } from './typeahead-order.class';\nimport { getValueFromObject, latinize, tokenize } from './typeahead-utils';\nimport { TypeaheadConfig } from './typeahead.config';\n\n// eslint-disable-next-line\ntype TypeaheadOption = string | Record<string | number, any>;\ntype TypeaheadOptionArr = TypeaheadOption[] | Observable<TypeaheadOption>;\n\n@Directive({\n  selector: '[typeahead]',\n  exportAs: 'bs-typeahead',\n  // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n  host: {\n    '[attr.aria-activedescendant]': 'activeDescendant',\n    '[attr.aria-owns]': 'isOpen ? this._container.popupId : null',\n    '[attr.aria-expanded]': 'isOpen',\n    '[attr.aria-autocomplete]': 'list'\n  }\n})\nexport class TypeaheadDirective implements OnInit, OnDestroy {\n  /** options source, can be Array of strings, objects or\n   * an Observable for external matching process\n   */\n  @Input() typeahead?: TypeaheadOptionArr;\n  /** minimal no of characters that needs to be entered before\n   * typeahead kicks-in. When set to 0, typeahead shows on focus with full\n   * list of options (limited as normal by typeaheadOptionsLimit)\n   */\n  @Input() typeaheadMinLength = 1;\n  /** sets use adaptive position */\n  @Input() adaptivePosition = false;\n  /** turn on/off animation */\n  @Input() isAnimated = false;\n  /** minimal wait time after last character typed before typeahead kicks-in */\n  @Input() typeaheadWaitMs = 0;\n  /** maximum length of options items list. The default value is 20 */\n  @Input() typeaheadOptionsLimit?: number;\n  /** when options source is an array of objects, the name of field\n   * that contains the options value, we use array item as option in case\n   * of this field is missing. Supports nested properties and methods.\n   */\n  @Input() typeaheadOptionField?: string;\n  /** when options source is an array of objects, the name of field that\n   * contains the group value, matches are grouped by this field when set.\n   */\n  @Input() typeaheadGroupField?: string;\n  /** Used to specify a custom order of matches. When options source is an array of objects\n   * a field for sorting has to be set up. In case of options source is an array of string,\n   * a field for sorting is absent. The ordering direction could be changed to ascending or descending.\n   */\n  @Input() typeaheadOrderBy?: TypeaheadOrder;\n  /** should be used only in case of typeahead attribute is Observable of array.\n   * If true - loading of options will be async, otherwise - sync.\n   * true make sense if options array is large.\n   */\n  @Input() typeaheadAsync?: boolean;\n  /** match latin symbols.\n   * If true the word súper would match super and vice versa.\n   */\n  @Input() typeaheadLatinize = true;\n  /** Can be use to search words by inserting a single white space between each characters\n   *  for example 'C a l i f o r n i a' will match 'California'.\n   */\n  @Input() typeaheadSingleWords = true;\n  /** should be used only in case typeaheadSingleWords attribute is true.\n   * Sets the word delimiter to break words. Defaults to space.\n   */\n  @Input() typeaheadWordDelimiters = ' ';\n  /** Can be used to conduct a search of multiple items and have suggestion not for the\n   * whole value of the input but for the value that comes after a delimiter provided via\n   * typeaheadMultipleSearchDelimiters attribute. This option can only be used together with\n   * typeaheadSingleWords option if typeaheadWordDelimiters and typeaheadPhraseDelimiters\n   * are different from typeaheadMultipleSearchDelimiters to avoid conflict in determining\n   * when to delimit multiple searches and when a single word.\n   */\n  @Input() typeaheadMultipleSearch?: boolean;\n  /** should be used only in case typeaheadMultipleSearch attribute is true.\n   * Sets the multiple search delimiter to know when to start a new search. Defaults to comma.\n   * If space needs to be used, then explicitly set typeaheadWordDelimiters to something else than space\n   * because space is used by default OR set typeaheadSingleWords attribute to false if you don't need\n   * to use it together with multiple search.\n   */\n  @Input() typeaheadMultipleSearchDelimiters = ',';\n  /** should be used only in case typeaheadSingleWords attribute is true.\n   * Sets the word delimiter to match exact phrase.\n   * Defaults to simple and double quotes.\n   */\n  @Input() typeaheadPhraseDelimiters = '\\'\"';\n  /** used to specify a custom item template.\n   * Template variables exposed are called item and index;\n   */\n  @Input() typeaheadItemTemplate?: TemplateRef<TypeaheadOptionItemContext>;\n  /** used to specify a custom options list template.\n   * Template variables: matches, itemTemplate, query\n   */\n  @Input() optionsListTemplate?: TemplateRef<TypeaheadOptionListContext>;\n  /** specifies if typeahead is scrollable  */\n  @Input() typeaheadScrollable = false;\n  /** specifies number of options to show in scroll view  */\n  @Input() typeaheadOptionsInScrollableView = 5;\n  /** used to hide result on blur */\n  @Input() typeaheadHideResultsOnBlur?: boolean;\n  /** fired when an options list was opened and the user clicked Tab\n   * If a value equal true, it will be chosen first or active item in the list\n   * If value equal false, it will be chosen an active item in the list or nothing\n   */\n  @Input() typeaheadSelectFirstItem = true;\n  /** makes active first item in a list */\n  @Input() typeaheadIsFirstItemActive = true;\n  /** fired when 'busy' state of this component was changed,\n   * fired on async mode only, returns boolean\n   */\n  @Output() typeaheadLoading = new EventEmitter<boolean>();\n  /** fired on every key event and returns true\n   * in case of matches are not detected\n   */\n  @Output() typeaheadNoResults = new EventEmitter<boolean>();\n  /** fired when option was selected, return object with data of this option. */\n  @Output() typeaheadOnSelect = new EventEmitter<TypeaheadMatch>();\n  /** fired when option was previewed, return object with data of this option. */\n  @Output() typeaheadOnPreview = new EventEmitter<TypeaheadMatch>();\n  /** fired when blur event occurs. returns the active item */\n  @Output() typeaheadOnBlur = new EventEmitter<TypeaheadMatch>();\n\n  /**\n   * A selector specifying the element the typeahead should be appended to.\n   */\n  @Input() container?: string;\n\n  /** This attribute indicates that the dropdown should be opened upwards */\n  @Input() dropup = false;\n\n  // not yet implemented\n  /** if false restrict model values to the ones selected from the popup only will be provided */\n  // @Input() protected typeaheadEditable:boolean;\n  /** if false the first match automatically will not be focused as you type */\n  // @Input() protected typeaheadFocusFirst:boolean;\n  /** format the ng-model result after selection */\n  // @Input() protected typeaheadInputFormatter:any;\n  /** if true automatically select an item when there is one option that exactly matches the user input */\n  // @Input() protected typeaheadSelectOnExact:boolean;\n  /**  if true select the currently highlighted match on blur */\n  // @Input() protected typeaheadSelectOnBlur:boolean;\n  /**  if false don't focus the input element the typeahead directive is associated with on selection */\n    // @Input() protected typeaheadFocusOnSelect:boolean;\n\n  activeDescendant?: string;\n  isOpen = false;\n  list = 'list';\n  _container?: TypeaheadContainerComponent;\n  isActiveItemChanged = false;\n  isFocused = false;\n  cancelRequestOnFocusLost = false;\n  selectItemOnBlur = false;\n  protected keyUpEventEmitter = new EventEmitter<string>();\n  protected placement = 'bottom left';\n  protected _matches: TypeaheadMatch[] = [];\n\n  private _typeahead: ComponentLoader<TypeaheadContainerComponent>;\n  private _subscriptions: Subscription[] = [];\n  private _allEnteredValue?: string;\n  private _outsideClickListener: () => void = () => void 0;\n\n  constructor(\n    cis: ComponentLoaderFactory,\n    config: TypeaheadConfig,\n    private changeDetection: ChangeDetectorRef,\n    private element: ElementRef,\n    private ngControl: NgControl,\n    private renderer: Renderer2,\n    viewContainerRef: ViewContainerRef\n  ) {\n\n    this._typeahead = cis.createLoader<TypeaheadContainerComponent>(\n      element,\n      viewContainerRef,\n      renderer\n    )\n      .provide({ provide: TypeaheadConfig, useValue: config });\n\n    Object.assign(this,\n      {\n        typeaheadHideResultsOnBlur: config.hideResultsOnBlur,\n        cancelRequestOnFocusLost: config.cancelRequestOnFocusLost,\n        typeaheadSelectFirstItem: config.selectFirstItem,\n        typeaheadIsFirstItemActive: config.isFirstItemActive,\n        typeaheadMinLength: config.minLength,\n        adaptivePosition: config.adaptivePosition,\n        isAnimated: config.isAnimated,\n        selectItemOnBlur: config.selectItemOnBlur\n      }\n    );\n  }\n\n  get matches(): TypeaheadMatch[] {\n    return this._matches;\n  }\n\n  ngOnInit(): void {\n    this.typeaheadOptionsLimit = this.typeaheadOptionsLimit || 20;\n\n    this.typeaheadMinLength =\n      this.typeaheadMinLength === void 0 ? 1 : this.typeaheadMinLength;\n\n    // async should be false in case of array\n    if (this.typeaheadAsync === undefined && !(isObservable(this.typeahead))) {\n      this.typeaheadAsync = false;\n    }\n\n    if (isObservable(this.typeahead)) {\n      this.typeaheadAsync = true;\n    }\n\n    if (this.typeaheadAsync) {\n      this.asyncActions();\n    } else {\n      this.syncActions();\n    }\n\n    this.checkDelimitersConflict();\n  }\n\n  @HostListener('input', ['$event'])\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  onInput(e: any): void {\n    // For `<input>`s, use the `value` property. For others that don't have a\n    // `value` (such as `<span contenteditable=\"true\">`), use either\n    // `textContent` or `innerText` (depending on which one is supported, i.e.\n    // Firefox or IE).\n    const value =\n      e.target.value !== undefined\n        ? e.target.value\n        : e.target.textContent !== undefined\n        ? e.target.textContent\n        : e.target.innerText;\n\n    if (value != null && value.trim().length >= this.typeaheadMinLength) {\n      this.typeaheadLoading.emit(true);\n      this.keyUpEventEmitter.emit(e.target.value);\n    } else {\n      this.typeaheadLoading.emit(false);\n      this.typeaheadNoResults.emit(false);\n      this.hide();\n    }\n  }\n\n  @HostListener('keyup', ['$event'])\n  onChange(event: KeyboardEvent): void {\n    if (this._container) {\n      // esc\n      if (event.keyCode === 27 || event.key === 'Escape') {\n        this.hide();\n\n        return;\n      }\n\n      // up\n      if (event.keyCode === 38 || event.key === 'ArrowUp') {\n        this.isActiveItemChanged = true;\n        this._container.prevActiveMatch();\n\n        return;\n      }\n\n      // down\n      if (event.keyCode === 40 || event.key === 'ArrowDown') {\n        this.isActiveItemChanged = true;\n        this._container.nextActiveMatch();\n\n        return;\n      }\n\n      // enter\n      if (event.keyCode === 13 || event.key === 'Enter') {\n        this._container.selectActiveMatch();\n\n        return;\n      }\n    }\n  }\n\n  @HostListener('click')\n  @HostListener('focus')\n  onFocus(): void {\n    this.isFocused = true;\n    // add setTimeout to fix issue #5251\n    // to get and emit updated value if it's changed on focus\n    setTimeout(() => {\n      if (this.typeaheadMinLength === 0) {\n        this.typeaheadLoading.emit(true);\n        this.keyUpEventEmitter.emit(this.element.nativeElement.value || '');\n      }\n    }, 0);\n  }\n\n  @HostListener('blur')\n  onBlur(): void {\n    this.isFocused = false;\n    if (this._container && !this._container.isFocused) {\n      this.typeaheadOnBlur.emit(this._container.active);\n    }\n\n    if (!this.container && this._matches?.length === 0) {\n      this.typeaheadOnBlur.emit(new TypeaheadMatch(\n        this.element.nativeElement.value,\n        this.element.nativeElement.value,\n        false));\n    }\n  }\n\n  @HostListener('keydown', ['$event'])\n  onKeydown(event: KeyboardEvent): void {\n    // no container - no problems\n    if (!this._container) {\n      return;\n    }\n\n    if (event.keyCode === 9 || event.key === 'Tab') {\n      this.onBlur();\n    }\n\n    if (event.keyCode === 9 || event.key === 'Tab' || event.keyCode === 13 || event.key === 'Enter') {\n      event.preventDefault();\n      if (this.typeaheadSelectFirstItem) {\n        this._container.selectActiveMatch();\n\n        return;\n      }\n\n      if (!this.typeaheadSelectFirstItem) {\n        this._container.selectActiveMatch(this.isActiveItemChanged);\n        this.isActiveItemChanged = false;\n        this.hide();\n      }\n    }\n  }\n\n  changeModel(match?: TypeaheadMatch): void {\n    if (!match) {\n      return;\n    }\n    let valueStr: string;\n    if (this.typeaheadMultipleSearch && this._allEnteredValue) {\n      const tokens = this._allEnteredValue.split(new RegExp(`([${this.typeaheadMultipleSearchDelimiters}]+)`));\n      this._allEnteredValue = tokens.slice(0, tokens.length - 1).concat(match.value).join('');\n      valueStr = this._allEnteredValue;\n    } else {\n      valueStr = match.value;\n    }\n    this.ngControl.viewToModelUpdate(valueStr);\n    this.ngControl.control?.setValue(valueStr);\n    this.changeDetection.markForCheck();\n    this.hide();\n  }\n\n  show(): void {\n    this._typeahead\n      .attach(TypeaheadContainerComponent)\n      .to(this.container)\n      .position({ attachment: `${this.dropup ? 'top' : 'bottom'} left` })\n      .show({\n        typeaheadRef: this,\n        placement: this.placement,\n        animation: false,\n        dropup: this.dropup\n      });\n\n    this._outsideClickListener = this.renderer\n      .listen('document', 'click', (event: MouseEvent) => {\n        if (this.typeaheadMinLength === 0 && this.element.nativeElement.contains(event.target)) {\n          return;\n        }\n        if (!this.typeaheadHideResultsOnBlur || this.element.nativeElement.contains(event.target)) {\n          return;\n        }\n        this.onOutsideClick();\n      });\n\n    if (!this._typeahead.instance || !this.ngControl.control) {\n      return;\n    }\n\n    this._container = this._typeahead.instance;\n    this._container.parent = this;\n    // This improves the speed as it won't have to be done for each list item\n\n    const normalizedQuery = (this.typeaheadLatinize\n      ? latinize(this.ngControl.control.value)\n      : this.ngControl.control.value)\n      .toString()\n      .toLowerCase();\n\n    this._container.query = this.tokenizeQuery(normalizedQuery);\n\n    this._container.matches = this._matches;\n    this.element.nativeElement.focus();\n\n    this._container.activeChangeEvent.subscribe((activeId: string) => {\n      this.activeDescendant = activeId;\n      this.changeDetection.markForCheck();\n    });\n    this.isOpen = true;\n  }\n\n  hide(): void {\n    if (this._typeahead.isShown) {\n      this._typeahead.hide();\n      this._outsideClickListener();\n      this._container = void 0;\n      this.isOpen = false;\n      this.changeDetection.markForCheck();\n    }\n    this.typeaheadOnPreview.emit();\n  }\n\n  onOutsideClick(): void {\n    if (this._container && !this._container.isFocused) {\n      this.hide();\n    }\n  }\n\n  ngOnDestroy() {\n    // clean up subscriptions\n    for (const sub of this._subscriptions) {\n      sub.unsubscribe();\n    }\n    this._typeahead.dispose();\n  }\n\n  protected asyncActions(): void {\n    this._subscriptions.push(\n      this.keyUpEventEmitter\n        .pipe(\n          debounceTime<string>(this.typeaheadWaitMs),\n          tap(value => this._allEnteredValue = value),\n          switchMap(() => {\n            if (!this.typeahead) {\n              return EMPTY;\n            }\n            return this.typeahead;\n          })\n        )\n        .subscribe((matches) => {\n          this.finalizeAsyncCall(matches);\n        })\n    );\n  }\n\n  protected syncActions(): void {\n    this._subscriptions.push(\n      this.keyUpEventEmitter\n        .pipe(\n          debounceTime<string>(this.typeaheadWaitMs),\n          mergeMap((value: string) => {\n            this._allEnteredValue = value;\n            const normalizedQuery = this.normalizeQuery(value);\n\n            if (!this.typeahead) {\n              return EMPTY;\n            }\n\n            const typeahead = isObservable(this.typeahead) ? this.typeahead : from(this.typeahead);\n\n            return typeahead\n              .pipe(\n                filter((option: TypeaheadOption) => {\n                  return !!option && this.testMatch(this.normalizeOption(option), normalizedQuery);\n                }),\n                toArray()\n              );\n          })\n        )\n        .subscribe((matches: TypeaheadOption[]) => {\n          this.finalizeAsyncCall(matches);\n        })\n    );\n  }\n\n  protected normalizeOption(option: TypeaheadOption): string {\n    const optionValue: string = getValueFromObject(\n      option,\n      this.typeaheadOptionField\n    );\n    const normalizedOption = this.typeaheadLatinize\n      ? latinize(optionValue)\n      : optionValue;\n\n    return normalizedOption.toLowerCase();\n  }\n\n  protected tokenizeQuery(currentQuery: string | string[]): string | string[] {\n\n    let query = currentQuery;\n    if (this.typeaheadMultipleSearch && this.typeaheadSingleWords) {\n      if (!this.haveCommonCharacters(`${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`,\n        this.typeaheadMultipleSearchDelimiters)) {\n        // single words and multiple search delimiters are different, can be used together\n        query = tokenize(\n          query as string,\n          this.typeaheadWordDelimiters,\n          this.typeaheadPhraseDelimiters,\n          this.typeaheadMultipleSearchDelimiters\n        );\n      }\n    } else if (this.typeaheadSingleWords) {\n      query = tokenize(\n        query as string,\n        this.typeaheadWordDelimiters,\n        this.typeaheadPhraseDelimiters\n      );\n    } else {\n      // multiple searches\n      query = tokenize(\n        query as string,\n        void 0,\n        void 0,\n        this.typeaheadMultipleSearchDelimiters\n      );\n    }\n\n    return query;\n  }\n\n  protected normalizeQuery(value: string): string | string[] {\n    // If singleWords, break model here to not be doing extra work on each iteration\n    let normalizedQuery: string | string[] = (this.typeaheadLatinize\n      ? latinize(value)\n      : value)\n      .toString()\n      .toLowerCase();\n\n    normalizedQuery = this.tokenizeQuery(normalizedQuery);\n\n    return normalizedQuery;\n  }\n\n  protected testMatch(match: string, test: string[] | string): boolean {\n    let spaceLength: number;\n\n    if (typeof test === 'object') {\n      spaceLength = test.length;\n      for (let i = 0; i < spaceLength; i += 1) {\n        if (test[i].length > 0 && match.indexOf(test[i]) < 0) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n\n    return match.indexOf(test) >= 0;\n  }\n\n  protected finalizeAsyncCall(matches?: TypeaheadOption | TypeaheadOption[]): void {\n    this.prepareMatches(matches || []);\n\n    this.typeaheadLoading.emit(false);\n    this.typeaheadNoResults.emit(!this.hasMatches());\n\n    if (!this.hasMatches()) {\n      this.hide();\n\n      return;\n    }\n\n    if (!this.isFocused && this.cancelRequestOnFocusLost) {\n      return;\n    }\n\n    if (this._container && this.ngControl.control) {\n      // fix: remove usage of ngControl internals\n      const _controlValue = (this.typeaheadLatinize\n        ? latinize(this.ngControl.control.value)\n        : this.ngControl.control.value) || '';\n\n      // This improves the speed as it won't have to be done for each list item\n      const normalizedQuery = _controlValue.toString().toLowerCase();\n\n      this._container.query = this.tokenizeQuery(normalizedQuery);\n      this._container.matches = this._matches;\n    } else {\n      this.show();\n    }\n  }\n\n  protected prepareMatches(options: TypeaheadOption | TypeaheadOption[]): void {\n    const limited = options.slice(0, this.typeaheadOptionsLimit);\n    const sorted = !this.typeaheadOrderBy ? limited : this.orderMatches(limited);\n\n    if (this.typeaheadGroupField) {\n      let matches: TypeaheadMatch[] = [];\n\n      // extract all group names\n      const groups = sorted\n        .map((option: TypeaheadOption) =>\n          getValueFromObject(option, this.typeaheadGroupField)\n        )\n        .filter((v: string, i: number, a: string[]) => a.indexOf(v) === i);\n\n      groups.forEach((group: string) => {\n        // add group header to array of matches\n        matches.push(new TypeaheadMatch(group, group, true));\n\n        // add each item of group to array of matches\n        matches = matches.concat(\n          sorted\n            .filter((option: TypeaheadOption) =>\n              getValueFromObject(option, this.typeaheadGroupField) === group\n            )\n            .map((option: TypeaheadOption) =>\n              new TypeaheadMatch(\n                option,\n                getValueFromObject(option, this.typeaheadOptionField)\n              )\n            )\n        );\n      });\n\n      this._matches = matches;\n    } else {\n      this._matches = sorted.map(\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        (option: any) =>\n          new TypeaheadMatch(\n            option,\n            getValueFromObject(option, this.typeaheadOptionField)\n          )\n      );\n    }\n  }\n\n  protected orderMatches(options: TypeaheadOption[]): TypeaheadOption[] {\n    if (!options.length) {\n      return options;\n    }\n\n    if (this.typeaheadOrderBy !== null\n      && this.typeaheadOrderBy !== undefined\n      && typeof this.typeaheadOrderBy === 'object'\n      && Object.keys(this.typeaheadOrderBy).length === 0) {\n      console.error('Field and direction properties for typeaheadOrderBy have to be set according to documentation!');\n\n      return options;\n    }\n\n    const { field, direction } = (this.typeaheadOrderBy || {});\n\n    if (!direction || !(direction === 'asc' || direction === 'desc')) {\n      console.error('typeaheadOrderBy direction has to equal \"asc\" or \"desc\". Please follow the documentation.');\n\n      return options;\n    }\n\n    if (typeof options[0] === 'string') {\n      return direction === 'asc' ? options.sort() : options.sort().reverse();\n    }\n\n    if (!field || typeof field !== 'string') {\n      console.error('typeaheadOrderBy field has to set according to the documentation.');\n\n      return options;\n    }\n\n    return options.sort((a: TypeaheadOption, b: TypeaheadOption) => {\n      const stringA = getValueFromObject(a, field);\n      const stringB = getValueFromObject(b, field);\n\n      if (stringA < stringB) {\n        return direction === 'asc' ? -1 : 1;\n      }\n\n      if (stringA > stringB) {\n        return direction === 'asc' ? 1 : -1;\n      }\n\n      return 0;\n    });\n  }\n\n  protected hasMatches(): boolean {\n    return this._matches.length > 0;\n  }\n\n  protected checkDelimitersConflict(): void {\n    if (this.typeaheadMultipleSearch && this.typeaheadSingleWords\n      && (this.haveCommonCharacters(`${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`,\n        this.typeaheadMultipleSearchDelimiters))) {\n      throw new Error(`Delimiters used in typeaheadMultipleSearchDelimiters must be different\n          from delimiters used in typeaheadWordDelimiters (current value: ${this.typeaheadWordDelimiters}) and\n          typeaheadPhraseDelimiters (current value: ${this.typeaheadPhraseDelimiters}).\n          Please refer to the documentation`);\n    }\n  }\n\n  protected haveCommonCharacters(str1: string, str2: string) {\n    for (let i = 0; i < str1.length; i++) {\n      if (str1.charAt(i).indexOf(str2) > -1) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadDirective } from './typeahead.directive';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [TypeaheadContainerComponent, TypeaheadDirective],\n    exports: [TypeaheadContainerComponent, TypeaheadDirective]\n})\nexport class TypeaheadModule {\n  static forRoot(): ModuleWithProviders<TypeaheadModule> {\n    return {\n      ngModule: TypeaheadModule,\n      providers: [ComponentLoaderFactory, PositioningService]\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TypeaheadConfig"],"mappings":";;;;;;;;;;;;;;AAAa,MAAA,QAAQ,GAA8B;AAC/C,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG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"}