diff --git a/src/components/appForward.ts b/src/components/appForward.ts index 3d0f6d64..615df98c 100644 --- a/src/components/appForward.ts +++ b/src/components/appForward.ts @@ -15,7 +15,6 @@ class AppForward { this.closeBtn.addEventListener('click', () => { this.cleanup(); this.container.classList.remove('active'); - appSidebarRight.onSidebarScroll(); }); this.sendBtn.addEventListener('click', () => { diff --git a/src/components/avatar.ts b/src/components/avatar.ts index 5c4db71d..1c34732c 100644 --- a/src/components/avatar.ts +++ b/src/components/avatar.ts @@ -14,6 +14,7 @@ $rootScope.$on('avatar_update', (e: CustomEvent) => { export default class AvatarElement extends HTMLElement { private peerID: number; private isDialog = false; + public peerTitle: string; constructor() { super(); @@ -33,22 +34,23 @@ export default class AvatarElement extends HTMLElement { } static get observedAttributes(): string[] { - return ['peer', 'dialog'/* массив имён атрибутов для отслеживания их изменений */]; + return ['peer', 'dialog', 'peer-title'/* массив имён атрибутов для отслеживания их изменений */]; } attributeChangedCallback(name: string, oldValue: string, newValue: string) { // вызывается при изменении одного из перечисленных выше атрибутов if(name == 'peer') { this.peerID = +newValue; + this.update(); + } else if(name == 'peer-title') { + this.peerTitle = newValue; } else if(name == 'dialog') { this.isDialog = !!newValue; } - - this.update(); } public update() { - appProfileManager.putPhoto(this, this.peerID, this.isDialog); + appProfileManager.putPhoto(this, this.peerID, this.isDialog, this.peerTitle); } adoptedCallback() { diff --git a/src/components/bubbleGroups.ts b/src/components/bubbleGroups.ts index 7925b813..4b5944d1 100644 --- a/src/components/bubbleGroups.ts +++ b/src/components/bubbleGroups.ts @@ -1,4 +1,4 @@ -import { generatePathData } from "../lib/utils"; +import { generatePathData, $rootScope } from "../lib/utils"; export default class BubbleGroups { bubblesByGroups: Array<{timestamp: number, fromID: number, mid: number, group: HTMLDivElement[]}> = []; // map to group @@ -22,6 +22,11 @@ export default class BubbleGroups { let timestamp = message.date; let fromID = message.fromID; let group: HTMLDivElement[]; + + // fix for saved messages forward to self + if(fromID == $rootScope.myID && $rootScope.selectedPeerID == $rootScope.myID && message.fwdFromID == fromID) { + fromID = -fromID; + } // try to find added //this.removeBubble(message.mid); @@ -48,7 +53,7 @@ export default class BubbleGroups { this.groups.push(group = [bubble]); } - //console.log('addBubble', bubble, message.mid, fromID, reverse, group); + //console.log('[BUBBLE]: addBubble', bubble, message.mid, fromID, reverse, group); this.bubblesByGroups[reverse ? 'unshift' : 'push']({timestamp, fromID, mid: message.mid, group}); this.updateGroup(group); @@ -117,7 +122,7 @@ export default class BubbleGroups { let first = group[0]; - //console.log('updateGroup', group, first); + //console.log('[BUBBLE]: updateGroup', group, first); if(group.length == 1) { first.classList.add('is-group-first', 'is-group-last'); diff --git a/src/components/chatInput.ts b/src/components/chatInput.ts index f1a4ffee..b2835bc5 100644 --- a/src/components/chatInput.ts +++ b/src/components/chatInput.ts @@ -471,7 +471,6 @@ export class ChatInput { }; } else { this.emoticonsDropdown.classList.add('active'); - this.emoticonsLazyLoadQueue.check(); } this.toggleEmoticons.classList.add('active'); @@ -513,11 +512,7 @@ export class ChatInput { }, ''); }; - public onMessageSent(scrollDown = true, clearInput = true) { - if(scrollDown) { - appImManager.scroll.scrollTop = appImManager.scroll.scrollHeight; - } - + public onMessageSent(clearInput = true) { let dialog = appMessagesManager.getDialogByPeerID(appImManager.peerID)[0]; if(dialog && dialog.top_message) { appMessagesManager.readHistory(appImManager.peerID, dialog.top_message); // lol @@ -556,7 +551,7 @@ export class ChatInput { }); } - this.onMessageSent(!this.editMsgID); + this.onMessageSent(); }; public setTopInfo(title: string, subtitle: string, input?: string, message?: any) { diff --git a/src/components/emoticonsDropdown.ts b/src/components/emoticonsDropdown.ts index c38d30a4..cf1ae996 100644 --- a/src/components/emoticonsDropdown.ts +++ b/src/components/emoticonsDropdown.ts @@ -39,7 +39,6 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, } }, () => { lottieLoader.checkAnimations(false, EMOTICONSSTICKERGROUP); - lazyLoadQueue.check(); // for stickers or gifs }); (tabs.firstElementChild.children[0] as HTMLLIElement).click(); // set emoji tab @@ -66,13 +65,11 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, setTimeout(() => { lottieLoader.checkAnimations(true, EMOTICONSSTICKERGROUP); - lazyLoadQueue.check(); }, 100); /* window.requestAnimationFrame(() => { window.requestAnimationFrame(() => { lottieLoader.checkAnimations(true, EMOTICONSSTICKERGROUP); - lazyLoadQueue.check(); }); }); */ }); @@ -106,32 +103,28 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, }; { - let categories = ["Smileys & Emotion", "Animals & Nature", "Food & Drink", "Travel & Places", "Activities", "Objects", /* "Symbols", */"Flags", "Skin Tones"]; + const categories = ["Smileys & Emotion", "Animals & Nature", "Food & Drink", "Travel & Places", "Activities", "Objects", /* "Symbols", */"Flags", "Skin Tones"]; let divs: { [category: string]: HTMLDivElement } = {}; - let keyCategory = Config.Emoji.keyCategory; let sorted: { - [category: string]: any[] + [category: string]: string[] } = {}; - for(let unified in Config.Emoji.emoji) { - // @ts-ignore - let details = Config.Emoji.emoji[unified]; - let category = details[keyCategory]; - - if(category == 'Symbols') category = 'Objects'; - - details.unified = unified; + for(let emoji in Config.Emoji) { + let details = Config.Emoji[emoji]; + let i = '' + details; + let category = categories[+i[0] - 1]; + if(!category) continue; // maybe it's skin tones if(!sorted[category]) sorted[category] = []; - sorted[category][details.sort_order] = details; + sorted[category][+i.slice(1) || 0] = emoji; } - //console.log('emoticons sorted:', sorted); + console.log('emoticons sorted:', sorted); - Object.keys(sorted).forEach(c => sorted[c].sort((a, b) => a - b)); + //Object.keys(sorted).forEach(c => sorted[c].sort((a, b) => a - b)); categories.pop(); delete sorted["Skin Tones"]; @@ -151,8 +144,8 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, div.append(titleDiv, itemsDiv); let emojis = sorted[category]; - emojis.forEach(details => { - let emoji = details.unified; + emojis.forEach(emoji => { + //let emoji = details.unified; //let emoji = (details.unified as string).split('-') //.reduce((prev, curr) => prev + String.fromCodePoint(parseInt(curr, 16)), ''); @@ -160,7 +153,7 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, let kek = RichTextProcessor.wrapRichText(emoji); if(!kek.includes('emoji')) { - console.log(details, emoji, kek, spanEmoji, emoji.length, new TextEncoder().encode(emoji)); + console.log(emoji, kek, spanEmoji, emoji.length, new TextEncoder().encode(emoji)); return; } @@ -182,7 +175,7 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, let prevCategoryIndex = 1; let menu = contentEmojiDiv.nextElementSibling.firstElementChild as HTMLUListElement; - let emojiScroll = new Scrollable(contentEmojiDiv, 'y', 500, 'EMOJI', null); + let emojiScroll = new Scrollable(contentEmojiDiv, 'y', 'EMOJI', null); emojiScroll.container.addEventListener('scroll', (e) => { prevCategoryIndex = emoticonsContentOnScroll(menu, heights, prevCategoryIndex, emojiScroll.container); }); @@ -238,7 +231,7 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, let document = appDocsManager.getDoc(fileID); if(document._ != 'documentEmpty') { appMessagesManager.sendFile(appImManager.peerID, document, {isMedia: true}); - appImManager.chatInputC.onMessageSent(true, false); + appImManager.chatInputC.onMessageSent(false); dropdown.classList.remove('active'); toggleEl.classList.remove('active'); } else { @@ -303,8 +296,6 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, if(prepend) stickersScroll.prepend(categoryDiv); else stickersScroll.append(categoryDiv); - setTimeout(() => lazyLoadQueue.check(), 0); - /* let scrollHeight = categoryDiv.scrollHeight; let prevHeight = heights[heights.length - 1] || 0; //console.log('scrollHeight', scrollHeight, categoryDiv, stickersDiv.childElementCount); @@ -325,7 +316,7 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, concated.forEach((el, i) => { heights[i] = (heights[i - 1] || 0) + el.height + (i == 0 ? paddingTop : 0); }); */ - let concated = Array.from(stickersScroll.splitUp.children); + let concated = Array.from(stickersScroll.splitUp.children) as HTMLElement[]; concated.forEach((el, i) => { heights[i] = (heights[i - 1] || 0) + el.scrollHeight + (i == 0 ? paddingTop : 0); }); @@ -343,9 +334,8 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, }; let prevCategoryIndex = 0; - let stickersScroll = new Scrollable(contentStickersDiv, 'y', 500, 'STICKERS', undefined, undefined, 2); + let stickersScroll = new Scrollable(contentStickersDiv, 'y', 'STICKERS', undefined, undefined, 2); stickersScroll.container.addEventListener('scroll', (e) => { - lazyLoadQueue.check(); lottieLoader.checkAnimations(); prevCategoryIndex = emoticonsContentOnScroll(menu, heights, prevCategoryIndex, stickersScroll.container, menuScroll); @@ -440,11 +430,7 @@ const initEmoticonsDropdown = (pageEl: HTMLDivElement, masonry.addEventListener('click', onMediaClick); - let scroll = new Scrollable(contentDiv, 'y', 500, 'GIFS', null); - - scroll.container.addEventListener('scroll', (e) => { - lazyLoadQueue.check(); - }); + let scroll = new Scrollable(contentDiv, 'y', 'GIFS', null); let width = 400; let maxSingleWidth = width - 100; diff --git a/src/components/lazyLoadQueue.ts b/src/components/lazyLoadQueue.ts index 8d9b9290..323e5500 100644 --- a/src/components/lazyLoadQueue.ts +++ b/src/components/lazyLoadQueue.ts @@ -1,5 +1,3 @@ -import { isElementInViewport } from "../lib/utils"; - type LazyLoadElement = { div: HTMLDivElement, load: () => Promise, @@ -17,14 +15,31 @@ export default class LazyLoadQueue { private log = console.log.bind(console, '[LL]:'); private debug = false; - constructor(private parallelLimit = 5) { + private observer: IntersectionObserver; + constructor(private parallelLimit = 5) { + this.observer = new IntersectionObserver(entries => { + for(let entry of entries) { + if(entry.isIntersecting) { + let target = entry.target as HTMLElement; + + for(let item of this.lazyLoadMedia) { + if(item.div == target) { + item.wasSeen = true; + this.processQueue(item); + break; + } + } + } + } + }); } public clear() { this.tempID--; this.lazyLoadMedia.length = 0; this.loadingMedia = 0; + this.observer.disconnect(); } public length() { @@ -45,24 +60,13 @@ export default class LazyLoadQueue { this.unlockResolve = null; } - public async processQueue(id?: number) { + public async processQueue(item?: LazyLoadElement) { if(this.parallelLimit > 0 && this.loadingMedia >= this.parallelLimit) return; - let item: LazyLoadElement; - let index: number; - - if(id !== undefined) item = this.lazyLoadMedia.splice(id, 1)[0]; - else { - item = this.lazyLoadMedia.findAndSplice(i => isElementInViewport(i.div)); - if(!item) { - let length = this.lazyLoadMedia.length; - for(index = length - 1; index >= 0; --index) { - if(this.lazyLoadMedia[index].wasSeen) { - item = this.lazyLoadMedia.splice(index, 1)[0]; - break; - } - } - } + if(item) { + this.lazyLoadMedia.findAndSplice(i => i == item); + } else { + item = this.lazyLoadMedia.findAndSplice(i => i.wasSeen); } if(item) { @@ -73,17 +77,17 @@ export default class LazyLoadQueue { this.debug && this.log('will load media', this.lockPromise, item); try { - if(this.lockPromise && false) { + if(this.lockPromise/* && false */) { let perf = performance.now(); await this.lockPromise; this.debug && this.log('waited lock:', performance.now() - perf); } - await new Promise((resolve, reject) => window.requestAnimationFrame(() => window.requestAnimationFrame(resolve))); + //await new Promise((resolve, reject) => window.requestAnimationFrame(() => window.requestAnimationFrame(resolve))); await item.load(); } catch(err) { - console.error('loadMediaQueue error:', err, item, id, index); + console.error('loadMediaQueue error:', err, item); } if(tempID == this.tempID) { @@ -98,39 +102,14 @@ export default class LazyLoadQueue { } } - public check(id?: number) { - if(id !== undefined) { - let {div, wasSeen} = this.lazyLoadMedia[id]; - if(!wasSeen && isElementInViewport(div)) { - //console.log('will load div by id:', div, div.getBoundingClientRect()); - this.lazyLoadMedia[id].wasSeen = true; - this.processQueue(id); - } - - return; - } - - let length = this.lazyLoadMedia.length; - for(let i = length - 1; i >= 0; --i) { - let {div, wasSeen} = this.lazyLoadMedia[i]; - - if(!wasSeen && isElementInViewport(div)) { - //console.log('will load div:', div); - this.lazyLoadMedia[i].wasSeen = true; - this.processQueue(i); - //this.lazyLoadMedia.splice(i, 1); - } - } - } - public push(el: LazyLoadElement) { - let id = this.lazyLoadMedia.push(el) - 1; + this.lazyLoadMedia.push(el); if(el.wasSeen) { - this.processQueue(id); + this.processQueue(el); } else { el.wasSeen = false; - this.check(id); + this.observer.observe(el.div); } } } diff --git a/src/components/scrollable copy.ts b/src/components/scrollable copy.ts deleted file mode 100644 index d154ad62..00000000 --- a/src/components/scrollable copy.ts +++ /dev/null @@ -1,420 +0,0 @@ -import { isElementInViewport, isScrolledIntoView, cancelEvent } from "../lib/utils"; - -export default class Scrollable { - public container: HTMLDivElement; - public thumb: HTMLDivElement; - - public type: string; - public side: string; - public scrollType: string; - public scrollSide: string; - public clientAxis: string; - - public scrollSize = -1; - public size = 0; - public thumbSize = 0; - - public hiddenElements: { - up: {element: Element, height: number}[], - down: {element: Element, height: number}[] - } = { - up: [], - down: [] - }; - public paddings = {up: 0, down: 0}; - - public paddingTopDiv: HTMLDivElement; - public paddingBottomDiv: HTMLDivElement; - - public splitUp: HTMLElement; - public splitOffset = 0; - - public onAddedBottom: () => void = null; - - public topObserver: IntersectionObserver; - public isTopIntersecting: boolean; - public bottomObserver: IntersectionObserver; - public isBottomIntersecting: boolean; - - public splitObserver: IntersectionObserver; - - constructor(public el: HTMLDivElement, x = false, y = true) { - this.container = document.createElement('div'); - this.container.classList.add('scrollable'); - - let arr = []; - for(let i = 0.001; i < 1; i += 0.001) arr.push(i); - this.topObserver = new IntersectionObserver(entries => { - let entry = entries[0]; - - console.log('top intersection:', entries, this.isTopIntersecting, entry.isIntersecting, entry.intersectionRatio > 0); - if(this.isTopIntersecting = entry.isIntersecting) { - this.onTopIntersection(entry); - } - console.log('top intersection end'); - }, {threshold: arr}); - - this.bottomObserver = new IntersectionObserver(entries => { - let entry = entries[0]; - - console.log('bottom intersection:', entries, this.isBottomIntersecting, entry.isIntersecting, entry.intersectionRatio > 0); - if(this.isBottomIntersecting = entry.isIntersecting) { - this.onBottomIntersection(entry); - - if(this.onScrolledBottom) this.onScrolledBottom(); - } - }, {threshold: arr}); - - this.splitObserver = new IntersectionObserver(entries => { - //console.log('splitObserver', entries); - - for(let entry of entries) { - if(!entry.isIntersecting/* && entry.target.parentElement */) { - let child = entry.target; - console.log('onscroll entry', entry.boundingClientRect, child, entry); - - let isTop = (entry.boundingClientRect.top + this.splitOffset) <= 0; - let isBottom = entry.rootBounds.height <= entry.boundingClientRect.top; - - let height = child.scrollHeight; - let toPush = {element: child, height}; - if(isTop) { - this.paddings.up += height; - this.hiddenElements.up.push(toPush); - child.parentElement.removeChild(child); - - console.log('onscroll sliced up', child); - - this.paddingTopDiv.style.height = this.paddings.up + 'px'; - } else if(isBottom) { - this.paddings.down += height; - this.hiddenElements.down.unshift(toPush); - child.parentElement.removeChild(child); - - console.log('onscroll sliced down', child); - - this.paddingBottomDiv.style.height = this.paddings.down + 'px'; - } - - //console.log('splitObserver', entry, entry.target, isTop); - } - } - }); - - if(x) { - this.container.classList.add('scrollable-x'); - this.type = 'width'; - this.side = 'left'; - this.scrollType = 'scrollWidth'; - this.scrollSide = 'scrollLeft'; - this.clientAxis = 'clientX'; - - let scrollHorizontally = (e: any) => { - e = window.event || e; - var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail))); - this.container.scrollLeft -= (delta * 20); - e.preventDefault(); - }; - if(this.container.addEventListener) { - // IE9, Chrome, Safari, Opera - this.container.addEventListener("mousewheel", scrollHorizontally, false); - // Firefox - this.container.addEventListener("DOMMouseScroll", scrollHorizontally, false); - } else { - // IE 6/7/8 - // @ts-ignore - this.container.attachEvent("onmousewheel", scrollHorizontally); - } - } else if(y) { - this.container.classList.add('scrollable-y'); - this.type = 'height'; - this.side = 'top'; - this.scrollType = 'scrollHeight'; - this.scrollSide = 'scrollTop'; - this.clientAxis = 'clientY'; - } else { - throw new Error('no side for scroll'); - } - - this.thumb = document.createElement('div'); - this.thumb.className = 'scrollbar-thumb'; - - // @ts-ignore - this.thumb.style[this.type] = '30px'; - - let onMouseMove = (e: MouseEvent) => { - let rect = this.thumb.getBoundingClientRect(); - - let diff: number; - // @ts-ignore - diff = e[this.clientAxis] - rect[this.side]; - // @ts-ignore - this.container[this.scrollSide] += diff * 0.5; - - console.log('onMouseMove', e, diff); - - cancelEvent(e); - }; - - this.thumb.addEventListener('mousedown', () => { - window.addEventListener('mousemove', onMouseMove); - - window.addEventListener('mouseup', () => { - window.removeEventListener('mousemove', onMouseMove); - }, {once: true}); - }); - - //this.container.addEventListener('mouseover', this.resize.bind(this)); // omg - window.addEventListener('resize', this.resize.bind(this)); - - this.paddingTopDiv = document.createElement('div'); - this.paddingTopDiv.classList.add('scroll-padding'); - this.paddingBottomDiv = document.createElement('div'); - this.paddingBottomDiv.classList.add('scroll-padding'); - - this.topObserver.observe(this.paddingTopDiv); - this.bottomObserver.observe(this.paddingBottomDiv); - - this.container.addEventListener('scroll', this.onScroll.bind(this)); - - //this.container.append(this.paddingTopDiv); - Array.from(el.children).forEach(c => this.container.append(c)); - //this.container.append(this.paddingBottomDiv); - - el.append(this.container);//container.append(el); - this.container.parentElement.append(this.thumb); - this.resize(); - } - - public resize() { - console.time('scroll resize'); - // @ts-ignore - this.scrollSize = this.container[this.scrollType]; - - let rect = this.container.getBoundingClientRect(); - - // @ts-ignore - this.size = rect[this.type]; - - if(!this.size || this.size == this.scrollSize) { - this.thumbSize = 0; - - // @ts-ignore - this.thumb.style[this.type] = this.thumbSize + 'px'; - console.timeEnd('scroll resize'); - return; - } - //if(!height) return; - - let divider = this.scrollSize / this.size / 0.5; - this.thumbSize = this.size / divider; - - if(this.thumbSize < 20) this.thumbSize = 20; - - // @ts-ignore - this.thumb.style[this.type] = this.thumbSize + 'px'; - - console.timeEnd('scroll resize'); - - // @ts-ignore - //console.log('onresize', thumb.style[type], thumbHeight, height); - } - - public setVirtualContainer(el?: HTMLElement) { - this.splitUp = el; - - this.hiddenElements.up.length = this.hiddenElements.down.length = 0; - this.paddings.up = this.paddings.down = 0; - - if(this.paddingTopDiv.parentElement) { - this.paddingTopDiv.style.height = ''; - this.paddingBottomDiv.style.height = ''; - } - - /* this.topObserver.unobserve(this.paddingTopDiv); - this.bottomObserver.unobserve(this.paddingBottomDiv); - - this.topObserver.observe(this.paddingTopDiv); - this.bottomObserver.observe(this.paddingBottomDiv); */ - - if(el) { - el.parentElement.insertBefore(this.paddingTopDiv, el); - el.parentNode.insertBefore(this.paddingBottomDiv, el.nextSibling); - } - } - - public onScroll() { - // @ts-ignore - //let st = container[scrollSide]; - - //console.time('scroll onScroll'); - - // @ts-ignore - if(this.container[this.scrollType] != this.scrollSize || this.thumbSize == 0) { - this.resize(); - } - - // @ts-ignore - let value = this.container[this.scrollSide] / (this.scrollSize - this.size) * 100; - let maxValue = 100 - (this.thumbSize / this.size * 100); - - //console.log('onscroll', container.scrollHeight, thumbHeight, height, value, maxValue); - - // @ts-ignore - this.thumb.style[this.side] = (value >= maxValue ? maxValue : value) + '%'; - - //console.timeEnd('scroll onScroll'); - } - - public async onTopIntersection2(entry: IntersectionObserverEntry) { - console.log('onTopIntersection'); - - if(this.hiddenElements.up.length && this.paddings.up) { - //while(this.isTopIntersecting && this.paddings.up) { - let child = this.hiddenElements.up.pop(); - - console.log('top returning from hidden', child); - - if(!child) { - this.paddings.up = 0; - this.paddingTopDiv.style.height = '0px'; - return; - } - - /* await new Promise((resolve, reject) => { - window.requestAnimationFrame(resolve); - }); */ - - this.splitUp.prepend(child.element); - this.paddings.up -= child.height; - - this.paddingTopDiv.style.height = this.paddings.up + 'px'; - //} - } else { - this.paddingTopDiv.style.height = '0px'; - } - } - - public async onTopIntersection(entry: IntersectionObserverEntry) { - console.log('onTopIntersection'); - - if(this.hiddenElements.up.length && this.paddings.up) { - let needHeight = entry.intersectionRect.height + this.splitOffset; - - while(needHeight > 0 && this.paddings.up) { - let child = this.hiddenElements.up.pop(); - - console.log('top returning from hidden', child); - - if(!child) { - this.paddings.up = 0; - this.paddingTopDiv.style.height = '0px'; - break; - } - - /* await new Promise((resolve, reject) => { - window.requestAnimationFrame(resolve); - }); */ - - this.splitUp.prepend(child.element); - let height = child.height || child.element.scrollHeight; - - needHeight -= height; - this.paddings.up -= height; - - this.paddingTopDiv.style.height = this.paddings.up + 'px'; - } - } else { - this.paddingTopDiv.style.height = '0px'; - } - } - - public onBottomIntersection2() { - console.log('onBottomIntersection'); - - if(this.hiddenElements.down.length && this.paddings.down) { - //while(this.isBottomIntersecting && this.paddings.down) { - let child = this.hiddenElements.down.shift(); - - if(!child) { - this.paddings.down = 0; - this.paddingBottomDiv.style.height = '0px'; - return;//break; - } - - this.splitUp.append(child.element); - - this.paddings.down -= child.height; - this.paddingBottomDiv.style.height = this.paddings.down + 'px'; - //} - - if(this.onAddedBottom) this.onAddedBottom(); - } else { - this.paddingBottomDiv.style.height = '0px'; - } - } - - public onBottomIntersection(entry: IntersectionObserverEntry) { - console.log('onBottomIntersection'); - - if(this.hiddenElements.down.length && this.paddings.down) { - let needHeight = entry.intersectionRect.height + this.splitOffset; - - while(needHeight > 0 && this.paddings.down) { - let child = this.hiddenElements.down.shift(); - - if(!child) { - this.paddings.down = 0; - this.paddingBottomDiv.style.height = '0px'; - break; - } - - this.splitUp.append(child.element); - let height = child.height || child.element.scrollHeight; - - needHeight -= height; - this.paddings.down -= height; - - this.paddingBottomDiv.style.height = this.paddings.down + 'px'; - } - - if(this.onAddedBottom) this.onAddedBottom(); - } else { - this.paddingBottomDiv.style.height = '0px'; - } - } - - public onScrolledBottom() { - - } - - public splitAppend(...smth: (string | Node)[]) { - this.splitUp.append(...smth); - - for(let node of smth) { - if(typeof(node) !== 'string') { - this.splitObserver.observe(node as Element); - } - } - } - - set scrollTop(y: number) { - this.container.scrollTop = y; - } - - get scrollTop() { - return this.container.scrollTop; - } - - get scrollHeight() { - return this.container.scrollHeight; - } - - get parentElement() { - return this.container.parentElement; - } - - get offsetHeight() { - return this.container.offsetHeight; - } -} diff --git a/src/components/scrollable_new.ts b/src/components/scrollable_new.ts index 8b414635..636bc349 100644 --- a/src/components/scrollable_new.ts +++ b/src/components/scrollable_new.ts @@ -1,4 +1,4 @@ -import { logger, deferredPromise, CancellablePromise } from "../lib/polyfill"; +import { logger } from "../lib/polyfill"; import smoothscroll from '../lib/smoothscroll'; (window as any).__forceSmoothScrollPolyfill__ = true; smoothscroll.polyfill(); @@ -30,35 +30,23 @@ Array.from($0.querySelectorAll('.bubble__container')).forEach(_el => { export default class Scrollable { public container: HTMLDivElement; - public type: string; - public side: string; - public translate: string; - public scrollType: string; - public scrollSide: string; - public clientAxis: string; - public clientSize: string; - - public scrollSize = -1; // it will be scrollHeight - public size = 0; // it will be outerHeight of container (not scrollHeight) - public splitUp: HTMLElement; public onScrolledTop: () => void = null; public onScrolledBottom: () => void = null; - public onScrolledTopFired = false; - public onScrolledBottomFired = false; public onScrollMeasure: number = null; public lastScrollTop: number = 0; - public scrollTopOffset: number = 0; private disableHoverTimeout: number = 0; private log: ReturnType; private debug = false; - - private measureMutex: CancellablePromise; + + private sentinelsObserver: IntersectionObserver; + private topSentinel: HTMLDivElement; + private bottomSentinel: HTMLDivElement; private observer: IntersectionObserver; private visible: Set; @@ -86,7 +74,7 @@ export default class Scrollable { this.visible.delete(element); } - constructor(public el: HTMLElement, axis: 'y' | 'x' = 'y', public splitOffset = 300, logPrefix = '', public appendTo = el, public onScrollOffset = splitOffset, public splitCount = 15) { + constructor(public el: HTMLElement, axis: 'y' | 'x' = 'y', logPrefix = '', public appendTo = el, public onScrollOffset = 300, public splitCount = 15) { this.container = document.createElement('div'); this.container.classList.add('scrollable'); @@ -161,20 +149,10 @@ export default class Scrollable { } this.log = logger('SCROLL' + (logPrefix ? '-' + logPrefix : '')); - - this.measureMutex = deferredPromise(); - this.measureMutex.resolve(); - + if(axis == 'x') { this.container.classList.add('scrollable-x'); - this.type = 'width'; - this.side = 'left'; - this.translate = 'translateX'; - this.scrollType = 'scrollWidth'; - this.scrollSide = 'scrollLeft'; - this.clientAxis = 'clientX'; - this.clientSize = 'clientWidth'; - + let scrollHorizontally = (e: any) => { e = window.event || e; var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail))); @@ -193,24 +171,11 @@ export default class Scrollable { } } else if(axis == 'y') { this.container.classList.add('scrollable-y'); - this.type = 'height'; - this.side = 'top'; - this.translate = 'translateY'; - this.scrollType = 'scrollHeight'; - this.scrollSide = 'scrollTop'; - this.clientAxis = 'clientY'; - this.clientSize = 'clientHeight'; } else { throw new Error('no side for scroll'); } - //this.container.addEventListener('mouseover', this.resize.bind(this)); // omg - window.addEventListener('resize', () => { - window.requestAnimationFrame(() => { - this.onScroll(); - }); - }); - + window.addEventListener('resize', () => this.onScroll()); this.container.addEventListener('scroll', () => this.onScroll(), {passive: true, capture: true}); Array.from(el.children).forEach(c => this.container.append(c)); @@ -219,12 +184,41 @@ export default class Scrollable { //this.onScroll(); } + public attachSentinels(container = this.container, offset = this.onScrollOffset) { + if(!this.sentinelsObserver) { + this.topSentinel = document.createElement('div'); + this.topSentinel.classList.add('scrollable-sentinel'); + this.topSentinel.style.top = offset + 'px'; + this.bottomSentinel = document.createElement('div'); + this.bottomSentinel.classList.add('scrollable-sentinel'); + this.bottomSentinel.style.bottom = offset + 'px'; + + this.container.append(this.topSentinel, this.bottomSentinel); + + this.sentinelsObserver = new IntersectionObserver(entries => { + for(let entry of entries) { + if(entry.isIntersecting) { + let top = entry.target == this.topSentinel; + if(top) { + this.onScrolledTop && this.onScrolledTop(); + } else { + this.onScrolledBottom && this.onScrolledBottom(); + } + } + } + }); + + this.sentinelsObserver.observe(this.topSentinel); + this.sentinelsObserver.observe(this.bottomSentinel); + } + + container.prepend(this.topSentinel); + container.append(this.bottomSentinel); + } + public setVirtualContainer(el?: HTMLElement) { this.splitUp = el; - - this.onScrolledBottomFired = this.onScrolledTopFired = false; this.lastScrollTop = 0; - this.log('setVirtualContainer:', el, this); } @@ -250,52 +244,11 @@ export default class Scrollable { this.disableHoverTimeout = setTimeout(() => { appendTo.classList.remove('disable-hover'); this.lastScrollDirection = 0; - - if(!this.measureMutex.isFulfilled) { - this.measureMutex.resolve(); - } }, 100); - - if(this.onScrollMeasure) return; //window.cancelAnimationFrame(this.onScrollMeasure); - this.onScrollMeasure = window.requestAnimationFrame(() => { - // @ts-ignore - let scrollPos = this.container[this.scrollSide]; - //if(this.measureMutex.isFulfilled) { - // @ts-ignore quick brown fix - this.size = this.container[this.clientSize]; - - // @ts-ignore - let scrollSize = this.container[this.scrollType]; - this.scrollSize = scrollSize; - - //this.measureMutex = deferredPromise(); - //} - - let scrollTop = scrollPos - this.scrollTopOffset; - let maxScrollTop = this.scrollSize - this.scrollTopOffset - this.size; - - if(this.onScrolledBottom && !this.scrollLocked) { - if((maxScrollTop - scrollTop) <= this.onScrollOffset) { - //if(!this.onScrolledBottomFired) { - this.onScrolledBottomFired = true; - this.onScrolledBottom(); - //} - } else { - this.onScrolledBottomFired = false; - } - } - - if(this.onScrolledTop && !this.scrollLocked) { - //this.log('onScrolledTop:', scrollTop, this.onScrollOffset); - if(scrollTop <= this.onScrollOffset) { - this.onScrolledTopFired = true; - this.onScrolledTop(); - } else { - this.onScrolledTopFired = false; - } - } - + if(!this.splitUp || this.onScrollMeasure) return; + this.onScrollMeasure = window.requestAnimationFrame(() => { + let scrollTop = this.container.scrollTop; if(this.lastScrollTop != scrollTop) { this.lastScrollDirection = this.lastScrollTop < scrollTop ? 1 : -1; this.lastScrollTop = scrollTop; @@ -385,8 +338,8 @@ export default class Scrollable { } } - public scrollTo(top: number, smooth = true) { - if(this.scrollLocked) return; + public scrollTo(top: number, smooth = true, important = false) { + if(this.scrollLocked && !important) return; let scrollTop = this.scrollTop; if(scrollTop == Math.floor(top)) { diff --git a/src/components/scrollable_spliceCount.ts b/src/components/scrollable_spliceCount.ts deleted file mode 100644 index 558e1ffb..00000000 --- a/src/components/scrollable_spliceCount.ts +++ /dev/null @@ -1,270 +0,0 @@ -import { isElementInViewport } from "../lib/utils"; - -export default class Scrollable { - public container: HTMLDivElement; - public thumb: HTMLDivElement; - - public type: string; - public side: string; - public scrollType: string; - public scrollSide: string; - - public scrollSize = -1; - public size = 0; - public thumbSize = 0; - - public hiddenElements: { - up: Element[], - down: Element[] - } = { - up: [], - down: [] - }; - public paddings = {up: 0, down: 0}; - - public paddingTopDiv: HTMLDivElement; - public paddingBottomDiv: HTMLDivElement; - - public splitUp: HTMLElement; - public spliceCount = 1; - public useStylePadding = false; - public useOneHeight = false; - - constructor(public el: HTMLDivElement, x = false, y = true) { - this.container = document.createElement('div'); - this.container.classList.add('scrollable'); - - if(x) { - this.container.classList.add('scrollable-x'); - this.type = 'width'; - this.side = 'left'; - this.scrollType = 'scrollWidth'; - this.scrollSide = 'scrollLeft'; - } else if(y) { - this.container.classList.add('scrollable-y'); - this.type = 'height'; - this.side = 'top'; - this.scrollType = 'scrollHeight'; - this.scrollSide = 'scrollTop'; - } else { - throw new Error('no side for scroll'); - } - - this.thumb = document.createElement('div'); - this.thumb.className = 'scrollbar-thumb'; - - // @ts-ignore - this.thumb.style[this.type] = '30px'; - - this.container.addEventListener('mouseover', this.resize.bind(this)); - window.addEventListener('resize', this.resize.bind(this)); - - this.paddingTopDiv = document.createElement('div'); - this.paddingTopDiv.classList.add('scroll-padding'); - this.paddingBottomDiv = document.createElement('div'); - this.paddingBottomDiv.classList.add('scroll-padding'); - - this.container.addEventListener('scroll', this.onScroll.bind(this)); - - this.container.append(this.paddingTopDiv); - Array.from(el.children).forEach(c => this.container.append(c)); - this.container.append(this.paddingBottomDiv); - - el.append(this.container);//container.append(el); - this.container.parentElement.append(this.thumb); - this.resize(); - } - - public resize() { - // @ts-ignore - this.scrollSize = this.container[this.scrollType]; - - let rect = this.container.getBoundingClientRect(); - - // @ts-ignore - this.size = rect[this.type]; - - if(!this.size || this.size == this.scrollSize) { - this.thumbSize = 0; - - // @ts-ignore - this.thumb.style[this.type] = this.thumbSize + 'px'; - return; - } - //if(!height) return; - - let divider = this.scrollSize / this.size / 0.5; - this.thumbSize = this.size / divider; - - if(this.thumbSize < 20) this.thumbSize = 20; - - // @ts-ignore - this.thumb.style[this.type] = this.thumbSize + 'px'; - - // @ts-ignore - //console.log('onresize', thumb.style[type], thumbHeight, height); - } - - public setVirtualContainer(el: HTMLElement, spliceCount = 1, useStylePadding = false, useOneHeight = false) { - this.splitUp = el; - this.hiddenElements = { - up: [], - down: [] - }; - this.paddings = { - up: 0, - down: 0 - }; - - this.spliceCount = spliceCount; - this.useStylePadding = useStylePadding; - this.useOneHeight = useOneHeight; - - if(this.paddingTopDiv.parentElement) { - this.paddingTopDiv.style.height = ''; - this.paddingBottomDiv.style.height = ''; - } - - - - /* if(useStylePadding) { - this.paddingTopDiv.parentElement.removeChild(this.paddingTopDiv); - this.paddingBottomDiv.parentElement.removeChild(this.paddingBottomDiv); - } else { */ - el.parentElement.insertBefore(this.paddingTopDiv, el); - el.parentNode.insertBefore(this.paddingBottomDiv, el.nextSibling); - //} - - if(useStylePadding) { - this.paddingTopDiv.style.height = '10px'; - this.paddingBottomDiv.style.height = '10px'; - } - } - - public onScroll() { - // @ts-ignore - //let st = container[scrollSide]; - - - if(this.container[this.scrollType] != this.scrollSize || this.thumbSize == 0) { - this.resize(); - } - - // @ts-ignore - let value = this.container[this.scrollSide] / (this.scrollSize - this.size) * 100; - let maxValue = 100 - (this.thumbSize / this.size * 100); - - //console.log('onscroll', container.scrollHeight, thumbHeight, height, value, maxValue); - - // @ts-ignore - this.thumb.style[this.side] = (value >= maxValue ? maxValue : value) + '%'; - - if(!this.splitUp) { - return; - } - - let splitUp = this.splitUp; - let children = Array.from(splitUp.children) as HTMLElement[]; - let firstVisible = -1, lastVisible = -1; - let length = children.length; - for(let i = 0; i < length; ++i) { - let child = children[i]; - if(isElementInViewport(child)) { - if(firstVisible < 0) firstVisible = i; - lastVisible = i; - } - } - - console.log('onscroll', firstVisible, lastVisible); - - if(firstVisible > 0) { - let sliced = children.slice(0, firstVisible); - - let height = 0, singleHeight = sliced[0].scrollHeight; - for(let child of sliced) { - height += child.scrollHeight; - this.hiddenElements.up.push(child); - child.parentElement.removeChild(child); - } - - this.paddings.up += this.useOneHeight ? singleHeight : height; - - //console.log('sliced up', sliced.length); - - //sliced.forEach(child => child.style.display = 'none'); - if(this.useStylePadding) splitUp.style.paddingTop = this.paddings.up + 'px'; - else this.paddingTopDiv.style.height = this.paddings.up + 'px'; - //console.log('onscroll need to add padding: ', paddings.up); - } else if(this.hiddenElements.up.length) { - console.log('onscroll up', isElementInViewport(this.paddingTopDiv), this.paddings.up); - while(isElementInViewport(this.paddingTopDiv) && this.paddings.up) { - //let child = this.hiddenElements.up.pop(); - - /* - splitUp.prepend(...childs); - - this.paddings.up -= child.scrollHeight; - this.paddingTopDiv.style.height = this.paddings.up + 'px';*/ - - let childs = this.hiddenElements.up.splice(-this.spliceCount).reverse(); - - let height = 0; - for(let child of childs) { - splitUp.prepend(child); - height += child.scrollHeight; - } - - this.paddings.up -= this.useOneHeight ? childs[0].scrollHeight : height; - - if(this.useStylePadding) splitUp.style.paddingTop = this.paddings.up + 'px'; - else this.paddingTopDiv.style.height = this.paddings.up + 'px'; - } - } - - if(lastVisible < (length - 1)) { - let sliced = children.slice(lastVisible + 1, this.useOneHeight ? lastVisible + 1 + this.spliceCount : undefined).reverse(); - - let height = 0, singleHeight = sliced[0].scrollHeight; - for(let child of sliced) { - height += child.scrollHeight; - this.hiddenElements.down.unshift(child); - child.parentElement.removeChild(child); - } - - this.paddings.down += this.useOneHeight ? singleHeight : height; - - console.log('onscroll sliced down', splitUp, sliced.length, this.paddings.down + 'px'); - - //sliced.forEach(child => child.style.display = 'none'); - - /* if(this.useStylePadding) splitUp.style.paddingBottom = this.paddings.down + 'px'; - else */ this.paddingBottomDiv.style.height = this.paddings.down + 'px'; - //console.log('onscroll need to add padding: ', paddings.up); - } else if(this.hiddenElements.down.length) { - console.log('onscroll down', isElementInViewport(this.paddingBottomDiv), this.paddings.down, this.hiddenElements); - while(isElementInViewport(this.paddingBottomDiv) && this.paddings.down) { - /* let child = this.hiddenElements.down.shift(); - - splitUp.append(child); - - this.paddings.down -= child.scrollHeight; - this.paddingBottomDiv.style.height = this.paddings.down + 'px'; */ - let childs = this.hiddenElements.down.splice(0, this.spliceCount); - - let height = 0; - for(let child of childs) { - splitUp.append(child); - height += child.scrollHeight; - } - - this.paddings.down -= this.useOneHeight ? childs[0].scrollHeight : height; - /* if(this.useStylePadding) splitUp.style.paddingBottom = this.paddings.down + 'px'; - else */ this.paddingBottomDiv.style.height = this.paddings.down + 'px'; - } - } - - //console.log('onscroll', container, firstVisible, lastVisible, hiddenElements); - - //lastScrollPos = st; - } -} diff --git a/src/components/wrappers.ts b/src/components/wrappers.ts index 1e9fabc2..f5ef68ed 100644 --- a/src/components/wrappers.ts +++ b/src/components/wrappers.ts @@ -165,6 +165,7 @@ export function wrapVideo({doc, container, message, boxWidth, boxHeight, withTai if(doc.type == 'gif') { video.autoplay = true; video.loop = true; + video.play(); } else if(doc.type == 'round') { //video.dataset.ckin = doc.type == 'round' ? 'circle' : 'default'; video.dataset.ckin = 'circle'; @@ -430,8 +431,9 @@ export function wrapVoiceMessage(doc: MTDocument, withTime = false): HTMLDivElem let index = 0; let skipped = 0; + let h = ''; for(let uint8 of wave) { - if (index > 0 && index % 4 == 0) { + if(index > 0 && index % 4 == 0) { ++index; ++skipped; continue; @@ -443,12 +445,13 @@ export function wrapVoiceMessage(doc: MTDocument, withTime = false): HTMLDivElem height = 2; } - svg.insertAdjacentHTML('beforeend', ` + h += ` - `); + `; ++index; } + svg.insertAdjacentHTML('beforeend', h); let progress = div.querySelector('.audio-waveform') as HTMLDivElement; @@ -772,7 +775,7 @@ export function wrapSticker(doc: MTDocument, div: HTMLDivElement, middleware?: ( console.timeEnd('render sticker' + doc.id); - if(div.firstElementChild && div.firstElementChild.tagName != 'CANVAS') { + if(div.firstElementChild && div.firstElementChild.tagName == 'IMG') { div.firstElementChild.remove(); } diff --git a/src/countries.json b/src/countries.json index 8701223e..c1ffecf4 100644 --- a/src/countries.json +++ b/src/countries.json @@ -1 +1 @@ -[{"phoneCode":"7 840","code":"AB","name":"Abkhazia","pattern":"","emoji":""},{"phoneCode":"93","code":"AF","name":"Afghanistan","pattern":"93 XXX XXX XXX","emoji":"🇦🇫"},{"phoneCode":"358 18","code":"AX","name":"Aland Islands","pattern":"","emoji":"🇦🇽"},{"phoneCode":"355","code":"AL","name":"Albania","pattern":"355 XX XXX XXXX","emoji":"🇦🇱"},{"phoneCode":"213","code":"DZ","name":"Algeria","pattern":"213 XXX XX XX XX","emoji":"🇩🇿"},{"phoneCode":"1 684","code":"AS","name":"American Samoa","pattern":"1684 XXX XXXX","emoji":"🇦🇸"},{"phoneCode":"376","code":"AD","name":"Andorra","pattern":"376 XX XX XX","emoji":"🇦🇩"},{"phoneCode":"244","code":"AO","name":"Angola","pattern":"244 XXX XXX XXX","emoji":"🇦🇴"},{"phoneCode":"1 264","code":"AI","name":"Anguilla","pattern":"1264 XXX XXXX","emoji":"🇦🇮"},{"phoneCode":"1 268","code":"AG","name":"Antigua & Barbuda","pattern":"1268 XXX XXXX","emoji":"🇦🇬"},{"phoneCode":"54","code":"AR","name":"Argentina","pattern":"","emoji":"🇦🇷"},{"phoneCode":"374","code":"AM","name":"Armenia","pattern":"374 XX XXX XXX","emoji":"🇦🇲"},{"phoneCode":"297","code":"AW","name":"Aruba","pattern":"297 XXX XXXX","emoji":"🇦🇼"},{"phoneCode":"247","code":"SH","name":"Ascension","pattern":"290 XX XXX","emoji":"🇸🇭"},{"phoneCode":"61","code":"AU","name":"Australia","pattern":"61 XXX XXX XXX","emoji":"🇦🇺"},{"phoneCode":"672","code":"AU","name":"Australian External Territories","pattern":"61 XXX XXX XXX","emoji":"🇦🇺"},{"phoneCode":"43","code":"AT","name":"Austria","pattern":"","emoji":"🇦🇹"},{"phoneCode":"994","code":"AZ","name":"Azerbaijan","pattern":"994 XX XXX XX XX","emoji":"🇦🇿"},{"phoneCode":"1 242","code":"BS","name":"Bahamas","pattern":"1242 XXX XXXX","emoji":"🇧🇸"},{"phoneCode":"973","code":"BH","name":"Bahrain","pattern":"973 XXXX XXXX","emoji":"🇧🇭"},{"phoneCode":"880","code":"BD","name":"Bangladesh","pattern":"","emoji":"🇧🇩"},{"phoneCode":"1 246","code":"BB","name":"Barbados","pattern":"1246 XXX XXXX","emoji":"🇧🇧"},{"phoneCode":"1 268","code":"AG","name":"Barbuda","pattern":"1268 XXX XXXX","emoji":"🇦🇬"},{"phoneCode":"375","code":"BY","name":"Belarus","pattern":"375 XX XXX XXXX","emoji":"🇧🇾"},{"phoneCode":"32","code":"BE","name":"Belgium","pattern":"32 XXX XX XX XX","emoji":"🇧🇪"},{"phoneCode":"501","code":"BZ","name":"Belize","pattern":"","emoji":"🇧🇿"},{"phoneCode":"229","code":"BJ","name":"Benin","pattern":"229 XX XXX XXX","emoji":"🇧🇯"},{"phoneCode":"1 441","code":"BM","name":"Bermuda","pattern":"1441 XXX XXXX","emoji":"🇧🇲"},{"phoneCode":"975","code":"BT","name":"Bhutan","pattern":"","emoji":"🇧🇹"},{"phoneCode":"591","code":"BO","name":"Bolivia","pattern":"591 X XXX XXXX","emoji":"🇧🇴"},{"phoneCode":"599 7","code":"BQ","name":"Caribbean Netherlands","pattern":"","emoji":"🇧🇶"},{"phoneCode":"387","code":"BA","name":"Bosnia & Herzegovina","pattern":"","emoji":"🇧🇦"},{"phoneCode":"267","code":"BW","name":"Botswana","pattern":"267 XX XXX XXX","emoji":"🇧🇼"},{"phoneCode":"55","code":"BR","name":"Brazil","pattern":"55 XX XXXXX XXXX","emoji":"🇧🇷"},{"phoneCode":"246","code":"IO","name":"British Indian Ocean Territory","pattern":"246 XXX XXXX","emoji":"🇮🇴"},{"phoneCode":"1 284","code":"VG","name":"British Virgin Islands","pattern":"1284 XXX XXXX","emoji":"🇻🇬"},{"phoneCode":"673","code":"BN","name":"Brunei","pattern":"673 XXX XXXX","emoji":"🇧🇳"},{"phoneCode":"359","code":"BG","name":"Bulgaria","pattern":"","emoji":"🇧🇬"},{"phoneCode":"226","code":"BF","name":"Burkina Faso","pattern":"226 XX XX XX XX","emoji":"🇧🇫"},{"phoneCode":"95","code":"MM","name":"Myanmar (Burma)","pattern":"","emoji":"🇲🇲"},{"phoneCode":"257","code":"BI","name":"Burundi","pattern":"257 XX XX XXXX","emoji":"🇧🇮"},{"phoneCode":"855","code":"KH","name":"Cambodia","pattern":"","emoji":"🇰🇭"},{"phoneCode":"237","code":"CM","name":"Cameroon","pattern":"237 XXXX XXXX","emoji":"🇨🇲"},{"phoneCode":"1","code":"CA","name":"Canada","pattern":"1 XXX XXX XXXX","emoji":"🇨🇦"},{"phoneCode":"238","code":"CV","name":"Cape Verde","pattern":"238 XXX XXXX","emoji":"🇨🇻"},{"phoneCode":"1 345","code":"KY","name":"Cayman Islands","pattern":"1345 XXX XXXX","emoji":"🇰🇾"},{"phoneCode":"236","code":"CF","name":"Central African Republic","pattern":"236 XX XX XX XX","emoji":"🇨🇫"},{"phoneCode":"235","code":"TD","name":"Chad","pattern":"235 XX XX XX XX","emoji":"🇹🇩"},{"phoneCode":"56","code":"CL","name":"Chile","pattern":"56 X XXXX XXXX","emoji":"🇨🇱"},{"phoneCode":"86","code":"CN","name":"China","pattern":"86 XXX XXXX XXXX","emoji":"🇨🇳"},{"phoneCode":"61","code":"CX","name":"Christmas Island","pattern":"","emoji":"🇨🇽"},{"phoneCode":"61","code":"CC","name":"Cocos (Keeling) Islands","pattern":"","emoji":"🇨🇨"},{"phoneCode":"57","code":"CO","name":"Colombia","pattern":"57 XXX XXX XXXX","emoji":"🇨🇴"},{"phoneCode":"269","code":"KM","name":"Comoros","pattern":"269 XXX XXXX","emoji":"🇰🇲"},{"phoneCode":"242","code":"CG","name":"Congo - Brazzaville","pattern":"242 XX XXX XXXX","emoji":"🇨🇬"},{"phoneCode":"243","code":"CD","name":"Congo - Kinshasa","pattern":"243 XX XXX XXXX","emoji":"🇨🇩"},{"phoneCode":"682","code":"CK","name":"Cook Islands","pattern":"","emoji":"🇨🇰"},{"phoneCode":"506","code":"CR","name":"Costa Rica","pattern":"","emoji":"🇨🇷"},{"phoneCode":"225","code":"CI","name":"Cote d’Ivoire","pattern":"225 XX XXX XXX","emoji":"🇨🇮"},{"phoneCode":"385","code":"HR","name":"Croatia","pattern":"","emoji":"🇭🇷"},{"phoneCode":"53","code":"CU","name":"Cuba","pattern":"53 XXXX XXXX","emoji":"🇨🇺"},{"phoneCode":"599 9","code":"CW","name":"Curacao","pattern":"","emoji":"🇨🇼"},{"phoneCode":"357","code":"CY","name":"Cyprus","pattern":"357 XXXX XXXX","emoji":"🇨🇾"},{"phoneCode":"420","code":"CZ","name":"Czech Republic","pattern":"","emoji":"🇨🇿"},{"phoneCode":"45","code":"DK","name":"Denmark","pattern":"45 XXXX XXXX","emoji":"🇩🇰"},{"phoneCode":"246","code":"DG","name":"Diego Garcia","pattern":"","emoji":"🇩🇬"},{"phoneCode":"253","code":"DJ","name":"Djibouti","pattern":"253 XX XX XX XX","emoji":"🇩🇯"},{"phoneCode":"1 767","code":"DM","name":"Dominica","pattern":"1767 XXX XXXX","emoji":"🇩🇲"},{"phoneCode":"1 809 and 1 829","code":"DO","name":"Dominican Republic","pattern":"1 XXX XXX XXXX","emoji":"🇩🇴"},{"phoneCode":"670","code":"TL","name":"Timor-Leste","pattern":"","emoji":"🇹🇱"},{"phoneCode":"593","code":"EC","name":"Ecuador","pattern":"","emoji":"🇪🇨"},{"phoneCode":"20","code":"EG","name":"Egypt","pattern":"20 XX XXX XXXX","emoji":"🇪🇬"},{"phoneCode":"503","code":"SV","name":"El Salvador","pattern":"503 XXXX XXXX","emoji":"🇸🇻"},{"phoneCode":"240","code":"GQ","name":"Equatorial Guinea","pattern":"240 XXX XXX XXX","emoji":"🇬🇶"},{"phoneCode":"291","code":"ER","name":"Eritrea","pattern":"291 X XXX XXX","emoji":"🇪🇷"},{"phoneCode":"372","code":"EE","name":"Estonia","pattern":"","emoji":"🇪🇪"},{"phoneCode":"251","code":"ET","name":"Ethiopia","pattern":"251 XX XXX XXXX","emoji":"🇪🇹"},{"phoneCode":"500","code":"FK","name":"Falkland Islands","pattern":"","emoji":"🇫🇰"},{"phoneCode":"298","code":"FO","name":"Faroe Islands","pattern":"298 XXX XXX","emoji":"🇫🇴"},{"phoneCode":"679","code":"FJ","name":"Fiji","pattern":"","emoji":"🇫🇯"},{"phoneCode":"358","code":"FI","name":"Finland","pattern":"","emoji":"🇫🇮"},{"phoneCode":"33","code":"FR","name":"France","pattern":"33 X XX XX XX XX","emoji":"🇫🇷"},{"phoneCode":"594","code":"GF","name":"French Guiana","pattern":"","emoji":"🇬🇫"},{"phoneCode":"689","code":"PF","name":"French Polynesia","pattern":"","emoji":"🇵🇫"},{"phoneCode":"241","code":"GA","name":"Gabon","pattern":"241 X XX XX XX","emoji":"🇬🇦"},{"phoneCode":"220","code":"GM","name":"Gambia","pattern":"220 XXX XXXX","emoji":"🇬🇲"},{"phoneCode":"995","code":"GE","name":"Georgia","pattern":"","emoji":"🇬🇪"},{"phoneCode":"49","code":"DE","name":"Germany","pattern":"49 XXX XXXXXXXX","emoji":"🇩🇪"},{"phoneCode":"233","code":"GH","name":"Ghana","pattern":"","emoji":"🇬🇭"},{"phoneCode":"350","code":"GI","name":"Gibraltar","pattern":"350 XXXX XXXX","emoji":"🇬🇮"},{"phoneCode":"30","code":"GR","name":"Greece","pattern":"30 XX XXXX XXXX","emoji":"🇬🇷"},{"phoneCode":"299","code":"GL","name":"Greenland","pattern":"299 XXX XXX","emoji":"🇬🇱"},{"phoneCode":"1 473","code":"GD","name":"Grenada","pattern":"1473 XXX XXXX","emoji":"🇬🇩"},{"phoneCode":"590","code":"GP","name":"Guadeloupe","pattern":"","emoji":"🇬🇵"},{"phoneCode":"1 671","code":"GU","name":"Guam","pattern":"1671 XXX XXXX","emoji":"🇬🇺"},{"phoneCode":"502","code":"GT","name":"Guatemala","pattern":"502 X XXX XXXX","emoji":"🇬🇹"},{"phoneCode":"44","code":"GG","name":"Guernsey","pattern":"","emoji":"🇬🇬"},{"phoneCode":"224","code":"GN","name":"Guinea","pattern":"224 XXX XXX XXX","emoji":"🇬🇳"},{"phoneCode":"245","code":"GW","name":"Guinea-Bissau","pattern":"245 XXX XXXX","emoji":"🇬🇼"},{"phoneCode":"592","code":"GY","name":"Guyana","pattern":"","emoji":"🇬🇾"},{"phoneCode":"509","code":"HT","name":"Haiti","pattern":"","emoji":"🇭🇹"},{"phoneCode":"504","code":"HN","name":"Honduras","pattern":"504 XXXX XXXX","emoji":"🇭🇳"},{"phoneCode":"852","code":"HK","name":"Hong Kong SAR China","pattern":"","emoji":"🇭🇰"},{"phoneCode":"36","code":"HU","name":"Hungary","pattern":"36 XX XXX XXXX","emoji":"🇭🇺"},{"phoneCode":"354","code":"IS","name":"Iceland","pattern":"354 XXX XXXX","emoji":"🇮🇸"},{"phoneCode":"91","code":"IN","name":"India","pattern":"91 XXXXX XXXXX","emoji":"🇮🇳"},{"phoneCode":"62","code":"ID","name":"Indonesia","pattern":"","emoji":"🇮🇩"},{"phoneCode":"98","code":"IR","name":"Iran","pattern":"98 XXX XXX XXXX","emoji":"🇮🇷"},{"phoneCode":"964","code":"IQ","name":"Iraq","pattern":"964 XXX XXX XXXX","emoji":"🇮🇶"},{"phoneCode":"353","code":"IE","name":"Ireland","pattern":"353 XX XXX XXXX","emoji":"🇮🇪"},{"phoneCode":"972","code":"IL","name":"Israel","pattern":"972 XX XXX XXXX","emoji":"🇮🇱"},{"phoneCode":"39","code":"IT","name":"Italy","pattern":"39 XXX XXX XXXX","emoji":"🇮🇹"},{"phoneCode":"1 876","code":"JM","name":"Jamaica","pattern":"1876 XXX XXXX","emoji":"🇯🇲"},{"phoneCode":"47 79","code":"SJ","name":"Svalbard & Jan Mayen","pattern":"","emoji":"🇸🇯"},{"phoneCode":"81","code":"JP","name":"Japan","pattern":"81 XX XXXX XXXX","emoji":"🇯🇵"},{"phoneCode":"44","code":"JE","name":"Jersey","pattern":"","emoji":"🇯🇪"},{"phoneCode":"962","code":"JO","name":"Jordan","pattern":"962 X XXXX XXXX","emoji":"🇯🇴"},{"phoneCode":"7 7","code":"KZ","name":"Kazakhstan","pattern":"7 XXX XXX XX XX","emoji":"🇰🇿"},{"phoneCode":"254","code":"KE","name":"Kenya","pattern":"254 XXX XXX XXX","emoji":"🇰🇪"},{"phoneCode":"686","code":"KI","name":"Kiribati","pattern":"","emoji":"🇰🇮"},{"phoneCode":"850","code":"KP","name":"North Korea","pattern":"","emoji":"🇰🇵"},{"phoneCode":"82","code":"KR","name":"South Korea","pattern":"","emoji":"🇰🇷"},{"phoneCode":"965","code":"KW","name":"Kuwait","pattern":"965 XXXX XXXX","emoji":"🇰🇼"},{"phoneCode":"996","code":"KG","name":"Kyrgyzstan","pattern":"","emoji":"🇰🇬"},{"phoneCode":"856","code":"LA","name":"Laos","pattern":"","emoji":"🇱🇦"},{"phoneCode":"371","code":"LV","name":"Latvia","pattern":"371 XXX XXXXX","emoji":"🇱🇻"},{"phoneCode":"961","code":"LB","name":"Lebanon","pattern":"","emoji":"🇱🇧"},{"phoneCode":"266","code":"LS","name":"Lesotho","pattern":"266 XX XXX XXX","emoji":"🇱🇸"},{"phoneCode":"231","code":"LR","name":"Liberia","pattern":"","emoji":"🇱🇷"},{"phoneCode":"218","code":"LY","name":"Libya","pattern":"218 XX XXX XXXX","emoji":"🇱🇾"},{"phoneCode":"423","code":"LI","name":"Liechtenstein","pattern":"","emoji":"🇱🇮"},{"phoneCode":"370","code":"LT","name":"Lithuania","pattern":"370 XXX XXXXX","emoji":"🇱🇹"},{"phoneCode":"352","code":"LU","name":"Luxembourg","pattern":"","emoji":"🇱🇺"},{"phoneCode":"853","code":"MO","name":"Macau SAR China","pattern":"","emoji":"🇲🇴"},{"phoneCode":"389","code":"MK","name":"Macedonia","pattern":"","emoji":"🇲🇰"},{"phoneCode":"261","code":"MG","name":"Madagascar","pattern":"261 XX XX XXX XX","emoji":"🇲🇬"},{"phoneCode":"265","code":"MW","name":"Malawi","pattern":"","emoji":"🇲🇼"},{"phoneCode":"60","code":"MM","name":"Malaysia","pattern":"","emoji":"🇲🇲"},{"phoneCode":"960","code":"MV","name":"Maldives","pattern":"","emoji":"🇲🇻"},{"phoneCode":"223","code":"ML","name":"Mali","pattern":"223 XXXX XXXX","emoji":"🇲🇱"},{"phoneCode":"356","code":"MT","name":"Malta","pattern":"356 XX XX XX XX","emoji":"🇲🇹"},{"phoneCode":"692","code":"MH","name":"Marshall Islands","pattern":"","emoji":"🇲🇭"},{"phoneCode":"596","code":"MQ","name":"Martinique","pattern":"","emoji":"🇲🇶"},{"phoneCode":"222","code":"MR","name":"Mauritania","pattern":"222 XXXX XXXX","emoji":"🇲🇷"},{"phoneCode":"230","code":"MU","name":"Mauritius","pattern":"","emoji":"🇲🇺"},{"phoneCode":"262","code":"YT","name":"Mayotte","pattern":"","emoji":"🇾🇹"},{"phoneCode":"52","code":"MX","name":"Mexico","pattern":"","emoji":"🇲🇽"},{"phoneCode":"691","code":"FM","name":"Micronesia","pattern":"","emoji":"🇫🇲"},{"phoneCode":"373","code":"MD","name":"Moldova","pattern":"373 XX XXX XXX","emoji":"🇲🇩"},{"phoneCode":"377","code":"MC","name":"Monaco","pattern":"377 XXXX XXXX","emoji":"🇲🇨"},{"phoneCode":"976","code":"MN","name":"Mongolia","pattern":"","emoji":"🇲🇳"},{"phoneCode":"382","code":"ME","name":"Montenegro","pattern":"","emoji":"🇲🇪"},{"phoneCode":"1 664","code":"MS","name":"Montserrat","pattern":"1664 XXX XXXX","emoji":"🇲🇸"},{"phoneCode":"212","code":"MA","name":"Morocco","pattern":"212 XX XXX XXXX","emoji":"🇲🇦"},{"phoneCode":"258","code":"MZ","name":"Mozambique","pattern":"258 XX XXX XXXX","emoji":"🇲🇿"},{"phoneCode":"264","code":"NA","name":"Namibia","pattern":"264 XX XXX XXXX","emoji":"🇳🇦"},{"phoneCode":"674","code":"NR","name":"Nauru","pattern":"","emoji":"🇳🇷"},{"phoneCode":"977","code":"NP","name":"Nepal","pattern":"","emoji":"🇳🇵"},{"phoneCode":"31","code":"NL","name":"Netherlands","pattern":"31 X XX XX XX XX","emoji":"🇳🇱"},{"phoneCode":"687","code":"NC","name":"New Caledonia","pattern":"","emoji":"🇳🇨"},{"phoneCode":"64","code":"NZ","name":"New Zealand","pattern":"","emoji":"🇳🇿"},{"phoneCode":"505","code":"NI","name":"Nicaragua","pattern":"505 XXXX XXXX","emoji":"🇳🇮"},{"phoneCode":"227","code":"NE","name":"Niger","pattern":"227 XX XX XX XX","emoji":"🇳🇪"},{"phoneCode":"234","code":"NG","name":"Nigeria","pattern":"","emoji":"🇳🇬"},{"phoneCode":"683","code":"NU","name":"Niue","pattern":"","emoji":"🇳🇺"},{"phoneCode":"672","code":"NF","name":"Norfolk Island","pattern":"","emoji":"🇳🇫"},{"phoneCode":"1 670","code":"MP","name":"Northern Mariana Islands","pattern":"1670 XXX XXXX","emoji":"🇲🇵"},{"phoneCode":"47","code":"NO","name":"Norway","pattern":"47 XXXX XXXX","emoji":"🇳🇴"},{"phoneCode":"968","code":"OM","name":"Oman","pattern":"968 XXXX XXXX","emoji":"🇴🇲"},{"phoneCode":"92","code":"PK","name":"Pakistan","pattern":"92 XXX XXX XXXX","emoji":"🇵🇰"},{"phoneCode":"680","code":"PW","name":"Palau","pattern":"","emoji":"🇵🇼"},{"phoneCode":"970","code":"PS","name":"Palestinian Territories","pattern":"970 XXX XX XXXX","emoji":"🇵🇸"},{"phoneCode":"507","code":"PA","name":"Panama","pattern":"507 XXXX XXXX","emoji":"🇵🇦"},{"phoneCode":"675","code":"PG","name":"Papua New Guinea","pattern":"","emoji":"🇵🇬"},{"phoneCode":"595","code":"PY","name":"Paraguay","pattern":"595 XXX XXX XXX","emoji":"🇵🇾"},{"phoneCode":"51","code":"PE","name":"Peru","pattern":"51 XXX XXX XXX","emoji":"🇵🇪"},{"phoneCode":"63","code":"PH","name":"Philippines","pattern":"63 XXX XXX XXXX","emoji":"🇵🇭"},{"phoneCode":"64","code":"PN","name":"Pitcairn Islands","pattern":"","emoji":"🇵🇳"},{"phoneCode":"48","code":"PL","name":"Poland","pattern":"48 XXX XXX XXX","emoji":"🇵🇱"},{"phoneCode":"351","code":"PT","name":"Portugal","pattern":"351 X XXXX XXXX","emoji":"🇵🇹"},{"phoneCode":"1 787 and 1 939","code":"PR","name":"Puerto Rico","pattern":"1 XXX XXX XXXX","emoji":"🇵🇷"},{"phoneCode":"974","code":"QA","name":"Qatar","pattern":"","emoji":"🇶🇦"},{"phoneCode":"262","code":"RE","name":"Reunion","pattern":"262 XXX XXX XXX","emoji":"🇷🇪"},{"phoneCode":"40","code":"RO","name":"Romania","pattern":"40 XXX XXX XXX","emoji":"🇷🇴"},{"phoneCode":"7","code":"RU","name":"Russia","pattern":"7 XXX XXX XX XX","emoji":"🇷🇺"},{"phoneCode":"250","code":"RW","name":"Rwanda","pattern":"250 XXX XXX XXX","emoji":"🇷🇼"},{"phoneCode":"590","code":"BL","name":"St. Barthelemy","pattern":"","emoji":"🇧🇱"},{"phoneCode":"290","code":"SH","name":"St. Helena","pattern":"290 XX XXX","emoji":"🇸🇭"},{"phoneCode":"1 869","code":"KN","name":"St. Kitts & Nevis","pattern":"1869 XXX XXXX","emoji":"🇰🇳"},{"phoneCode":"1 758","code":"LC","name":"St. Lucia","pattern":"1758 XXX XXXX","emoji":"🇱🇨"},{"phoneCode":"590","code":"MF","name":"St. Martin (France)","pattern":"","emoji":"🇲🇫"},{"phoneCode":"508","code":"PM","name":"St. Pierre and Miquelon","pattern":"","emoji":"🇵🇲"},{"phoneCode":"1 784","code":"VC","name":"St. Vincent and the Grenadines","pattern":"1784 XXX XXXX","emoji":"🇻🇨"},{"phoneCode":"685","code":"WS","name":"Samoa","pattern":"","emoji":"🇼🇸"},{"phoneCode":"378","code":"SM","name":"San Marino","pattern":"378 XXX XXX XXXX","emoji":"🇸🇲"},{"phoneCode":"239","code":"ST","name":"São Tome & Principe","pattern":"239 XX XXXXX","emoji":"🇸🇹"},{"phoneCode":"966","code":"SA","name":"Saudi Arabia","pattern":"","emoji":"🇸🇦"},{"phoneCode":"221","code":"SN","name":"Senegal","pattern":"221 XX XXX XXXX","emoji":"🇸🇳"},{"phoneCode":"381","code":"RS","name":"Serbia","pattern":"381 XX XXX XXXX","emoji":"🇷🇸"},{"phoneCode":"248","code":"SC","name":"Seychelles","pattern":"248 X XX XX XX","emoji":"🇸🇨"},{"phoneCode":"232","code":"SL","name":"Sierra Leone","pattern":"232 XX XXX XXX","emoji":"🇸🇱"},{"phoneCode":"65","code":"SG","name":"Singapore","pattern":"65 XXXX XXXX","emoji":"🇸🇬"},{"phoneCode":"599 3","code":"BQ","name":"Sint Eustatius","pattern":"","emoji":"🇧🇶"},{"phoneCode":"1 721","code":"SX","name":"Sint Maarten","pattern":"1721 XXX XXXX","emoji":"🇸🇽"},{"phoneCode":"421","code":"SK","name":"Slovakia","pattern":"","emoji":"🇸🇰"},{"phoneCode":"386","code":"SI","name":"Slovenia","pattern":"","emoji":"🇸🇮"},{"phoneCode":"677","code":"SB","name":"Solomon Islands","pattern":"","emoji":"🇸🇧"},{"phoneCode":"252","code":"SO","name":"Somalia","pattern":"252 XX XXX XXX","emoji":"🇸🇴"},{"phoneCode":"27","code":"ZA","name":"South Africa","pattern":"27 XX XXX XXXX","emoji":"🇿🇦"},{"phoneCode":"500","code":"GS","name":"South Georgia & South Sandwich Islands","pattern":"","emoji":"🇬🇸"},{"phoneCode":"995 34","code":"","name":"South Ossetia","pattern":"","emoji":""},{"phoneCode":"211","code":"SS","name":"South Sudan","pattern":"211 XX XXX XXXX","emoji":"🇸🇸"},{"phoneCode":"34","code":"ES","name":"Spain","pattern":"34 XXX XXX XXX","emoji":"🇪🇸"},{"phoneCode":"94","code":"LK","name":"Sri Lanka","pattern":"94 XX XXX XXXX","emoji":"🇱🇰"},{"phoneCode":"249","code":"SD","name":"Sudan","pattern":"249 XX XXX XXXX","emoji":"🇸🇩"},{"phoneCode":"597","code":"SR","name":"Suriname","pattern":"597 XXX XXXX","emoji":"🇸🇷"},{"phoneCode":"47 79","code":"SJ","name":"Svalbard","pattern":"","emoji":"🇸🇯"},{"phoneCode":"268","code":"SZ","name":"Swaziland","pattern":"268 XXXX XXXX","emoji":"🇸🇿"},{"phoneCode":"46","code":"SE","name":"Sweden","pattern":"46 XX XXX XXXX","emoji":"🇸🇪"},{"phoneCode":"41","code":"CH","name":"Switzerland","pattern":"41 XX XXX XXXX","emoji":"🇨🇭"},{"phoneCode":"963","code":"SY","name":"Syria","pattern":"","emoji":"🇸🇾"},{"phoneCode":"886","code":"TW","name":"Taiwan","pattern":"","emoji":"🇹🇼"},{"phoneCode":"992","code":"TJ","name":"Tajikistan","pattern":"","emoji":"🇹🇯"},{"phoneCode":"255","code":"TZ","name":"Tanzania","pattern":"255 XX XXX XXXX","emoji":"🇹🇿"},{"phoneCode":"66","code":"TH","name":"Thailand","pattern":"66 X XXXX XXXX","emoji":"🇹🇭"},{"phoneCode":"228","code":"TG","name":"Togo","pattern":"228 XX XXX XXX","emoji":"🇹🇬"},{"phoneCode":"690","code":"TK","name":"Tokelau","pattern":"","emoji":"🇹🇰"},{"phoneCode":"676","code":"TO","name":"Tonga","pattern":"","emoji":"🇹🇴"},{"phoneCode":"1 868","code":"TT","name":"Trinidad & Tobago","pattern":"1868 XXX XXXX","emoji":"🇹🇹"},{"phoneCode":"216","code":"TN","name":"Tunisia","pattern":"216 XX XXX XXX","emoji":"🇹🇳"},{"phoneCode":"90","code":"TR","name":"Turkey","pattern":"90 XXX XXX XXXX","emoji":"🇹🇷"},{"phoneCode":"993","code":"TM","name":"Turkmenistan","pattern":"993 XX XXXXXX","emoji":"🇹🇲"},{"phoneCode":"1 649","code":"TC","name":"Turks & Caicos Islands","pattern":"1649 XXX XXXX","emoji":"🇹🇨"},{"phoneCode":"688","code":"TV","name":"Tuvalu","pattern":"","emoji":"🇹🇻"},{"phoneCode":"256","code":"UG","name":"Uganda","pattern":"256 XX XXX XXXX","emoji":"🇺🇬"},{"phoneCode":"380","code":"UA","name":"Ukraine","pattern":"380 XX XXX XX XX","emoji":"🇺🇦"},{"phoneCode":"971","code":"AE","name":"United Arab Emirates","pattern":"971 XX XXX XXXX","emoji":"🇦🇪"},{"phoneCode":"44","code":"GB","name":"United Kingdom","pattern":"44 XXXX XXXXXX","emoji":"🇬🇧"},{"phoneCode":"1","code":"US","name":"United States","pattern":"1 XXX XXX XXXX","emoji":"🇺🇸"},{"phoneCode":"598","code":"UY","name":"Uruguay","pattern":"598 XXXX XXXX","emoji":"🇺🇾"},{"phoneCode":"1 340","code":"VI","name":"U.S. Virgin Islands","pattern":"1340 XXX XXXX","emoji":"🇻🇮"},{"phoneCode":"998","code":"UZ","name":"Uzbekistan","pattern":"998 XX XXXXXXX","emoji":"🇺🇿"},{"phoneCode":"678","code":"VU","name":"Vanuatu","pattern":"","emoji":"🇻🇺"},{"phoneCode":"58","code":"VE","name":"Venezuela","pattern":"58 XXX XXX XXXX","emoji":"🇻🇪"},{"phoneCode":"39 06 698","code":"VA","name":"Vatican City","pattern":"","emoji":"🇻🇦"},{"phoneCode":"84","code":"VN","name":"Vietnam","pattern":"","emoji":"🇻🇳"},{"phoneCode":"681","code":"WF","name":"Wallis & Futuna","pattern":"","emoji":"🇼🇫"},{"phoneCode":"967","code":"YE","name":"Yemen","pattern":"967 XXX XXX XXX","emoji":"🇾🇪"},{"phoneCode":"260","code":"ZM","name":"Zambia","pattern":"260 XX XXX XXXX","emoji":"🇿🇲"},{"phoneCode":"255","code":"","name":"Zanzibar","pattern":"","emoji":""},{"phoneCode":"263","code":"ZW","name":"Zimbabwe","pattern":"263 XX XXX XXXX","emoji":"🇿🇼"}] \ No newline at end of file +[{"phoneCode":"7 840","code":"AB","name":"Abkhazia","pattern":"","emoji":"\r"},{"phoneCode":"93","code":"AF","name":"Afghanistan","pattern":"93 XXX XXX XXX","emoji":"🇦🇫\r"},{"phoneCode":"358 18","code":"AX","name":"Aland Islands","pattern":"","emoji":"🇦🇽\r"},{"phoneCode":"355","code":"AL","name":"Albania","pattern":"355 XX XXX XXXX","emoji":"🇦🇱\r"},{"phoneCode":"213","code":"DZ","name":"Algeria","pattern":"213 XXX XX XX XX","emoji":"🇩🇿\r"},{"phoneCode":"1 684","code":"AS","name":"American Samoa","pattern":"1684 XXX XXXX","emoji":"🇦🇸\r"},{"phoneCode":"376","code":"AD","name":"Andorra","pattern":"376 XX XX XX","emoji":"🇦🇩\r"},{"phoneCode":"244","code":"AO","name":"Angola","pattern":"244 XXX XXX XXX","emoji":"🇦🇴\r"},{"phoneCode":"1 264","code":"AI","name":"Anguilla","pattern":"1264 XXX XXXX","emoji":"🇦🇮\r"},{"phoneCode":"1 268","code":"AG","name":"Antigua & Barbuda","pattern":"1268 XXX XXXX","emoji":"🇦🇬\r"},{"phoneCode":"54","code":"AR","name":"Argentina","pattern":"","emoji":"🇦🇷\r"},{"phoneCode":"374","code":"AM","name":"Armenia","pattern":"374 XX XXX XXX","emoji":"🇦🇲\r"},{"phoneCode":"297","code":"AW","name":"Aruba","pattern":"297 XXX XXXX","emoji":"🇦🇼\r"},{"phoneCode":"247","code":"SH","name":"Ascension","pattern":"290 XX XXX","emoji":"🇸🇭\r"},{"phoneCode":"61","code":"AU","name":"Australia","pattern":"61 XXX XXX XXX","emoji":"🇦🇺\r"},{"phoneCode":"672","code":"AU","name":"Australian External Territories","pattern":"61 XXX XXX XXX","emoji":"🇦🇺\r"},{"phoneCode":"43","code":"AT","name":"Austria","pattern":"","emoji":"🇦🇹\r"},{"phoneCode":"994","code":"AZ","name":"Azerbaijan","pattern":"994 XX XXX XX XX","emoji":"🇦🇿\r"},{"phoneCode":"1 242","code":"BS","name":"Bahamas","pattern":"1242 XXX XXXX","emoji":"🇧🇸\r"},{"phoneCode":"973","code":"BH","name":"Bahrain","pattern":"973 XXXX XXXX","emoji":"🇧🇭\r"},{"phoneCode":"880","code":"BD","name":"Bangladesh","pattern":"","emoji":"🇧🇩\r"},{"phoneCode":"1 246","code":"BB","name":"Barbados","pattern":"1246 XXX XXXX","emoji":"🇧🇧\r"},{"phoneCode":"1 268","code":"AG","name":"Barbuda","pattern":"1268 XXX XXXX","emoji":"🇦🇬\r"},{"phoneCode":"375","code":"BY","name":"Belarus","pattern":"375 XX XXX XXXX","emoji":"🇧🇾\r"},{"phoneCode":"32","code":"BE","name":"Belgium","pattern":"32 XXX XX XX XX","emoji":"🇧🇪\r"},{"phoneCode":"501","code":"BZ","name":"Belize","pattern":"","emoji":"🇧🇿\r"},{"phoneCode":"229","code":"BJ","name":"Benin","pattern":"229 XX XXX XXX","emoji":"🇧🇯\r"},{"phoneCode":"1 441","code":"BM","name":"Bermuda","pattern":"1441 XXX XXXX","emoji":"🇧🇲\r"},{"phoneCode":"975","code":"BT","name":"Bhutan","pattern":"","emoji":"🇧🇹\r"},{"phoneCode":"591","code":"BO","name":"Bolivia","pattern":"591 X XXX XXXX","emoji":"🇧🇴\r"},{"phoneCode":"599 7","code":"BQ","name":"Caribbean Netherlands","pattern":"","emoji":"🇧🇶\r"},{"phoneCode":"387","code":"BA","name":"Bosnia & Herzegovina","pattern":"","emoji":"🇧🇦\r"},{"phoneCode":"267","code":"BW","name":"Botswana","pattern":"267 XX XXX XXX","emoji":"🇧🇼\r"},{"phoneCode":"55","code":"BR","name":"Brazil","pattern":"55 XX XXXXX XXXX","emoji":"🇧🇷\r"},{"phoneCode":"246","code":"IO","name":"British Indian Ocean Territory","pattern":"246 XXX XXXX","emoji":"🇮🇴\r"},{"phoneCode":"1 284","code":"VG","name":"British Virgin Islands","pattern":"1284 XXX XXXX","emoji":"🇻🇬\r"},{"phoneCode":"673","code":"BN","name":"Brunei","pattern":"673 XXX XXXX","emoji":"🇧🇳\r"},{"phoneCode":"359","code":"BG","name":"Bulgaria","pattern":"","emoji":"🇧🇬\r"},{"phoneCode":"226","code":"BF","name":"Burkina Faso","pattern":"226 XX XX XX XX","emoji":"🇧🇫\r"},{"phoneCode":"95","code":"MM","name":"Myanmar (Burma)","pattern":"","emoji":"🇲🇲\r"},{"phoneCode":"257","code":"BI","name":"Burundi","pattern":"257 XX XX XXXX","emoji":"🇧🇮\r"},{"phoneCode":"855","code":"KH","name":"Cambodia","pattern":"","emoji":"🇰🇭\r"},{"phoneCode":"237","code":"CM","name":"Cameroon","pattern":"237 XXXX XXXX","emoji":"🇨🇲\r"},{"phoneCode":"1","code":"CA","name":"Canada","pattern":"1 XXX XXX XXXX","emoji":"🇨🇦\r"},{"phoneCode":"238","code":"CV","name":"Cape Verde","pattern":"238 XXX XXXX","emoji":"🇨🇻\r"},{"phoneCode":"1 345","code":"KY","name":"Cayman Islands","pattern":"1345 XXX XXXX","emoji":"🇰🇾\r"},{"phoneCode":"236","code":"CF","name":"Central African Republic","pattern":"236 XX XX XX XX","emoji":"🇨🇫\r"},{"phoneCode":"235","code":"TD","name":"Chad","pattern":"235 XX XX XX XX","emoji":"🇹🇩\r"},{"phoneCode":"56","code":"CL","name":"Chile","pattern":"56 X XXXX XXXX","emoji":"🇨🇱\r"},{"phoneCode":"86","code":"CN","name":"China","pattern":"86 XXX XXXX XXXX","emoji":"🇨🇳\r"},{"phoneCode":"61","code":"CX","name":"Christmas Island","pattern":"","emoji":"🇨🇽\r"},{"phoneCode":"61","code":"CC","name":"Cocos (Keeling) Islands","pattern":"","emoji":"🇨🇨\r"},{"phoneCode":"57","code":"CO","name":"Colombia","pattern":"57 XXX XXX XXXX","emoji":"🇨🇴\r"},{"phoneCode":"269","code":"KM","name":"Comoros","pattern":"269 XXX XXXX","emoji":"🇰🇲\r"},{"phoneCode":"242","code":"CG","name":"Congo - Brazzaville","pattern":"242 XX XXX XXXX","emoji":"🇨🇬\r"},{"phoneCode":"243","code":"CD","name":"Congo - Kinshasa","pattern":"243 XX XXX XXXX","emoji":"🇨🇩\r"},{"phoneCode":"682","code":"CK","name":"Cook Islands","pattern":"","emoji":"🇨🇰\r"},{"phoneCode":"506","code":"CR","name":"Costa Rica","pattern":"","emoji":"🇨🇷\r"},{"phoneCode":"225","code":"CI","name":"Cote d’Ivoire","pattern":"225 XX XXX XXX","emoji":"🇨🇮\r"},{"phoneCode":"385","code":"HR","name":"Croatia","pattern":"","emoji":"🇭🇷\r"},{"phoneCode":"53","code":"CU","name":"Cuba","pattern":"53 XXXX XXXX","emoji":"🇨🇺\r"},{"phoneCode":"599 9","code":"CW","name":"Curacao","pattern":"","emoji":"🇨🇼\r"},{"phoneCode":"357","code":"CY","name":"Cyprus","pattern":"357 XXXX XXXX","emoji":"🇨🇾\r"},{"phoneCode":"420","code":"CZ","name":"Czech Republic","pattern":"","emoji":"🇨🇿\r"},{"phoneCode":"45","code":"DK","name":"Denmark","pattern":"45 XXXX XXXX","emoji":"🇩🇰\r"},{"phoneCode":"246","code":"DG","name":"Diego Garcia","pattern":"","emoji":"🇩🇬\r"},{"phoneCode":"253","code":"DJ","name":"Djibouti","pattern":"253 XX XX XX XX","emoji":"🇩🇯\r"},{"phoneCode":"1 767","code":"DM","name":"Dominica","pattern":"1767 XXX XXXX","emoji":"🇩🇲\r"},{"phoneCode":"1 809 and 1 829","code":"DO","name":"Dominican Republic","pattern":"1 XXX XXX XXXX","emoji":"🇩🇴\r"},{"phoneCode":"670","code":"TL","name":"Timor-Leste","pattern":"","emoji":"🇹🇱\r"},{"phoneCode":"593","code":"EC","name":"Ecuador","pattern":"","emoji":"🇪🇨\r"},{"phoneCode":"20","code":"EG","name":"Egypt","pattern":"20 XX XXX XXXX","emoji":"🇪🇬\r"},{"phoneCode":"503","code":"SV","name":"El Salvador","pattern":"503 XXXX XXXX","emoji":"🇸🇻\r"},{"phoneCode":"240","code":"GQ","name":"Equatorial Guinea","pattern":"240 XXX XXX XXX","emoji":"🇬🇶\r"},{"phoneCode":"291","code":"ER","name":"Eritrea","pattern":"291 X XXX XXX","emoji":"🇪🇷\r"},{"phoneCode":"372","code":"EE","name":"Estonia","pattern":"","emoji":"🇪🇪\r"},{"phoneCode":"251","code":"ET","name":"Ethiopia","pattern":"251 XX XXX XXXX","emoji":"🇪🇹\r"},{"phoneCode":"500","code":"FK","name":"Falkland Islands","pattern":"","emoji":"🇫🇰\r"},{"phoneCode":"298","code":"FO","name":"Faroe Islands","pattern":"298 XXX XXX","emoji":"🇫🇴\r"},{"phoneCode":"679","code":"FJ","name":"Fiji","pattern":"","emoji":"🇫🇯\r"},{"phoneCode":"358","code":"FI","name":"Finland","pattern":"","emoji":"🇫🇮\r"},{"phoneCode":"33","code":"FR","name":"France","pattern":"33 X XX XX XX XX","emoji":"🇫🇷\r"},{"phoneCode":"594","code":"GF","name":"French Guiana","pattern":"","emoji":"🇬🇫\r"},{"phoneCode":"689","code":"PF","name":"French Polynesia","pattern":"","emoji":"🇵🇫\r"},{"phoneCode":"241","code":"GA","name":"Gabon","pattern":"241 X XX XX XX","emoji":"🇬🇦\r"},{"phoneCode":"220","code":"GM","name":"Gambia","pattern":"220 XXX XXXX","emoji":"🇬🇲\r"},{"phoneCode":"995","code":"GE","name":"Georgia","pattern":"","emoji":"🇬🇪\r"},{"phoneCode":"49","code":"DE","name":"Germany","pattern":"49 XXX XXXXXXXX","emoji":"🇩🇪\r"},{"phoneCode":"233","code":"GH","name":"Ghana","pattern":"","emoji":"🇬🇭\r"},{"phoneCode":"350","code":"GI","name":"Gibraltar","pattern":"350 XXXX XXXX","emoji":"🇬🇮\r"},{"phoneCode":"30","code":"GR","name":"Greece","pattern":"30 XX XXXX XXXX","emoji":"🇬🇷\r"},{"phoneCode":"299","code":"GL","name":"Greenland","pattern":"299 XXX XXX","emoji":"🇬🇱\r"},{"phoneCode":"1 473","code":"GD","name":"Grenada","pattern":"1473 XXX XXXX","emoji":"🇬🇩\r"},{"phoneCode":"590","code":"GP","name":"Guadeloupe","pattern":"","emoji":"🇬🇵\r"},{"phoneCode":"1 671","code":"GU","name":"Guam","pattern":"1671 XXX XXXX","emoji":"🇬🇺\r"},{"phoneCode":"502","code":"GT","name":"Guatemala","pattern":"502 X XXX XXXX","emoji":"🇬🇹\r"},{"phoneCode":"44","code":"GG","name":"Guernsey","pattern":"","emoji":"🇬🇬\r"},{"phoneCode":"224","code":"GN","name":"Guinea","pattern":"224 XXX XXX XXX","emoji":"🇬🇳\r"},{"phoneCode":"245","code":"GW","name":"Guinea-Bissau","pattern":"245 XXX XXXX","emoji":"🇬🇼\r"},{"phoneCode":"592","code":"GY","name":"Guyana","pattern":"","emoji":"🇬🇾\r"},{"phoneCode":"509","code":"HT","name":"Haiti","pattern":"","emoji":"🇭🇹\r"},{"phoneCode":"504","code":"HN","name":"Honduras","pattern":"504 XXXX XXXX","emoji":"🇭🇳\r"},{"phoneCode":"852","code":"HK","name":"Hong Kong SAR China","pattern":"","emoji":"🇭🇰\r"},{"phoneCode":"36","code":"HU","name":"Hungary","pattern":"36 XX XXX XXXX","emoji":"🇭🇺\r"},{"phoneCode":"354","code":"IS","name":"Iceland","pattern":"354 XXX XXXX","emoji":"🇮🇸\r"},{"phoneCode":"91","code":"IN","name":"India","pattern":"91 XXXXX XXXXX","emoji":"🇮🇳\r"},{"phoneCode":"62","code":"ID","name":"Indonesia","pattern":"","emoji":"🇮🇩\r"},{"phoneCode":"98","code":"IR","name":"Iran","pattern":"98 XXX XXX XXXX","emoji":"🇮🇷\r"},{"phoneCode":"964","code":"IQ","name":"Iraq","pattern":"964 XXX XXX XXXX","emoji":"🇮🇶\r"},{"phoneCode":"353","code":"IE","name":"Ireland","pattern":"353 XX XXX XXXX","emoji":"🇮🇪\r"},{"phoneCode":"972","code":"IL","name":"Israel","pattern":"972 XX XXX XXXX","emoji":"🇮🇱\r"},{"phoneCode":"39","code":"IT","name":"Italy","pattern":"39 XXX XXX XXXX","emoji":"🇮🇹\r"},{"phoneCode":"1 876","code":"JM","name":"Jamaica","pattern":"1876 XXX XXXX","emoji":"🇯🇲\r"},{"phoneCode":"47 79","code":"SJ","name":"Svalbard & Jan Mayen","pattern":"","emoji":"🇸🇯\r"},{"phoneCode":"81","code":"JP","name":"Japan","pattern":"81 XX XXXX XXXX","emoji":"🇯🇵\r"},{"phoneCode":"44","code":"JE","name":"Jersey","pattern":"","emoji":"🇯🇪\r"},{"phoneCode":"962","code":"JO","name":"Jordan","pattern":"962 X XXXX XXXX","emoji":"🇯🇴\r"},{"phoneCode":"7 7","code":"KZ","name":"Kazakhstan","pattern":"7 XXX XXX XX XX","emoji":"🇰🇿\r"},{"phoneCode":"254","code":"KE","name":"Kenya","pattern":"254 XXX XXX XXX","emoji":"🇰🇪\r"},{"phoneCode":"686","code":"KI","name":"Kiribati","pattern":"","emoji":"🇰🇮\r"},{"phoneCode":"850","code":"KP","name":"North Korea","pattern":"","emoji":"🇰🇵\r"},{"phoneCode":"82","code":"KR","name":"South Korea","pattern":"","emoji":"🇰🇷\r"},{"phoneCode":"965","code":"KW","name":"Kuwait","pattern":"965 XXXX XXXX","emoji":"🇰🇼\r"},{"phoneCode":"996","code":"KG","name":"Kyrgyzstan","pattern":"","emoji":"🇰🇬\r"},{"phoneCode":"856","code":"LA","name":"Laos","pattern":"","emoji":"🇱🇦\r"},{"phoneCode":"371","code":"LV","name":"Latvia","pattern":"371 XXX XXXXX","emoji":"🇱🇻\r"},{"phoneCode":"961","code":"LB","name":"Lebanon","pattern":"","emoji":"🇱🇧\r"},{"phoneCode":"266","code":"LS","name":"Lesotho","pattern":"266 XX XXX XXX","emoji":"🇱🇸\r"},{"phoneCode":"231","code":"LR","name":"Liberia","pattern":"","emoji":"🇱🇷\r"},{"phoneCode":"218","code":"LY","name":"Libya","pattern":"218 XX XXX XXXX","emoji":"🇱🇾\r"},{"phoneCode":"423","code":"LI","name":"Liechtenstein","pattern":"","emoji":"🇱🇮\r"},{"phoneCode":"370","code":"LT","name":"Lithuania","pattern":"370 XXX XXXXX","emoji":"🇱🇹\r"},{"phoneCode":"352","code":"LU","name":"Luxembourg","pattern":"","emoji":"🇱🇺\r"},{"phoneCode":"853","code":"MO","name":"Macau SAR China","pattern":"","emoji":"🇲🇴\r"},{"phoneCode":"389","code":"MK","name":"Macedonia","pattern":"","emoji":"🇲🇰\r"},{"phoneCode":"261","code":"MG","name":"Madagascar","pattern":"261 XX XX XXX XX","emoji":"🇲🇬\r"},{"phoneCode":"265","code":"MW","name":"Malawi","pattern":"","emoji":"🇲🇼\r"},{"phoneCode":"60","code":"MM","name":"Malaysia","pattern":"","emoji":"🇲🇲\r"},{"phoneCode":"960","code":"MV","name":"Maldives","pattern":"","emoji":"🇲🇻\r"},{"phoneCode":"223","code":"ML","name":"Mali","pattern":"223 XXXX XXXX","emoji":"🇲🇱\r"},{"phoneCode":"356","code":"MT","name":"Malta","pattern":"356 XX XX XX XX","emoji":"🇲🇹\r"},{"phoneCode":"692","code":"MH","name":"Marshall Islands","pattern":"","emoji":"🇲🇭\r"},{"phoneCode":"596","code":"MQ","name":"Martinique","pattern":"","emoji":"🇲🇶\r"},{"phoneCode":"222","code":"MR","name":"Mauritania","pattern":"222 XXXX XXXX","emoji":"🇲🇷\r"},{"phoneCode":"230","code":"MU","name":"Mauritius","pattern":"","emoji":"🇲🇺\r"},{"phoneCode":"262","code":"YT","name":"Mayotte","pattern":"","emoji":"🇾🇹\r"},{"phoneCode":"52","code":"MX","name":"Mexico","pattern":"","emoji":"🇲🇽\r"},{"phoneCode":"691","code":"FM","name":"Micronesia","pattern":"","emoji":"🇫🇲\r"},{"phoneCode":"373","code":"MD","name":"Moldova","pattern":"373 XX XXX XXX","emoji":"🇲🇩\r"},{"phoneCode":"377","code":"MC","name":"Monaco","pattern":"377 XXXX XXXX","emoji":"🇲🇨\r"},{"phoneCode":"976","code":"MN","name":"Mongolia","pattern":"","emoji":"🇲🇳\r"},{"phoneCode":"382","code":"ME","name":"Montenegro","pattern":"","emoji":"🇲🇪\r"},{"phoneCode":"1 664","code":"MS","name":"Montserrat","pattern":"1664 XXX XXXX","emoji":"🇲🇸\r"},{"phoneCode":"212","code":"MA","name":"Morocco","pattern":"212 XX XXX XXXX","emoji":"🇲🇦\r"},{"phoneCode":"258","code":"MZ","name":"Mozambique","pattern":"258 XX XXX XXXX","emoji":"🇲🇿\r"},{"phoneCode":"264","code":"NA","name":"Namibia","pattern":"264 XX XXX XXXX","emoji":"🇳🇦\r"},{"phoneCode":"674","code":"NR","name":"Nauru","pattern":"","emoji":"🇳🇷\r"},{"phoneCode":"977","code":"NP","name":"Nepal","pattern":"","emoji":"🇳🇵\r"},{"phoneCode":"31","code":"NL","name":"Netherlands","pattern":"31 X XX XX XX XX","emoji":"🇳🇱\r"},{"phoneCode":"687","code":"NC","name":"New Caledonia","pattern":"","emoji":"🇳🇨\r"},{"phoneCode":"64","code":"NZ","name":"New Zealand","pattern":"","emoji":"🇳🇿\r"},{"phoneCode":"505","code":"NI","name":"Nicaragua","pattern":"505 XXXX XXXX","emoji":"🇳🇮\r"},{"phoneCode":"227","code":"NE","name":"Niger","pattern":"227 XX XX XX XX","emoji":"🇳🇪\r"},{"phoneCode":"234","code":"NG","name":"Nigeria","pattern":"","emoji":"🇳🇬\r"},{"phoneCode":"683","code":"NU","name":"Niue","pattern":"","emoji":"🇳🇺\r"},{"phoneCode":"672","code":"NF","name":"Norfolk Island","pattern":"","emoji":"🇳🇫\r"},{"phoneCode":"1 670","code":"MP","name":"Northern Mariana Islands","pattern":"1670 XXX XXXX","emoji":"🇲🇵\r"},{"phoneCode":"47","code":"NO","name":"Norway","pattern":"47 XXXX XXXX","emoji":"🇳🇴\r"},{"phoneCode":"968","code":"OM","name":"Oman","pattern":"968 XXXX XXXX","emoji":"🇴🇲\r"},{"phoneCode":"92","code":"PK","name":"Pakistan","pattern":"92 XXX XXX XXXX","emoji":"🇵🇰\r"},{"phoneCode":"680","code":"PW","name":"Palau","pattern":"","emoji":"🇵🇼\r"},{"phoneCode":"970","code":"PS","name":"Palestinian Territories","pattern":"970 XXX XX XXXX","emoji":"🇵🇸\r"},{"phoneCode":"507","code":"PA","name":"Panama","pattern":"507 XXXX XXXX","emoji":"🇵🇦\r"},{"phoneCode":"675","code":"PG","name":"Papua New Guinea","pattern":"","emoji":"🇵🇬\r"},{"phoneCode":"595","code":"PY","name":"Paraguay","pattern":"595 XXX XXX XXX","emoji":"🇵🇾\r"},{"phoneCode":"51","code":"PE","name":"Peru","pattern":"51 XXX XXX XXX","emoji":"🇵🇪\r"},{"phoneCode":"63","code":"PH","name":"Philippines","pattern":"63 XXX XXX XXXX","emoji":"🇵🇭\r"},{"phoneCode":"64","code":"PN","name":"Pitcairn Islands","pattern":"","emoji":"🇵🇳\r"},{"phoneCode":"48","code":"PL","name":"Poland","pattern":"48 XXX XXX XXX","emoji":"🇵🇱\r"},{"phoneCode":"351","code":"PT","name":"Portugal","pattern":"351 X XXXX XXXX","emoji":"🇵🇹\r"},{"phoneCode":"1 787 and 1 939","code":"PR","name":"Puerto Rico","pattern":"1 XXX XXX XXXX","emoji":"🇵🇷\r"},{"phoneCode":"974","code":"QA","name":"Qatar","pattern":"","emoji":"🇶🇦\r"},{"phoneCode":"262","code":"RE","name":"Reunion","pattern":"262 XXX XXX XXX","emoji":"🇷🇪\r"},{"phoneCode":"40","code":"RO","name":"Romania","pattern":"40 XXX XXX XXX","emoji":"🇷🇴\r"},{"phoneCode":"7","code":"RU","name":"Russia","pattern":"7 XXX XXX XX XX","emoji":"🇷🇺\r"},{"phoneCode":"250","code":"RW","name":"Rwanda","pattern":"250 XXX XXX XXX","emoji":"🇷🇼\r"},{"phoneCode":"590","code":"BL","name":"St. Barthelemy","pattern":"","emoji":"🇧🇱\r"},{"phoneCode":"290","code":"SH","name":"St. Helena","pattern":"290 XX XXX","emoji":"🇸🇭\r"},{"phoneCode":"1 869","code":"KN","name":"St. Kitts & Nevis","pattern":"1869 XXX XXXX","emoji":"🇰🇳\r"},{"phoneCode":"1 758","code":"LC","name":"St. Lucia","pattern":"1758 XXX XXXX","emoji":"🇱🇨\r"},{"phoneCode":"590","code":"MF","name":"St. Martin (France)","pattern":"","emoji":"🇲🇫\r"},{"phoneCode":"508","code":"PM","name":"St. Pierre and Miquelon","pattern":"","emoji":"🇵🇲\r"},{"phoneCode":"1 784","code":"VC","name":"St. Vincent and the Grenadines","pattern":"1784 XXX XXXX","emoji":"🇻🇨\r"},{"phoneCode":"685","code":"WS","name":"Samoa","pattern":"","emoji":"🇼🇸\r"},{"phoneCode":"378","code":"SM","name":"San Marino","pattern":"378 XXX XXX XXXX","emoji":"🇸🇲\r"},{"phoneCode":"239","code":"ST","name":"São Tome & Principe","pattern":"239 XX XXXXX","emoji":"🇸🇹\r"},{"phoneCode":"966","code":"SA","name":"Saudi Arabia","pattern":"","emoji":"🇸🇦\r"},{"phoneCode":"221","code":"SN","name":"Senegal","pattern":"221 XX XXX XXXX","emoji":"🇸🇳\r"},{"phoneCode":"381","code":"RS","name":"Serbia","pattern":"381 XX XXX XXXX","emoji":"🇷🇸\r"},{"phoneCode":"248","code":"SC","name":"Seychelles","pattern":"248 X XX XX XX","emoji":"🇸🇨\r"},{"phoneCode":"232","code":"SL","name":"Sierra Leone","pattern":"232 XX XXX XXX","emoji":"🇸🇱\r"},{"phoneCode":"65","code":"SG","name":"Singapore","pattern":"65 XXXX XXXX","emoji":"🇸🇬\r"},{"phoneCode":"599 3","code":"BQ","name":"Sint Eustatius","pattern":"","emoji":"🇧🇶\r"},{"phoneCode":"1 721","code":"SX","name":"Sint Maarten","pattern":"1721 XXX XXXX","emoji":"🇸🇽\r"},{"phoneCode":"421","code":"SK","name":"Slovakia","pattern":"","emoji":"🇸🇰\r"},{"phoneCode":"386","code":"SI","name":"Slovenia","pattern":"","emoji":"🇸🇮\r"},{"phoneCode":"677","code":"SB","name":"Solomon Islands","pattern":"","emoji":"🇸🇧\r"},{"phoneCode":"252","code":"SO","name":"Somalia","pattern":"252 XX XXX XXX","emoji":"🇸🇴\r"},{"phoneCode":"27","code":"ZA","name":"South Africa","pattern":"27 XX XXX XXXX","emoji":"🇿🇦\r"},{"phoneCode":"500","code":"GS","name":"South Georgia & South Sandwich Islands","pattern":"","emoji":"🇬🇸\r"},{"phoneCode":"995 34","code":"","name":"South Ossetia","pattern":"","emoji":"\r"},{"phoneCode":"211","code":"SS","name":"South Sudan","pattern":"211 XX XXX XXXX","emoji":"🇸🇸\r"},{"phoneCode":"34","code":"ES","name":"Spain","pattern":"34 XXX XXX XXX","emoji":"🇪🇸\r"},{"phoneCode":"94","code":"LK","name":"Sri Lanka","pattern":"94 XX XXX XXXX","emoji":"🇱🇰\r"},{"phoneCode":"249","code":"SD","name":"Sudan","pattern":"249 XX XXX XXXX","emoji":"🇸🇩\r"},{"phoneCode":"597","code":"SR","name":"Suriname","pattern":"597 XXX XXXX","emoji":"🇸🇷\r"},{"phoneCode":"47 79","code":"SJ","name":"Svalbard","pattern":"","emoji":"🇸🇯\r"},{"phoneCode":"268","code":"SZ","name":"Swaziland","pattern":"268 XXXX XXXX","emoji":"🇸🇿\r"},{"phoneCode":"46","code":"SE","name":"Sweden","pattern":"46 XX XXX XXXX","emoji":"🇸🇪\r"},{"phoneCode":"41","code":"CH","name":"Switzerland","pattern":"41 XX XXX XXXX","emoji":"🇨🇭\r"},{"phoneCode":"963","code":"SY","name":"Syria","pattern":"","emoji":"🇸🇾\r"},{"phoneCode":"886","code":"TW","name":"Taiwan","pattern":"","emoji":"🇹🇼\r"},{"phoneCode":"992","code":"TJ","name":"Tajikistan","pattern":"","emoji":"🇹🇯\r"},{"phoneCode":"255","code":"TZ","name":"Tanzania","pattern":"255 XX XXX XXXX","emoji":"🇹🇿\r"},{"phoneCode":"66","code":"TH","name":"Thailand","pattern":"66 X XXXX XXXX","emoji":"🇹🇭\r"},{"phoneCode":"228","code":"TG","name":"Togo","pattern":"228 XX XXX XXX","emoji":"🇹🇬\r"},{"phoneCode":"690","code":"TK","name":"Tokelau","pattern":"","emoji":"🇹🇰\r"},{"phoneCode":"676","code":"TO","name":"Tonga","pattern":"","emoji":"🇹🇴\r"},{"phoneCode":"1 868","code":"TT","name":"Trinidad & Tobago","pattern":"1868 XXX XXXX","emoji":"🇹🇹\r"},{"phoneCode":"216","code":"TN","name":"Tunisia","pattern":"216 XX XXX XXX","emoji":"🇹🇳\r"},{"phoneCode":"90","code":"TR","name":"Turkey","pattern":"90 XXX XXX XXXX","emoji":"🇹🇷\r"},{"phoneCode":"993","code":"TM","name":"Turkmenistan","pattern":"993 XX XXXXXX","emoji":"🇹🇲\r"},{"phoneCode":"1 649","code":"TC","name":"Turks & Caicos Islands","pattern":"1649 XXX XXXX","emoji":"🇹🇨\r"},{"phoneCode":"688","code":"TV","name":"Tuvalu","pattern":"","emoji":"🇹🇻\r"},{"phoneCode":"256","code":"UG","name":"Uganda","pattern":"256 XX XXX XXXX","emoji":"🇺🇬\r"},{"phoneCode":"380","code":"UA","name":"Ukraine","pattern":"380 XX XXX XX XX","emoji":"🇺🇦\r"},{"phoneCode":"971","code":"AE","name":"United Arab Emirates","pattern":"971 XX XXX XXXX","emoji":"🇦🇪\r"},{"phoneCode":"44","code":"GB","name":"United Kingdom","pattern":"44 XXXX XXXXXX","emoji":"🇬🇧\r"},{"phoneCode":"1","code":"US","name":"United States","pattern":"1 XXX XXX XXXX","emoji":"🇺🇸\r"},{"phoneCode":"598","code":"UY","name":"Uruguay","pattern":"598 XXXX XXXX","emoji":"🇺🇾\r"},{"phoneCode":"1 340","code":"VI","name":"U.S. Virgin Islands","pattern":"1340 XXX XXXX","emoji":"🇻🇮\r"},{"phoneCode":"998","code":"UZ","name":"Uzbekistan","pattern":"998 XX XXXXXXX","emoji":"🇺🇿\r"},{"phoneCode":"678","code":"VU","name":"Vanuatu","pattern":"","emoji":"🇻🇺\r"},{"phoneCode":"58","code":"VE","name":"Venezuela","pattern":"58 XXX XXX XXXX","emoji":"🇻🇪\r"},{"phoneCode":"39 06 698","code":"VA","name":"Vatican City","pattern":"","emoji":"🇻🇦\r"},{"phoneCode":"84","code":"VN","name":"Vietnam","pattern":"","emoji":"🇻🇳\r"},{"phoneCode":"681","code":"WF","name":"Wallis & Futuna","pattern":"","emoji":"🇼🇫\r"},{"phoneCode":"967","code":"YE","name":"Yemen","pattern":"967 XXX XXX XXX","emoji":"🇾🇪\r"},{"phoneCode":"260","code":"ZM","name":"Zambia","pattern":"260 XX XXX XXXX","emoji":"🇿🇲\r"},{"phoneCode":"255","code":"","name":"Zanzibar","pattern":"","emoji":"\r"},{"phoneCode":"263","code":"ZW","name":"Zimbabwe","pattern":"263 XX XXX XXXX","emoji":"🇿🇼\r"}] \ No newline at end of file diff --git a/src/emoji.json b/src/emoji.json index 2249bc3a..87f4509d 100644 --- a/src/emoji.json +++ b/src/emoji.json @@ -1 +1 @@ -{"#️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":0,"sort_order":132},"*️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":1,"sort_order":133},"0️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":2,"sort_order":134},"1️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":3,"sort_order":135},"2️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":4,"sort_order":136},"3️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":5,"sort_order":137},"4️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":6,"sort_order":138},"5️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":7,"sort_order":139},"6️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":8,"sort_order":140},"7️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":9,"sort_order":141},"8️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":10,"sort_order":142},"9️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":11,"sort_order":143},"©️":{"category":"Symbols","sheet_x":0,"sheet_y":12,"sort_order":129},"®️":{"category":"Symbols","sheet_x":0,"sheet_y":13,"sort_order":130},"🀄":{"category":"Activities","sheet_x":0,"sheet_y":14,"sort_order":73},"🃏":{"category":"Activities","sheet_x":0,"sheet_y":15,"sort_order":72},"🅰️":{"category":"Symbols","sheet_x":0,"sheet_y":16,"sort_order":150},"🅱️":{"category":"Symbols","sheet_x":0,"sheet_y":17,"sort_order":152},"🅾️":{"category":"Symbols","sheet_x":0,"sheet_y":18,"sort_order":161},"🅿️":{"category":"Symbols","sheet_x":0,"sheet_y":19,"sort_order":163},"🆎":{"category":"Symbols","sheet_x":0,"sheet_y":20,"sort_order":151},"🆑":{"category":"Symbols","sheet_x":0,"sheet_y":21,"sort_order":153},"🆒":{"category":"Symbols","sheet_x":0,"sheet_y":22,"sort_order":154},"🆓":{"category":"Symbols","sheet_x":0,"sheet_y":23,"sort_order":155},"🆔":{"category":"Symbols","sheet_x":0,"sheet_y":24,"sort_order":157},"🆕":{"category":"Symbols","sheet_x":0,"sheet_y":25,"sort_order":159},"🆖":{"category":"Symbols","sheet_x":0,"sheet_y":26,"sort_order":160},"🆗":{"category":"Symbols","sheet_x":0,"sheet_y":27,"sort_order":162},"🆘":{"category":"Symbols","sheet_x":0,"sheet_y":28,"sort_order":164},"🆙":{"category":"Symbols","sheet_x":0,"sheet_y":29,"sort_order":165},"🆚":{"category":"Symbols","sheet_x":0,"sheet_y":30,"sort_order":166},"🇦🇨":{"category":"Flags","sheet_x":0,"sheet_y":31,"sort_order":8},"🇦🇩":{"category":"Flags","sheet_x":0,"sheet_y":32,"sort_order":9},"🇦🇪":{"category":"Flags","sheet_x":0,"sheet_y":33,"sort_order":10},"🇦🇫":{"category":"Flags","sheet_x":0,"sheet_y":34,"sort_order":11},"🇦🇬":{"category":"Flags","sheet_x":0,"sheet_y":35,"sort_order":12},"🇦🇮":{"category":"Flags","sheet_x":0,"sheet_y":36,"sort_order":13},"🇦🇱":{"category":"Flags","sheet_x":0,"sheet_y":37,"sort_order":14},"🇦🇲":{"category":"Flags","sheet_x":0,"sheet_y":38,"sort_order":15},"🇦🇴":{"category":"Flags","sheet_x":0,"sheet_y":39,"sort_order":16},"🇦🇶":{"category":"Flags","sheet_x":0,"sheet_y":40,"sort_order":17},"🇦🇷":{"category":"Flags","sheet_x":0,"sheet_y":41,"sort_order":18},"🇦🇸":{"category":"Flags","sheet_x":0,"sheet_y":42,"sort_order":19},"🇦🇹":{"category":"Flags","sheet_x":0,"sheet_y":43,"sort_order":20},"🇦🇺":{"category":"Flags","sheet_x":0,"sheet_y":44,"sort_order":21},"🇦🇼":{"category":"Flags","sheet_x":0,"sheet_y":45,"sort_order":22},"🇦🇽":{"category":"Flags","sheet_x":0,"sheet_y":46,"sort_order":23},"🇦🇿":{"category":"Flags","sheet_x":0,"sheet_y":47,"sort_order":24},"🇧🇦":{"category":"Flags","sheet_x":0,"sheet_y":48,"sort_order":25},"🇧🇧":{"category":"Flags","sheet_x":0,"sheet_y":49,"sort_order":26},"🇧🇩":{"category":"Flags","sheet_x":0,"sheet_y":50,"sort_order":27},"🇧🇪":{"category":"Flags","sheet_x":0,"sheet_y":51,"sort_order":28},"🇧🇫":{"category":"Flags","sheet_x":0,"sheet_y":52,"sort_order":29},"🇧🇬":{"category":"Flags","sheet_x":0,"sheet_y":53,"sort_order":30},"🇧🇭":{"category":"Flags","sheet_x":0,"sheet_y":54,"sort_order":31},"🇧🇮":{"category":"Flags","sheet_x":0,"sheet_y":55,"sort_order":32},"🇧🇯":{"category":"Flags","sheet_x":0,"sheet_y":56,"sort_order":33},"🇧🇱":{"category":"Flags","sheet_x":1,"sheet_y":0,"sort_order":34},"🇧🇲":{"category":"Flags","sheet_x":1,"sheet_y":1,"sort_order":35},"🇧🇳":{"category":"Flags","sheet_x":1,"sheet_y":2,"sort_order":36},"🇧🇴":{"category":"Flags","sheet_x":1,"sheet_y":3,"sort_order":37},"🇧🇶":{"category":"Flags","sheet_x":1,"sheet_y":4,"sort_order":38},"🇧🇷":{"category":"Flags","sheet_x":1,"sheet_y":5,"sort_order":39},"🇧🇸":{"category":"Flags","sheet_x":1,"sheet_y":6,"sort_order":40},"🇧🇹":{"category":"Flags","sheet_x":1,"sheet_y":7,"sort_order":41},"🇧🇻":{"category":"Flags","sheet_x":1,"sheet_y":8,"sort_order":42},"🇧🇼":{"category":"Flags","sheet_x":1,"sheet_y":9,"sort_order":43},"🇧🇾":{"category":"Flags","sheet_x":1,"sheet_y":10,"sort_order":44},"🇧🇿":{"category":"Flags","sheet_x":1,"sheet_y":11,"sort_order":45},"🇨🇦":{"category":"Flags","sheet_x":1,"sheet_y":12,"sort_order":46},"🇨🇨":{"category":"Flags","sheet_x":1,"sheet_y":13,"sort_order":47},"🇨🇩":{"category":"Flags","sheet_x":1,"sheet_y":14,"sort_order":48},"🇨🇫":{"category":"Flags","sheet_x":1,"sheet_y":15,"sort_order":49},"🇨🇬":{"category":"Flags","sheet_x":1,"sheet_y":16,"sort_order":50},"🇨🇭":{"category":"Flags","sheet_x":1,"sheet_y":17,"sort_order":51},"🇨🇮":{"category":"Flags","sheet_x":1,"sheet_y":18,"sort_order":52},"🇨🇰":{"category":"Flags","sheet_x":1,"sheet_y":19,"sort_order":53},"🇨🇱":{"category":"Flags","sheet_x":1,"sheet_y":20,"sort_order":54},"🇨🇲":{"category":"Flags","sheet_x":1,"sheet_y":21,"sort_order":55},"🇨🇳":{"category":"Flags","sheet_x":1,"sheet_y":22,"sort_order":56},"🇨🇴":{"category":"Flags","sheet_x":1,"sheet_y":23,"sort_order":57},"🇨🇵":{"category":"Flags","sheet_x":1,"sheet_y":24,"sort_order":58},"🇨🇷":{"category":"Flags","sheet_x":1,"sheet_y":25,"sort_order":59},"🇨🇺":{"category":"Flags","sheet_x":1,"sheet_y":26,"sort_order":60},"🇨🇻":{"category":"Flags","sheet_x":1,"sheet_y":27,"sort_order":61},"🇨🇼":{"category":"Flags","sheet_x":1,"sheet_y":28,"sort_order":62},"🇨🇽":{"category":"Flags","sheet_x":1,"sheet_y":29,"sort_order":63},"🇨🇾":{"category":"Flags","sheet_x":1,"sheet_y":30,"sort_order":64},"🇨🇿":{"category":"Flags","sheet_x":1,"sheet_y":31,"sort_order":65},"🇩🇪":{"category":"Flags","sheet_x":1,"sheet_y":32,"sort_order":66},"🇩🇬":{"category":"Flags","sheet_x":1,"sheet_y":33,"sort_order":67},"🇩🇯":{"category":"Flags","sheet_x":1,"sheet_y":34,"sort_order":68},"🇩🇰":{"category":"Flags","sheet_x":1,"sheet_y":35,"sort_order":69},"🇩🇲":{"category":"Flags","sheet_x":1,"sheet_y":36,"sort_order":70},"🇩🇴":{"category":"Flags","sheet_x":1,"sheet_y":37,"sort_order":71},"🇩🇿":{"category":"Flags","sheet_x":1,"sheet_y":38,"sort_order":72},"🇪🇦":{"category":"Flags","sheet_x":1,"sheet_y":39,"sort_order":73},"🇪🇨":{"category":"Flags","sheet_x":1,"sheet_y":40,"sort_order":74},"🇪🇪":{"category":"Flags","sheet_x":1,"sheet_y":41,"sort_order":75},"🇪🇬":{"category":"Flags","sheet_x":1,"sheet_y":42,"sort_order":76},"🇪🇭":{"category":"Flags","sheet_x":1,"sheet_y":43,"sort_order":77},"🇪🇷":{"category":"Flags","sheet_x":1,"sheet_y":44,"sort_order":78},"🇪🇸":{"category":"Flags","sheet_x":1,"sheet_y":45,"sort_order":79},"🇪🇹":{"category":"Flags","sheet_x":1,"sheet_y":46,"sort_order":80},"🇪🇺":{"category":"Flags","sheet_x":1,"sheet_y":47,"sort_order":81},"🇫🇮":{"category":"Flags","sheet_x":1,"sheet_y":48,"sort_order":82},"🇫🇯":{"category":"Flags","sheet_x":1,"sheet_y":49,"sort_order":83},"🇫🇰":{"category":"Flags","sheet_x":1,"sheet_y":50,"sort_order":84},"🇫🇲":{"category":"Flags","sheet_x":1,"sheet_y":51,"sort_order":85},"🇫🇴":{"category":"Flags","sheet_x":1,"sheet_y":52,"sort_order":86},"🇫🇷":{"category":"Flags","sheet_x":1,"sheet_y":53,"sort_order":87},"🇬🇦":{"category":"Flags","sheet_x":1,"sheet_y":54,"sort_order":88},"🇬🇧":{"category":"Flags","sheet_x":1,"sheet_y":55,"sort_order":89},"🇬🇩":{"category":"Flags","sheet_x":1,"sheet_y":56,"sort_order":90},"🇬🇪":{"category":"Flags","sheet_x":2,"sheet_y":0,"sort_order":91},"🇬🇫":{"category":"Flags","sheet_x":2,"sheet_y":1,"sort_order":92},"🇬🇬":{"category":"Flags","sheet_x":2,"sheet_y":2,"sort_order":93},"🇬🇭":{"category":"Flags","sheet_x":2,"sheet_y":3,"sort_order":94},"🇬🇮":{"category":"Flags","sheet_x":2,"sheet_y":4,"sort_order":95},"🇬🇱":{"category":"Flags","sheet_x":2,"sheet_y":5,"sort_order":96},"🇬🇲":{"category":"Flags","sheet_x":2,"sheet_y":6,"sort_order":97},"🇬🇳":{"category":"Flags","sheet_x":2,"sheet_y":7,"sort_order":98},"🇬🇵":{"category":"Flags","sheet_x":2,"sheet_y":8,"sort_order":99},"🇬🇶":{"category":"Flags","sheet_x":2,"sheet_y":9,"sort_order":100},"🇬🇷":{"category":"Flags","sheet_x":2,"sheet_y":10,"sort_order":101},"🇬🇸":{"category":"Flags","sheet_x":2,"sheet_y":11,"sort_order":102},"🇬🇹":{"category":"Flags","sheet_x":2,"sheet_y":12,"sort_order":103},"🇬🇺":{"category":"Flags","sheet_x":2,"sheet_y":13,"sort_order":104},"🇬🇼":{"category":"Flags","sheet_x":2,"sheet_y":14,"sort_order":105},"🇬🇾":{"category":"Flags","sheet_x":2,"sheet_y":15,"sort_order":106},"🇭🇰":{"category":"Flags","sheet_x":2,"sheet_y":16,"sort_order":107},"🇭🇲":{"category":"Flags","sheet_x":2,"sheet_y":17,"sort_order":108},"🇭🇳":{"category":"Flags","sheet_x":2,"sheet_y":18,"sort_order":109},"🇭🇷":{"category":"Flags","sheet_x":2,"sheet_y":19,"sort_order":110},"🇭🇹":{"category":"Flags","sheet_x":2,"sheet_y":20,"sort_order":111},"🇭🇺":{"category":"Flags","sheet_x":2,"sheet_y":21,"sort_order":112},"🇮🇨":{"category":"Flags","sheet_x":2,"sheet_y":22,"sort_order":113},"🇮🇩":{"category":"Flags","sheet_x":2,"sheet_y":23,"sort_order":114},"🇮🇪":{"category":"Flags","sheet_x":2,"sheet_y":24,"sort_order":115},"🇮🇱":{"category":"Flags","sheet_x":2,"sheet_y":25,"sort_order":116},"🇮🇲":{"category":"Flags","sheet_x":2,"sheet_y":26,"sort_order":117},"🇮🇳":{"category":"Flags","sheet_x":2,"sheet_y":27,"sort_order":118},"🇮🇴":{"category":"Flags","sheet_x":2,"sheet_y":28,"sort_order":119},"🇮🇶":{"category":"Flags","sheet_x":2,"sheet_y":29,"sort_order":120},"🇮🇷":{"category":"Flags","sheet_x":2,"sheet_y":30,"sort_order":121},"🇮🇸":{"category":"Flags","sheet_x":2,"sheet_y":31,"sort_order":122},"🇮🇹":{"category":"Flags","sheet_x":2,"sheet_y":32,"sort_order":123},"🇯🇪":{"category":"Flags","sheet_x":2,"sheet_y":33,"sort_order":124},"🇯🇲":{"category":"Flags","sheet_x":2,"sheet_y":34,"sort_order":125},"🇯🇴":{"category":"Flags","sheet_x":2,"sheet_y":35,"sort_order":126},"🇯🇵":{"category":"Flags","sheet_x":2,"sheet_y":36,"sort_order":127},"🇰🇪":{"category":"Flags","sheet_x":2,"sheet_y":37,"sort_order":128},"🇰🇬":{"category":"Flags","sheet_x":2,"sheet_y":38,"sort_order":129},"🇰🇭":{"category":"Flags","sheet_x":2,"sheet_y":39,"sort_order":130},"🇰🇮":{"category":"Flags","sheet_x":2,"sheet_y":40,"sort_order":131},"🇰🇲":{"category":"Flags","sheet_x":2,"sheet_y":41,"sort_order":132},"🇰🇳":{"category":"Flags","sheet_x":2,"sheet_y":42,"sort_order":133},"🇰🇵":{"category":"Flags","sheet_x":2,"sheet_y":43,"sort_order":134},"🇰🇷":{"category":"Flags","sheet_x":2,"sheet_y":44,"sort_order":135},"🇰🇼":{"category":"Flags","sheet_x":2,"sheet_y":45,"sort_order":136},"🇰🇾":{"category":"Flags","sheet_x":2,"sheet_y":46,"sort_order":137},"🇰🇿":{"category":"Flags","sheet_x":2,"sheet_y":47,"sort_order":138},"🇱🇦":{"category":"Flags","sheet_x":2,"sheet_y":48,"sort_order":139},"🇱🇧":{"category":"Flags","sheet_x":2,"sheet_y":49,"sort_order":140},"🇱🇨":{"category":"Flags","sheet_x":2,"sheet_y":50,"sort_order":141},"🇱🇮":{"category":"Flags","sheet_x":2,"sheet_y":51,"sort_order":142},"🇱🇰":{"category":"Flags","sheet_x":2,"sheet_y":52,"sort_order":143},"🇱🇷":{"category":"Flags","sheet_x":2,"sheet_y":53,"sort_order":144},"🇱🇸":{"category":"Flags","sheet_x":2,"sheet_y":54,"sort_order":145},"🇱🇹":{"category":"Flags","sheet_x":2,"sheet_y":55,"sort_order":146},"🇱🇺":{"category":"Flags","sheet_x":2,"sheet_y":56,"sort_order":147},"🇱🇻":{"category":"Flags","sheet_x":3,"sheet_y":0,"sort_order":148},"🇱🇾":{"category":"Flags","sheet_x":3,"sheet_y":1,"sort_order":149},"🇲🇦":{"category":"Flags","sheet_x":3,"sheet_y":2,"sort_order":150},"🇲🇨":{"category":"Flags","sheet_x":3,"sheet_y":3,"sort_order":151},"🇲🇩":{"category":"Flags","sheet_x":3,"sheet_y":4,"sort_order":152},"🇲🇪":{"category":"Flags","sheet_x":3,"sheet_y":5,"sort_order":153},"🇲🇫":{"category":"Flags","sheet_x":3,"sheet_y":6,"sort_order":154},"🇲🇬":{"category":"Flags","sheet_x":3,"sheet_y":7,"sort_order":155},"🇲🇭":{"category":"Flags","sheet_x":3,"sheet_y":8,"sort_order":156},"🇲🇰":{"category":"Flags","sheet_x":3,"sheet_y":9,"sort_order":157},"🇲🇱":{"category":"Flags","sheet_x":3,"sheet_y":10,"sort_order":158},"🇲🇲":{"category":"Flags","sheet_x":3,"sheet_y":11,"sort_order":159},"🇲🇳":{"category":"Flags","sheet_x":3,"sheet_y":12,"sort_order":160},"🇲🇴":{"category":"Flags","sheet_x":3,"sheet_y":13,"sort_order":161},"🇲🇵":{"category":"Flags","sheet_x":3,"sheet_y":14,"sort_order":162},"🇲🇶":{"category":"Flags","sheet_x":3,"sheet_y":15,"sort_order":163},"🇲🇷":{"category":"Flags","sheet_x":3,"sheet_y":16,"sort_order":164},"🇲🇸":{"category":"Flags","sheet_x":3,"sheet_y":17,"sort_order":165},"🇲🇹":{"category":"Flags","sheet_x":3,"sheet_y":18,"sort_order":166},"🇲🇺":{"category":"Flags","sheet_x":3,"sheet_y":19,"sort_order":167},"🇲🇻":{"category":"Flags","sheet_x":3,"sheet_y":20,"sort_order":168},"🇲🇼":{"category":"Flags","sheet_x":3,"sheet_y":21,"sort_order":169},"🇲🇽":{"category":"Flags","sheet_x":3,"sheet_y":22,"sort_order":170},"🇲🇾":{"category":"Flags","sheet_x":3,"sheet_y":23,"sort_order":171},"🇲🇿":{"category":"Flags","sheet_x":3,"sheet_y":24,"sort_order":172},"🇳🇦":{"category":"Flags","sheet_x":3,"sheet_y":25,"sort_order":173},"🇳🇨":{"category":"Flags","sheet_x":3,"sheet_y":26,"sort_order":174},"🇳🇪":{"category":"Flags","sheet_x":3,"sheet_y":27,"sort_order":175},"🇳🇫":{"category":"Flags","sheet_x":3,"sheet_y":28,"sort_order":176},"🇳🇬":{"category":"Flags","sheet_x":3,"sheet_y":29,"sort_order":177},"🇳🇮":{"category":"Flags","sheet_x":3,"sheet_y":30,"sort_order":178},"🇳🇱":{"category":"Flags","sheet_x":3,"sheet_y":31,"sort_order":179},"🇳🇴":{"category":"Flags","sheet_x":3,"sheet_y":32,"sort_order":180},"🇳🇵":{"category":"Flags","sheet_x":3,"sheet_y":33,"sort_order":181},"🇳🇷":{"category":"Flags","sheet_x":3,"sheet_y":34,"sort_order":182},"🇳🇺":{"category":"Flags","sheet_x":3,"sheet_y":35,"sort_order":183},"🇳🇿":{"category":"Flags","sheet_x":3,"sheet_y":36,"sort_order":184},"🇴🇲":{"category":"Flags","sheet_x":3,"sheet_y":37,"sort_order":185},"🇵🇦":{"category":"Flags","sheet_x":3,"sheet_y":38,"sort_order":186},"🇵🇪":{"category":"Flags","sheet_x":3,"sheet_y":39,"sort_order":187},"🇵🇫":{"category":"Flags","sheet_x":3,"sheet_y":40,"sort_order":188},"🇵🇬":{"category":"Flags","sheet_x":3,"sheet_y":41,"sort_order":189},"🇵🇭":{"category":"Flags","sheet_x":3,"sheet_y":42,"sort_order":190},"🇵🇰":{"category":"Flags","sheet_x":3,"sheet_y":43,"sort_order":191},"🇵🇱":{"category":"Flags","sheet_x":3,"sheet_y":44,"sort_order":192},"🇵🇲":{"category":"Flags","sheet_x":3,"sheet_y":45,"sort_order":193},"🇵🇳":{"category":"Flags","sheet_x":3,"sheet_y":46,"sort_order":194},"🇵🇷":{"category":"Flags","sheet_x":3,"sheet_y":47,"sort_order":195},"🇵🇸":{"category":"Flags","sheet_x":3,"sheet_y":48,"sort_order":196},"🇵🇹":{"category":"Flags","sheet_x":3,"sheet_y":49,"sort_order":197},"🇵🇼":{"category":"Flags","sheet_x":3,"sheet_y":50,"sort_order":198},"🇵🇾":{"category":"Flags","sheet_x":3,"sheet_y":51,"sort_order":199},"🇶🇦":{"category":"Flags","sheet_x":3,"sheet_y":52,"sort_order":200},"🇷🇪":{"category":"Flags","sheet_x":3,"sheet_y":53,"sort_order":201},"🇷🇴":{"category":"Flags","sheet_x":3,"sheet_y":54,"sort_order":202},"🇷🇸":{"category":"Flags","sheet_x":3,"sheet_y":55,"sort_order":203},"🇷🇺":{"category":"Flags","sheet_x":3,"sheet_y":56,"sort_order":204},"🇷🇼":{"category":"Flags","sheet_x":4,"sheet_y":0,"sort_order":205},"🇸🇦":{"category":"Flags","sheet_x":4,"sheet_y":1,"sort_order":206},"🇸🇧":{"category":"Flags","sheet_x":4,"sheet_y":2,"sort_order":207},"🇸🇨":{"category":"Flags","sheet_x":4,"sheet_y":3,"sort_order":208},"🇸🇩":{"category":"Flags","sheet_x":4,"sheet_y":4,"sort_order":209},"🇸🇪":{"category":"Flags","sheet_x":4,"sheet_y":5,"sort_order":210},"🇸🇬":{"category":"Flags","sheet_x":4,"sheet_y":6,"sort_order":211},"🇸🇭":{"category":"Flags","sheet_x":4,"sheet_y":7,"sort_order":212},"🇸🇮":{"category":"Flags","sheet_x":4,"sheet_y":8,"sort_order":213},"🇸🇯":{"category":"Flags","sheet_x":4,"sheet_y":9,"sort_order":214},"🇸🇰":{"category":"Flags","sheet_x":4,"sheet_y":10,"sort_order":215},"🇸🇱":{"category":"Flags","sheet_x":4,"sheet_y":11,"sort_order":216},"🇸🇲":{"category":"Flags","sheet_x":4,"sheet_y":12,"sort_order":217},"🇸🇳":{"category":"Flags","sheet_x":4,"sheet_y":13,"sort_order":218},"🇸🇴":{"category":"Flags","sheet_x":4,"sheet_y":14,"sort_order":219},"🇸🇷":{"category":"Flags","sheet_x":4,"sheet_y":15,"sort_order":220},"🇸🇸":{"category":"Flags","sheet_x":4,"sheet_y":16,"sort_order":221},"🇸🇹":{"category":"Flags","sheet_x":4,"sheet_y":17,"sort_order":222},"🇸🇻":{"category":"Flags","sheet_x":4,"sheet_y":18,"sort_order":223},"🇸🇽":{"category":"Flags","sheet_x":4,"sheet_y":19,"sort_order":224},"🇸🇾":{"category":"Flags","sheet_x":4,"sheet_y":20,"sort_order":225},"🇸🇿":{"category":"Flags","sheet_x":4,"sheet_y":21,"sort_order":226},"🇹🇦":{"category":"Flags","sheet_x":4,"sheet_y":22,"sort_order":227},"🇹🇨":{"category":"Flags","sheet_x":4,"sheet_y":23,"sort_order":228},"🇹🇩":{"category":"Flags","sheet_x":4,"sheet_y":24,"sort_order":229},"🇹🇫":{"category":"Flags","sheet_x":4,"sheet_y":25,"sort_order":230},"🇹🇬":{"category":"Flags","sheet_x":4,"sheet_y":26,"sort_order":231},"🇹🇭":{"category":"Flags","sheet_x":4,"sheet_y":27,"sort_order":232},"🇹🇯":{"category":"Flags","sheet_x":4,"sheet_y":28,"sort_order":233},"🇹🇰":{"category":"Flags","sheet_x":4,"sheet_y":29,"sort_order":234},"🇹🇱":{"category":"Flags","sheet_x":4,"sheet_y":30,"sort_order":235},"🇹🇲":{"category":"Flags","sheet_x":4,"sheet_y":31,"sort_order":236},"🇹🇳":{"category":"Flags","sheet_x":4,"sheet_y":32,"sort_order":237},"🇹🇴":{"category":"Flags","sheet_x":4,"sheet_y":33,"sort_order":238},"🇹🇷":{"category":"Flags","sheet_x":4,"sheet_y":34,"sort_order":239},"🇹🇹":{"category":"Flags","sheet_x":4,"sheet_y":35,"sort_order":240},"🇹🇻":{"category":"Flags","sheet_x":4,"sheet_y":36,"sort_order":241},"🇹🇼":{"category":"Flags","sheet_x":4,"sheet_y":37,"sort_order":242},"🇹🇿":{"category":"Flags","sheet_x":4,"sheet_y":38,"sort_order":243},"🇺🇦":{"category":"Flags","sheet_x":4,"sheet_y":39,"sort_order":244},"🇺🇬":{"category":"Flags","sheet_x":4,"sheet_y":40,"sort_order":245},"🇺🇲":{"category":"Flags","sheet_x":4,"sheet_y":41,"sort_order":246},"🇺🇳":{"category":"Flags","sheet_x":4,"sheet_y":42,"sort_order":247},"🇺🇸":{"category":"Flags","sheet_x":4,"sheet_y":43,"sort_order":248},"🇺🇾":{"category":"Flags","sheet_x":4,"sheet_y":44,"sort_order":249},"🇺🇿":{"category":"Flags","sheet_x":4,"sheet_y":45,"sort_order":250},"🇻🇦":{"category":"Flags","sheet_x":4,"sheet_y":46,"sort_order":251},"🇻🇨":{"category":"Flags","sheet_x":4,"sheet_y":47,"sort_order":252},"🇻🇪":{"category":"Flags","sheet_x":4,"sheet_y":48,"sort_order":253},"🇻🇬":{"category":"Flags","sheet_x":4,"sheet_y":49,"sort_order":254},"🇻🇮":{"category":"Flags","sheet_x":4,"sheet_y":50,"sort_order":255},"🇻🇳":{"category":"Flags","sheet_x":4,"sheet_y":51,"sort_order":256},"🇻🇺":{"category":"Flags","sheet_x":4,"sheet_y":52,"sort_order":257},"🇼🇫":{"category":"Flags","sheet_x":4,"sheet_y":53,"sort_order":258},"🇼🇸":{"category":"Flags","sheet_x":4,"sheet_y":54,"sort_order":259},"🇽🇰":{"category":"Flags","sheet_x":4,"sheet_y":55,"sort_order":260},"🇾🇪":{"category":"Flags","sheet_x":4,"sheet_y":56,"sort_order":261},"🇾🇹":{"category":"Flags","sheet_x":5,"sheet_y":0,"sort_order":262},"🇿🇦":{"category":"Flags","sheet_x":5,"sheet_y":1,"sort_order":263},"🇿🇲":{"category":"Flags","sheet_x":5,"sheet_y":2,"sort_order":264},"🇿🇼":{"category":"Flags","sheet_x":5,"sheet_y":3,"sort_order":265},"🈁":{"category":"Symbols","sheet_x":5,"sheet_y":4,"sort_order":167},"🈂️":{"category":"Symbols","sheet_x":5,"sheet_y":5,"sort_order":168},"🈚":{"category":"Symbols","sheet_x":5,"sheet_y":6,"sort_order":174},"🈯":{"category":"Symbols","sheet_x":5,"sheet_y":7,"sort_order":171},"🈲":{"category":"Symbols","sheet_x":5,"sheet_y":8,"sort_order":175},"🈳":{"category":"Symbols","sheet_x":5,"sheet_y":9,"sort_order":179},"🈴":{"category":"Symbols","sheet_x":5,"sheet_y":10,"sort_order":178},"🈵":{"category":"Symbols","sheet_x":5,"sheet_y":11,"sort_order":183},"🈶":{"category":"Symbols","sheet_x":5,"sheet_y":12,"sort_order":170},"🈷️":{"category":"Symbols","sheet_x":5,"sheet_y":13,"sort_order":169},"🈸":{"category":"Symbols","sheet_x":5,"sheet_y":14,"sort_order":177},"🈹":{"category":"Symbols","sheet_x":5,"sheet_y":15,"sort_order":173},"🈺":{"category":"Symbols","sheet_x":5,"sheet_y":16,"sort_order":182},"🉐":{"category":"Symbols","sheet_x":5,"sheet_y":17,"sort_order":172},"🉑":{"category":"Symbols","sheet_x":5,"sheet_y":18,"sort_order":176},"🌀":{"category":"Travel & Places","sheet_x":5,"sheet_y":19,"sort_order":197},"🌁":{"category":"Travel & Places","sheet_x":5,"sheet_y":20,"sort_order":49},"🌂":{"category":"Travel & Places","sheet_x":5,"sheet_y":21,"sort_order":199},"🌃":{"category":"Travel & Places","sheet_x":5,"sheet_y":22,"sort_order":50},"🌄":{"category":"Travel & Places","sheet_x":5,"sheet_y":23,"sort_order":52},"🌅":{"category":"Travel & Places","sheet_x":5,"sheet_y":24,"sort_order":53},"🌆":{"category":"Travel & Places","sheet_x":5,"sheet_y":25,"sort_order":54},"🌇":{"category":"Travel & Places","sheet_x":5,"sheet_y":26,"sort_order":55},"🌈":{"category":"Travel & Places","sheet_x":5,"sheet_y":27,"sort_order":198},"🌉":{"category":"Travel & Places","sheet_x":5,"sheet_y":28,"sort_order":56},"🌊":{"category":"Travel & Places","sheet_x":5,"sheet_y":29,"sort_order":210},"🌋":{"category":"Travel & Places","sheet_x":5,"sheet_y":30,"sort_order":10},"🌌":{"category":"Travel & Places","sheet_x":5,"sheet_y":31,"sort_order":184},"🌍":{"category":"Travel & Places","sheet_x":5,"sheet_y":32,"sort_order":1},"🌎":{"category":"Travel & Places","sheet_x":5,"sheet_y":33,"sort_order":2},"🌏":{"category":"Travel & Places","sheet_x":5,"sheet_y":34,"sort_order":3},"🌐":{"category":"Travel & Places","sheet_x":5,"sheet_y":35,"sort_order":4},"🌑":{"category":"Travel & Places","sheet_x":5,"sheet_y":36,"sort_order":164},"🌒":{"category":"Travel & Places","sheet_x":5,"sheet_y":37,"sort_order":165},"🌓":{"category":"Travel & Places","sheet_x":5,"sheet_y":38,"sort_order":166},"🌔":{"category":"Travel & Places","sheet_x":5,"sheet_y":39,"sort_order":167},"🌕":{"category":"Travel & Places","sheet_x":5,"sheet_y":40,"sort_order":168},"🌖":{"category":"Travel & Places","sheet_x":5,"sheet_y":41,"sort_order":169},"🌗":{"category":"Travel & Places","sheet_x":5,"sheet_y":42,"sort_order":170},"🌘":{"category":"Travel & Places","sheet_x":5,"sheet_y":43,"sort_order":171},"🌙":{"category":"Travel & Places","sheet_x":5,"sheet_y":44,"sort_order":172},"🌚":{"category":"Travel & Places","sheet_x":5,"sheet_y":45,"sort_order":173},"🌛":{"category":"Travel & Places","sheet_x":5,"sheet_y":46,"sort_order":174},"🌜":{"category":"Travel & Places","sheet_x":5,"sheet_y":47,"sort_order":175},"🌝":{"category":"Travel & Places","sheet_x":5,"sheet_y":48,"sort_order":178},"🌞":{"category":"Travel & Places","sheet_x":5,"sheet_y":49,"sort_order":179},"🌟":{"category":"Travel & Places","sheet_x":5,"sheet_y":50,"sort_order":182},"🌠":{"category":"Travel & Places","sheet_x":5,"sheet_y":51,"sort_order":183},"🌡️":{"category":"Travel & Places","sheet_x":5,"sheet_y":52,"sort_order":176},"🌤️":{"category":"Travel & Places","sheet_x":5,"sheet_y":53,"sort_order":188},"🌥️":{"category":"Travel & Places","sheet_x":5,"sheet_y":54,"sort_order":189},"🌦️":{"category":"Travel & Places","sheet_x":5,"sheet_y":55,"sort_order":190},"🌧️":{"category":"Travel & Places","sheet_x":5,"sheet_y":56,"sort_order":191},"🌨️":{"category":"Travel & Places","sheet_x":6,"sheet_y":0,"sort_order":192},"🌩️":{"category":"Travel & Places","sheet_x":6,"sheet_y":1,"sort_order":193},"🌪️":{"category":"Travel & Places","sheet_x":6,"sheet_y":2,"sort_order":194},"🌫️":{"category":"Travel & Places","sheet_x":6,"sheet_y":3,"sort_order":195},"🌬️":{"category":"Travel & Places","sheet_x":6,"sheet_y":4,"sort_order":196},"🌭":{"category":"Food & Drink","sheet_x":6,"sheet_y":5,"sort_order":47},"🌮":{"category":"Food & Drink","sheet_x":6,"sheet_y":6,"sort_order":49},"🌯":{"category":"Food & Drink","sheet_x":6,"sheet_y":7,"sort_order":50},"🌰":{"category":"Food & Drink","sheet_x":6,"sheet_y":8,"sort_order":31},"🌱":{"category":"Animals & Nature","sheet_x":6,"sheet_y":9,"sort_order":116},"🌲":{"category":"Animals & Nature","sheet_x":6,"sheet_y":10,"sort_order":117},"🌳":{"category":"Animals & Nature","sheet_x":6,"sheet_y":11,"sort_order":118},"🌴":{"category":"Animals & Nature","sheet_x":6,"sheet_y":12,"sort_order":119},"🌵":{"category":"Animals & Nature","sheet_x":6,"sheet_y":13,"sort_order":120},"🌶️":{"category":"Food & Drink","sheet_x":6,"sheet_y":14,"sort_order":23},"🌷":{"category":"Animals & Nature","sheet_x":6,"sheet_y":15,"sort_order":115},"🌸":{"category":"Animals & Nature","sheet_x":6,"sheet_y":16,"sort_order":107},"🌹":{"category":"Animals & Nature","sheet_x":6,"sheet_y":17,"sort_order":110},"🌺":{"category":"Animals & Nature","sheet_x":6,"sheet_y":18,"sort_order":112},"🌻":{"category":"Animals & Nature","sheet_x":6,"sheet_y":19,"sort_order":113},"🌼":{"category":"Animals & Nature","sheet_x":6,"sheet_y":20,"sort_order":114},"🌽":{"category":"Food & Drink","sheet_x":6,"sheet_y":21,"sort_order":22},"🌾":{"category":"Animals & Nature","sheet_x":6,"sheet_y":22,"sort_order":121},"🌿":{"category":"Animals & Nature","sheet_x":6,"sheet_y":23,"sort_order":122},"🍀":{"category":"Animals & Nature","sheet_x":6,"sheet_y":24,"sort_order":124},"🍁":{"category":"Animals & Nature","sheet_x":6,"sheet_y":25,"sort_order":125},"🍂":{"category":"Animals & Nature","sheet_x":6,"sheet_y":26,"sort_order":126},"🍃":{"category":"Animals & Nature","sheet_x":6,"sheet_y":27,"sort_order":127},"🍄":{"category":"Food & Drink","sheet_x":6,"sheet_y":28,"sort_order":29},"🍅":{"category":"Food & Drink","sheet_x":6,"sheet_y":29,"sort_order":16},"🍆":{"category":"Food & Drink","sheet_x":6,"sheet_y":30,"sort_order":19},"🍇":{"category":"Food & Drink","sheet_x":6,"sheet_y":31,"sort_order":1},"🍈":{"category":"Food & Drink","sheet_x":6,"sheet_y":32,"sort_order":2},"🍉":{"category":"Food & Drink","sheet_x":6,"sheet_y":33,"sort_order":3},"🍊":{"category":"Food & Drink","sheet_x":6,"sheet_y":34,"sort_order":4},"🍋":{"category":"Food & Drink","sheet_x":6,"sheet_y":35,"sort_order":5},"🍌":{"category":"Food & Drink","sheet_x":6,"sheet_y":36,"sort_order":6},"🍍":{"category":"Food & Drink","sheet_x":6,"sheet_y":37,"sort_order":7},"🍎":{"category":"Food & Drink","sheet_x":6,"sheet_y":38,"sort_order":9},"🍏":{"category":"Food & Drink","sheet_x":6,"sheet_y":39,"sort_order":10},"🍐":{"category":"Food & Drink","sheet_x":6,"sheet_y":40,"sort_order":11},"🍑":{"category":"Food & Drink","sheet_x":6,"sheet_y":41,"sort_order":12},"🍒":{"category":"Food & Drink","sheet_x":6,"sheet_y":42,"sort_order":13},"🍓":{"category":"Food & Drink","sheet_x":6,"sheet_y":43,"sort_order":14},"🍔":{"category":"Food & Drink","sheet_x":6,"sheet_y":44,"sort_order":44},"🍕":{"category":"Food & Drink","sheet_x":6,"sheet_y":45,"sort_order":46},"🍖":{"category":"Food & Drink","sheet_x":6,"sheet_y":46,"sort_order":40},"🍗":{"category":"Food & Drink","sheet_x":6,"sheet_y":47,"sort_order":41},"🍘":{"category":"Food & Drink","sheet_x":6,"sheet_y":48,"sort_order":64},"🍙":{"category":"Food & Drink","sheet_x":6,"sheet_y":49,"sort_order":65},"🍚":{"category":"Food & Drink","sheet_x":6,"sheet_y":50,"sort_order":66},"🍛":{"category":"Food & Drink","sheet_x":6,"sheet_y":51,"sort_order":67},"🍜":{"category":"Food & Drink","sheet_x":6,"sheet_y":52,"sort_order":68},"🍝":{"category":"Food & Drink","sheet_x":6,"sheet_y":53,"sort_order":69},"🍞":{"category":"Food & Drink","sheet_x":6,"sheet_y":54,"sort_order":32},"🍟":{"category":"Food & Drink","sheet_x":6,"sheet_y":55,"sort_order":45},"🍠":{"category":"Food & Drink","sheet_x":6,"sheet_y":56,"sort_order":70},"🍡":{"category":"Food & Drink","sheet_x":7,"sheet_y":0,"sort_order":76},"🍢":{"category":"Food & Drink","sheet_x":7,"sheet_y":1,"sort_order":71},"🍣":{"category":"Food & Drink","sheet_x":7,"sheet_y":2,"sort_order":72},"🍤":{"category":"Food & Drink","sheet_x":7,"sheet_y":3,"sort_order":73},"🍥":{"category":"Food & Drink","sheet_x":7,"sheet_y":4,"sort_order":74},"🍦":{"category":"Food & Drink","sheet_x":7,"sheet_y":5,"sort_order":85},"🍧":{"category":"Food & Drink","sheet_x":7,"sheet_y":6,"sort_order":86},"🍨":{"category":"Food & Drink","sheet_x":7,"sheet_y":7,"sort_order":87},"🍩":{"category":"Food & Drink","sheet_x":7,"sheet_y":8,"sort_order":88},"🍪":{"category":"Food & Drink","sheet_x":7,"sheet_y":9,"sort_order":89},"🍫":{"category":"Food & Drink","sheet_x":7,"sheet_y":10,"sort_order":94},"🍬":{"category":"Food & Drink","sheet_x":7,"sheet_y":11,"sort_order":95},"🍭":{"category":"Food & Drink","sheet_x":7,"sheet_y":12,"sort_order":96},"🍮":{"category":"Food & Drink","sheet_x":7,"sheet_y":13,"sort_order":97},"🍯":{"category":"Food & Drink","sheet_x":7,"sheet_y":14,"sort_order":98},"🍰":{"category":"Food & Drink","sheet_x":7,"sheet_y":15,"sort_order":91},"🍱":{"category":"Food & Drink","sheet_x":7,"sheet_y":16,"sort_order":63},"🍲":{"category":"Food & Drink","sheet_x":7,"sheet_y":17,"sort_order":56},"🍳":{"category":"Food & Drink","sheet_x":7,"sheet_y":18,"sort_order":54},"🍴":{"category":"Food & Drink","sheet_x":7,"sheet_y":19,"sort_order":118},"🍵":{"category":"Food & Drink","sheet_x":7,"sheet_y":20,"sort_order":102},"🍶":{"category":"Food & Drink","sheet_x":7,"sheet_y":21,"sort_order":103},"🍷":{"category":"Food & Drink","sheet_x":7,"sheet_y":22,"sort_order":105},"🍸":{"category":"Food & Drink","sheet_x":7,"sheet_y":23,"sort_order":106},"🍹":{"category":"Food & Drink","sheet_x":7,"sheet_y":24,"sort_order":107},"🍺":{"category":"Food & Drink","sheet_x":7,"sheet_y":25,"sort_order":108},"🍻":{"category":"Food & Drink","sheet_x":7,"sheet_y":26,"sort_order":109},"🍼":{"category":"Food & Drink","sheet_x":7,"sheet_y":27,"sort_order":99},"🍽️":{"category":"Food & Drink","sheet_x":7,"sheet_y":28,"sort_order":117},"🍾":{"category":"Food & Drink","sheet_x":7,"sheet_y":29,"sort_order":104},"🍿":{"category":"Food & Drink","sheet_x":7,"sheet_y":30,"sort_order":59},"🎀":{"category":"Activities","sheet_x":7,"sheet_y":31,"sort_order":17},"🎁":{"category":"Activities","sheet_x":7,"sheet_y":32,"sort_order":18},"🎂":{"category":"Food & Drink","sheet_x":7,"sheet_y":33,"sort_order":90},"🎃":{"category":"Activities","sheet_x":7,"sheet_y":34,"sort_order":1},"🎄":{"category":"Activities","sheet_x":7,"sheet_y":35,"sort_order":2},"🎅":{"category":"People & Body","sheet_x":7,"sheet_y":36,"sort_order":177},"🎆":{"category":"Activities","sheet_x":7,"sheet_y":42,"sort_order":3},"🎇":{"category":"Activities","sheet_x":7,"sheet_y":43,"sort_order":4},"🎈":{"category":"Activities","sheet_x":7,"sheet_y":44,"sort_order":7},"🎉":{"category":"Activities","sheet_x":7,"sheet_y":45,"sort_order":8},"🎊":{"category":"Activities","sheet_x":7,"sheet_y":46,"sort_order":9},"🎋":{"category":"Activities","sheet_x":7,"sheet_y":47,"sort_order":10},"🎌":{"category":"Flags","sheet_x":7,"sheet_y":48,"sort_order":3},"🎍":{"category":"Activities","sheet_x":7,"sheet_y":49,"sort_order":11},"🎎":{"category":"Activities","sheet_x":7,"sheet_y":50,"sort_order":12},"🎏":{"category":"Activities","sheet_x":7,"sheet_y":51,"sort_order":13},"🎐":{"category":"Activities","sheet_x":7,"sheet_y":52,"sort_order":14},"🎑":{"category":"Activities","sheet_x":7,"sheet_y":53,"sort_order":15},"🎒":{"category":"Objects","sheet_x":7,"sheet_y":54,"sort_order":25},"🎓":{"category":"Objects","sheet_x":7,"sheet_y":55,"sort_order":37},"🎖️":{"category":"Activities","sheet_x":7,"sheet_y":56,"sort_order":22},"🎗️":{"category":"Activities","sheet_x":8,"sheet_y":0,"sort_order":19},"🎙️":{"category":"Objects","sheet_x":8,"sheet_y":1,"sort_order":56},"🎚️":{"category":"Objects","sheet_x":8,"sheet_y":2,"sort_order":57},"🎛️":{"category":"Objects","sheet_x":8,"sheet_y":3,"sort_order":58},"🎞️":{"category":"Objects","sheet_x":8,"sheet_y":4,"sort_order":89},"🎟️":{"category":"Activities","sheet_x":8,"sheet_y":5,"sort_order":20},"🎠":{"category":"Travel & Places","sheet_x":8,"sheet_y":6,"sort_order":58},"🎡":{"category":"Travel & Places","sheet_x":8,"sheet_y":7,"sort_order":59},"🎢":{"category":"Travel & Places","sheet_x":8,"sheet_y":8,"sort_order":60},"🎣":{"category":"Activities","sheet_x":8,"sheet_y":9,"sort_order":49},"🎤":{"category":"Objects","sheet_x":8,"sheet_y":10,"sort_order":59},"🎥":{"category":"Objects","sheet_x":8,"sheet_y":11,"sort_order":88},"🎦":{"category":"Symbols","sheet_x":8,"sheet_y":12,"sort_order":91},"🎧":{"category":"Objects","sheet_x":8,"sheet_y":13,"sort_order":60},"🎨":{"category":"Activities","sheet_x":8,"sheet_y":14,"sort_order":77},"🎩":{"category":"Objects","sheet_x":8,"sheet_y":15,"sort_order":36},"🎪":{"category":"Travel & Places","sheet_x":8,"sheet_y":16,"sort_order":62},"🎫":{"category":"Activities","sheet_x":8,"sheet_y":17,"sort_order":21},"🎬":{"category":"Objects","sheet_x":8,"sheet_y":18,"sort_order":91},"🎭":{"category":"Activities","sheet_x":8,"sheet_y":19,"sort_order":75},"🎮":{"category":"Activities","sheet_x":8,"sheet_y":20,"sort_order":61},"🎯":{"category":"Activities","sheet_x":8,"sheet_y":21,"sort_order":55},"🎰":{"category":"Activities","sheet_x":8,"sheet_y":22,"sort_order":63},"🎱":{"category":"Activities","sheet_x":8,"sheet_y":23,"sort_order":58},"🎲":{"category":"Activities","sheet_x":8,"sheet_y":24,"sort_order":64},"🎳":{"category":"Activities","sheet_x":8,"sheet_y":25,"sort_order":37},"🎴":{"category":"Activities","sheet_x":8,"sheet_y":26,"sort_order":74},"🎵":{"category":"Objects","sheet_x":8,"sheet_y":27,"sort_order":54},"🎶":{"category":"Objects","sheet_x":8,"sheet_y":28,"sort_order":55},"🎷":{"category":"Objects","sheet_x":8,"sheet_y":29,"sort_order":62},"🎸":{"category":"Objects","sheet_x":8,"sheet_y":30,"sort_order":63},"🎹":{"category":"Objects","sheet_x":8,"sheet_y":31,"sort_order":64},"🎺":{"category":"Objects","sheet_x":8,"sheet_y":32,"sort_order":65},"🎻":{"category":"Objects","sheet_x":8,"sheet_y":33,"sort_order":66},"🎼":{"category":"Objects","sheet_x":8,"sheet_y":34,"sort_order":53},"🎽":{"category":"Activities","sheet_x":8,"sheet_y":35,"sort_order":51},"🎾":{"category":"Activities","sheet_x":8,"sheet_y":36,"sort_order":35},"🎿":{"category":"Activities","sheet_x":8,"sheet_y":37,"sort_order":52},"🏀":{"category":"Activities","sheet_x":8,"sheet_y":38,"sort_order":31},"🏁":{"category":"Flags","sheet_x":8,"sheet_y":39,"sort_order":1},"🏂":{"category":"People & Body","sheet_x":8,"sheet_y":40,"sort_order":248},"🏃‍♀️":{"category":"People & Body","sheet_x":8,"sheet_y":46,"sort_order":232},"🏃‍♂️":{"category":"People & Body","sheet_x":8,"sheet_y":52,"sort_order":231},"🏃":{"category":"People & Body","sheet_x":9,"sheet_y":1,"sort_order":230},"🏄‍♀️":{"category":"People & Body","sheet_x":9,"sheet_y":7,"sort_order":254},"🏄‍♂️":{"category":"People & Body","sheet_x":9,"sheet_y":13,"sort_order":253},"🏄":{"category":"People & Body","sheet_x":9,"sheet_y":19,"sort_order":252},"🏅":{"category":"Activities","sheet_x":9,"sheet_y":25,"sort_order":24},"🏆":{"category":"Activities","sheet_x":9,"sheet_y":26,"sort_order":23},"🏇":{"category":"People & Body","sheet_x":9,"sheet_y":27,"sort_order":246},"🏈":{"category":"Activities","sheet_x":9,"sheet_y":33,"sort_order":33},"🏉":{"category":"Activities","sheet_x":9,"sheet_y":34,"sort_order":34},"🏊‍♀️":{"category":"People & Body","sheet_x":9,"sheet_y":35,"sort_order":260},"🏊‍♂️":{"category":"People & Body","sheet_x":9,"sheet_y":41,"sort_order":259},"🏊":{"category":"People & Body","sheet_x":9,"sheet_y":47,"sort_order":258},"🏋️‍♀️":{"category":"People & Body","sheet_x":9,"sheet_y":53,"sort_order":266},"🏋️‍♂️":{"category":"People & Body","sheet_x":10,"sheet_y":2,"sort_order":265},"🏋️":{"category":"People & Body","sheet_x":10,"sheet_y":8,"sort_order":264},"🏌️‍♀️":{"category":"People & Body","sheet_x":10,"sheet_y":14,"sort_order":251},"🏌️‍♂️":{"category":"People & Body","sheet_x":10,"sheet_y":20,"sort_order":250},"🏌️":{"category":"People & Body","sheet_x":10,"sheet_y":26,"sort_order":249},"🏍️":{"category":"Travel & Places","sheet_x":10,"sheet_y":32,"sort_order":92},"🏎️":{"category":"Travel & Places","sheet_x":10,"sheet_y":33,"sort_order":91},"🏏":{"category":"Activities","sheet_x":10,"sheet_y":34,"sort_order":38},"🏐":{"category":"Activities","sheet_x":10,"sheet_y":35,"sort_order":32},"🏑":{"category":"Activities","sheet_x":10,"sheet_y":36,"sort_order":39},"🏒":{"category":"Activities","sheet_x":10,"sheet_y":37,"sort_order":40},"🏓":{"category":"Activities","sheet_x":10,"sheet_y":38,"sort_order":42},"🏔️":{"category":"Travel & Places","sheet_x":10,"sheet_y":39,"sort_order":8},"🏕️":{"category":"Travel & Places","sheet_x":10,"sheet_y":40,"sort_order":12},"🏖️":{"category":"Travel & Places","sheet_x":10,"sheet_y":41,"sort_order":13},"🏗️":{"category":"Travel & Places","sheet_x":10,"sheet_y":42,"sort_order":19},"🏘️":{"category":"Travel & Places","sheet_x":10,"sheet_y":43,"sort_order":21},"🏙️":{"category":"Travel & Places","sheet_x":10,"sheet_y":44,"sort_order":51},"🏚️":{"category":"Travel & Places","sheet_x":10,"sheet_y":45,"sort_order":22},"🏛️":{"category":"Travel & Places","sheet_x":10,"sheet_y":46,"sort_order":18},"🏜️":{"category":"Travel & Places","sheet_x":10,"sheet_y":47,"sort_order":14},"🏝️":{"category":"Travel & Places","sheet_x":10,"sheet_y":48,"sort_order":15},"🏞️":{"category":"Travel & Places","sheet_x":10,"sheet_y":49,"sort_order":16},"🏟️":{"category":"Travel & Places","sheet_x":10,"sheet_y":50,"sort_order":17},"🏠":{"category":"Travel & Places","sheet_x":10,"sheet_y":51,"sort_order":23},"🏡":{"category":"Travel & Places","sheet_x":10,"sheet_y":52,"sort_order":24},"🏢":{"category":"Travel & Places","sheet_x":10,"sheet_y":53,"sort_order":25},"🏣":{"category":"Travel & Places","sheet_x":10,"sheet_y":54,"sort_order":26},"🏤":{"category":"Travel & Places","sheet_x":10,"sheet_y":55,"sort_order":27},"🏥":{"category":"Travel & Places","sheet_x":10,"sheet_y":56,"sort_order":28},"🏦":{"category":"Travel & Places","sheet_x":11,"sheet_y":0,"sort_order":29},"🏧":{"category":"Symbols","sheet_x":11,"sheet_y":1,"sort_order":1},"🏨":{"category":"Travel & Places","sheet_x":11,"sheet_y":2,"sort_order":30},"🏩":{"category":"Travel & Places","sheet_x":11,"sheet_y":3,"sort_order":31},"🏪":{"category":"Travel & Places","sheet_x":11,"sheet_y":4,"sort_order":32},"🏫":{"category":"Travel & Places","sheet_x":11,"sheet_y":5,"sort_order":33},"🏬":{"category":"Travel & Places","sheet_x":11,"sheet_y":6,"sort_order":34},"🏭":{"category":"Travel & Places","sheet_x":11,"sheet_y":7,"sort_order":35},"🏮":{"category":"Objects","sheet_x":11,"sheet_y":8,"sort_order":102},"🏯":{"category":"Travel & Places","sheet_x":11,"sheet_y":9,"sort_order":36},"🏰":{"category":"Travel & Places","sheet_x":11,"sheet_y":10,"sort_order":37},"🏳️‍🌈":{"category":"Flags","sheet_x":11,"sheet_y":11,"sort_order":6},"🏳️":{"category":"Flags","sheet_x":11,"sheet_y":12,"sort_order":5},"🏴‍☠️":{"category":"Flags","sheet_x":11,"sheet_y":13,"sort_order":7},"🏴󠁧󠁢󠁥󠁮󠁧󠁿":{"category":"Flags","sheet_x":11,"sheet_y":14,"sort_order":266},"🏴󠁧󠁢󠁳󠁣󠁴󠁿":{"category":"Flags","sheet_x":11,"sheet_y":15,"sort_order":267},"🏴󠁧󠁢󠁷󠁬󠁳󠁿":{"category":"Flags","sheet_x":11,"sheet_y":16,"sort_order":268},"🏴":{"category":"Flags","sheet_x":11,"sheet_y":17,"sort_order":4},"🏵️":{"category":"Animals & Nature","sheet_x":11,"sheet_y":18,"sort_order":109},"🏷️":{"category":"Objects","sheet_x":11,"sheet_y":19,"sort_order":120},"🏸":{"category":"Activities","sheet_x":11,"sheet_y":20,"sort_order":43},"🏹":{"category":"Objects","sheet_x":11,"sheet_y":21,"sort_order":189},"🏺":{"category":"Food & Drink","sheet_x":11,"sheet_y":22,"sort_order":121},"🏻":{"category":"Skin Tones","sheet_x":11,"sheet_y":23,"sort_order":1},"🏼":{"category":"Skin Tones","sheet_x":11,"sheet_y":24,"sort_order":2},"🏽":{"category":"Skin Tones","sheet_x":11,"sheet_y":25,"sort_order":3},"🏾":{"category":"Skin Tones","sheet_x":11,"sheet_y":26,"sort_order":4},"🏿":{"category":"Skin Tones","sheet_x":11,"sheet_y":27,"sort_order":5},"🐀":{"category":"Animals & Nature","sheet_x":11,"sheet_y":28,"sort_order":44},"🐁":{"category":"Animals & Nature","sheet_x":11,"sheet_y":29,"sort_order":43},"🐂":{"category":"Animals & Nature","sheet_x":11,"sheet_y":30,"sort_order":25},"🐃":{"category":"Animals & Nature","sheet_x":11,"sheet_y":31,"sort_order":26},"🐄":{"category":"Animals & Nature","sheet_x":11,"sheet_y":32,"sort_order":27},"🐅":{"category":"Animals & Nature","sheet_x":11,"sheet_y":33,"sort_order":17},"🐆":{"category":"Animals & Nature","sheet_x":11,"sheet_y":34,"sort_order":18},"🐇":{"category":"Animals & Nature","sheet_x":11,"sheet_y":35,"sort_order":47},"🐈":{"category":"Animals & Nature","sheet_x":11,"sheet_y":36,"sort_order":14},"🐉":{"category":"Animals & Nature","sheet_x":11,"sheet_y":37,"sort_order":82},"🐊":{"category":"Animals & Nature","sheet_x":11,"sheet_y":38,"sort_order":77},"🐋":{"category":"Animals & Nature","sheet_x":11,"sheet_y":39,"sort_order":86},"🐌":{"category":"Animals & Nature","sheet_x":11,"sheet_y":40,"sort_order":94},"🐍":{"category":"Animals & Nature","sheet_x":11,"sheet_y":41,"sort_order":80},"🐎":{"category":"Animals & Nature","sheet_x":11,"sheet_y":42,"sort_order":20},"🐏":{"category":"Animals & Nature","sheet_x":11,"sheet_y":43,"sort_order":32},"🐐":{"category":"Animals & Nature","sheet_x":11,"sheet_y":44,"sort_order":34},"🐑":{"category":"Animals & Nature","sheet_x":11,"sheet_y":45,"sort_order":33},"🐒":{"category":"Animals & Nature","sheet_x":11,"sheet_y":46,"sort_order":2},"🐓":{"category":"Animals & Nature","sheet_x":11,"sheet_y":47,"sort_order":62},"🐔":{"category":"Animals & Nature","sheet_x":11,"sheet_y":48,"sort_order":61},"🐕‍🦺":{"category":"Animals & Nature","sheet_x":11,"sheet_y":49,"sort_order":8},"🐕":{"category":"Animals & Nature","sheet_x":11,"sheet_y":50,"sort_order":6},"🐖":{"category":"Animals & Nature","sheet_x":11,"sheet_y":51,"sort_order":29},"🐗":{"category":"Animals & Nature","sheet_x":11,"sheet_y":52,"sort_order":30},"🐘":{"category":"Animals & Nature","sheet_x":11,"sheet_y":53,"sort_order":39},"🐙":{"category":"Animals & Nature","sheet_x":11,"sheet_y":54,"sort_order":92},"🐚":{"category":"Animals & Nature","sheet_x":11,"sheet_y":55,"sort_order":93},"🐛":{"category":"Animals & Nature","sheet_x":11,"sheet_y":56,"sort_order":96},"🐜":{"category":"Animals & Nature","sheet_x":12,"sheet_y":0,"sort_order":97},"🐝":{"category":"Animals & Nature","sheet_x":12,"sheet_y":1,"sort_order":98},"🐞":{"category":"Animals & Nature","sheet_x":12,"sheet_y":2,"sort_order":99},"🐟":{"category":"Animals & Nature","sheet_x":12,"sheet_y":3,"sort_order":88},"🐠":{"category":"Animals & Nature","sheet_x":12,"sheet_y":4,"sort_order":89},"🐡":{"category":"Animals & Nature","sheet_x":12,"sheet_y":5,"sort_order":90},"🐢":{"category":"Animals & Nature","sheet_x":12,"sheet_y":6,"sort_order":78},"🐣":{"category":"Animals & Nature","sheet_x":12,"sheet_y":7,"sort_order":63},"🐤":{"category":"Animals & Nature","sheet_x":12,"sheet_y":8,"sort_order":64},"🐥":{"category":"Animals & Nature","sheet_x":12,"sheet_y":9,"sort_order":65},"🐦":{"category":"Animals & Nature","sheet_x":12,"sheet_y":10,"sort_order":66},"🐧":{"category":"Animals & Nature","sheet_x":12,"sheet_y":11,"sort_order":67},"🐨":{"category":"Animals & Nature","sheet_x":12,"sheet_y":12,"sort_order":52},"🐩":{"category":"Animals & Nature","sheet_x":12,"sheet_y":13,"sort_order":9},"🐪":{"category":"Animals & Nature","sheet_x":12,"sheet_y":14,"sort_order":35},"🐫":{"category":"Animals & Nature","sheet_x":12,"sheet_y":15,"sort_order":36},"🐬":{"category":"Animals & Nature","sheet_x":12,"sheet_y":16,"sort_order":87},"🐭":{"category":"Animals & Nature","sheet_x":12,"sheet_y":17,"sort_order":42},"🐮":{"category":"Animals & Nature","sheet_x":12,"sheet_y":18,"sort_order":24},"🐯":{"category":"Animals & Nature","sheet_x":12,"sheet_y":19,"sort_order":16},"🐰":{"category":"Animals & Nature","sheet_x":12,"sheet_y":20,"sort_order":46},"🐱":{"category":"Animals & Nature","sheet_x":12,"sheet_y":21,"sort_order":13},"🐲":{"category":"Animals & Nature","sheet_x":12,"sheet_y":22,"sort_order":81},"🐳":{"category":"Animals & Nature","sheet_x":12,"sheet_y":23,"sort_order":85},"🐴":{"category":"Animals & Nature","sheet_x":12,"sheet_y":24,"sort_order":19},"🐵":{"category":"Animals & Nature","sheet_x":12,"sheet_y":25,"sort_order":1},"🐶":{"category":"Animals & Nature","sheet_x":12,"sheet_y":26,"sort_order":5},"🐷":{"category":"Animals & Nature","sheet_x":12,"sheet_y":27,"sort_order":28},"🐸":{"category":"Animals & Nature","sheet_x":12,"sheet_y":28,"sort_order":76},"🐹":{"category":"Animals & Nature","sheet_x":12,"sheet_y":29,"sort_order":45},"🐺":{"category":"Animals & Nature","sheet_x":12,"sheet_y":30,"sort_order":10},"🐻":{"category":"Animals & Nature","sheet_x":12,"sheet_y":31,"sort_order":51},"🐼":{"category":"Animals & Nature","sheet_x":12,"sheet_y":32,"sort_order":53},"🐽":{"category":"Animals & Nature","sheet_x":12,"sheet_y":33,"sort_order":31},"🐾":{"category":"Animals & Nature","sheet_x":12,"sheet_y":34,"sort_order":59},"🐿️":{"category":"Animals & Nature","sheet_x":12,"sheet_y":35,"sort_order":48},"👀":{"category":"People & Body","sheet_x":12,"sheet_y":36,"sort_order":45},"👁️‍🗨️":{"category":"Smileys & Emotion","sheet_x":12,"sheet_y":37,"sort_order":145},"👁️":{"category":"People & Body","sheet_x":12,"sheet_y":38,"sort_order":46},"👂":{"category":"People & Body","sheet_x":12,"sheet_y":39,"sort_order":39},"👃":{"category":"People & Body","sheet_x":12,"sheet_y":45,"sort_order":41},"👄":{"category":"People & Body","sheet_x":12,"sheet_y":51,"sort_order":48},"👅":{"category":"People & Body","sheet_x":12,"sheet_y":52,"sort_order":47},"👆":{"category":"People & Body","sheet_x":12,"sheet_y":53,"sort_order":15},"👇":{"category":"People & Body","sheet_x":13,"sheet_y":2,"sort_order":17},"👈":{"category":"People & Body","sheet_x":13,"sheet_y":8,"sort_order":13},"👉":{"category":"People & Body","sheet_x":13,"sheet_y":14,"sort_order":14},"👊":{"category":"People & Body","sheet_x":13,"sheet_y":20,"sort_order":22},"👋":{"category":"People & Body","sheet_x":13,"sheet_y":26,"sort_order":1},"👌":{"category":"People & Body","sheet_x":13,"sheet_y":32,"sort_order":6},"👍":{"category":"People & Body","sheet_x":13,"sheet_y":38,"sort_order":19},"👎":{"category":"People & Body","sheet_x":13,"sheet_y":44,"sort_order":20},"👏":{"category":"People & Body","sheet_x":13,"sheet_y":50,"sort_order":25},"👐":{"category":"People & Body","sheet_x":13,"sheet_y":56,"sort_order":27},"👑":{"category":"Objects","sheet_x":14,"sheet_y":5,"sort_order":34},"👒":{"category":"Objects","sheet_x":14,"sheet_y":6,"sort_order":35},"👓":{"category":"Objects","sheet_x":14,"sheet_y":7,"sort_order":1},"👔":{"category":"Objects","sheet_x":14,"sheet_y":8,"sort_order":6},"👕":{"category":"Objects","sheet_x":14,"sheet_y":9,"sort_order":7},"👖":{"category":"Objects","sheet_x":14,"sheet_y":10,"sort_order":8},"👗":{"category":"Objects","sheet_x":14,"sheet_y":11,"sort_order":13},"👘":{"category":"Objects","sheet_x":14,"sheet_y":12,"sort_order":14},"👙":{"category":"Objects","sheet_x":14,"sheet_y":13,"sort_order":19},"👚":{"category":"Objects","sheet_x":14,"sheet_y":14,"sort_order":20},"👛":{"category":"Objects","sheet_x":14,"sheet_y":15,"sort_order":21},"👜":{"category":"Objects","sheet_x":14,"sheet_y":16,"sort_order":22},"👝":{"category":"Objects","sheet_x":14,"sheet_y":17,"sort_order":23},"👞":{"category":"Objects","sheet_x":14,"sheet_y":18,"sort_order":26},"👟":{"category":"Objects","sheet_x":14,"sheet_y":19,"sort_order":27},"👠":{"category":"Objects","sheet_x":14,"sheet_y":20,"sort_order":30},"👡":{"category":"Objects","sheet_x":14,"sheet_y":21,"sort_order":31},"👢":{"category":"Objects","sheet_x":14,"sheet_y":22,"sort_order":33},"👣":{"category":"People & Body","sheet_x":14,"sheet_y":23,"sort_order":334},"👤":{"category":"People & Body","sheet_x":14,"sheet_y":24,"sort_order":332},"👥":{"category":"People & Body","sheet_x":14,"sheet_y":25,"sort_order":333},"👦":{"category":"People & Body","sheet_x":14,"sheet_y":26,"sort_order":51},"👧":{"category":"People & Body","sheet_x":14,"sheet_y":32,"sort_order":52},"👨‍🌾":{"category":"People & Body","sheet_x":14,"sheet_y":38,"sort_order":118},"👨‍🍳":{"category":"People & Body","sheet_x":14,"sheet_y":44,"sort_order":121},"👨‍🎓":{"category":"People & Body","sheet_x":14,"sheet_y":50,"sort_order":109},"👨‍🎤":{"category":"People & Body","sheet_x":14,"sheet_y":56,"sort_order":139},"👨‍🎨":{"category":"People & Body","sheet_x":15,"sheet_y":5,"sort_order":142},"👨‍🏫":{"category":"People & Body","sheet_x":15,"sheet_y":11,"sort_order":112},"👨‍🏭":{"category":"People & Body","sheet_x":15,"sheet_y":17,"sort_order":127},"👨‍👦‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":23,"sort_order":322},"👨‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":24,"sort_order":321},"👨‍👧‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":25,"sort_order":324},"👨‍👧‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":26,"sort_order":325},"👨‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":27,"sort_order":323},"👨‍👨‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":28,"sort_order":311},"👨‍👨‍👦‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":29,"sort_order":314},"👨‍👨‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":30,"sort_order":312},"👨‍👨‍👧‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":31,"sort_order":313},"👨‍👨‍👧‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":32,"sort_order":315},"👨‍👩‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":33,"sort_order":306},"👨‍👩‍👦‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":34,"sort_order":309},"👨‍👩‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":35,"sort_order":307},"👨‍👩‍👧‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":36,"sort_order":308},"👨‍👩‍👧‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":37,"sort_order":310},"👨‍💻":{"category":"People & Body","sheet_x":15,"sheet_y":38,"sort_order":136},"👨‍💼":{"category":"People & Body","sheet_x":15,"sheet_y":44,"sort_order":130},"👨‍🔧":{"category":"People & Body","sheet_x":15,"sheet_y":50,"sort_order":124},"👨‍🔬":{"category":"People & Body","sheet_x":15,"sheet_y":56,"sort_order":133},"👨‍🚀":{"category":"People & Body","sheet_x":16,"sheet_y":5,"sort_order":148},"👨‍🚒":{"category":"People & Body","sheet_x":16,"sheet_y":11,"sort_order":151},"👨‍🦯":{"category":"People & Body","sheet_x":16,"sheet_y":17,"sort_order":222},"👨‍🦰":{"category":"People & Body","sheet_x":16,"sheet_y":23,"sort_order":57},"👨‍🦱":{"category":"People & Body","sheet_x":16,"sheet_y":29,"sort_order":58},"👨‍🦲":{"category":"People & Body","sheet_x":16,"sheet_y":35,"sort_order":60},"👨‍🦳":{"category":"People & Body","sheet_x":16,"sheet_y":41,"sort_order":59},"👨‍🦼":{"category":"People & Body","sheet_x":16,"sheet_y":47,"sort_order":225},"👨‍🦽":{"category":"People & Body","sheet_x":16,"sheet_y":53,"sort_order":228},"👨‍⚕️":{"category":"People & Body","sheet_x":17,"sheet_y":2,"sort_order":106},"👨‍⚖️":{"category":"People & Body","sheet_x":17,"sheet_y":8,"sort_order":115},"👨‍✈️":{"category":"People & Body","sheet_x":17,"sheet_y":14,"sort_order":145},"👨‍❤️‍👨":{"category":"People & Body","sheet_x":17,"sheet_y":20,"sort_order":303},"👨‍❤️‍💋‍👨":{"category":"People & Body","sheet_x":17,"sheet_y":21,"sort_order":299},"👨":{"category":"People & Body","sheet_x":17,"sheet_y":22,"sort_order":55},"👩‍🌾":{"category":"People & Body","sheet_x":17,"sheet_y":28,"sort_order":119},"👩‍🍳":{"category":"People & Body","sheet_x":17,"sheet_y":34,"sort_order":122},"👩‍🎓":{"category":"People & Body","sheet_x":17,"sheet_y":40,"sort_order":110},"👩‍🎤":{"category":"People & Body","sheet_x":17,"sheet_y":46,"sort_order":140},"👩‍🎨":{"category":"People & Body","sheet_x":17,"sheet_y":52,"sort_order":143},"👩‍🏫":{"category":"People & Body","sheet_x":18,"sheet_y":1,"sort_order":113},"👩‍🏭":{"category":"People & Body","sheet_x":18,"sheet_y":7,"sort_order":128},"👩‍👦‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":13,"sort_order":327},"👩‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":14,"sort_order":326},"👩‍👧‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":15,"sort_order":329},"👩‍👧‍👧":{"category":"People & Body","sheet_x":18,"sheet_y":16,"sort_order":330},"👩‍👧":{"category":"People & Body","sheet_x":18,"sheet_y":17,"sort_order":328},"👩‍👩‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":18,"sort_order":316},"👩‍👩‍👦‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":19,"sort_order":319},"👩‍👩‍👧":{"category":"People & Body","sheet_x":18,"sheet_y":20,"sort_order":317},"👩‍👩‍👧‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":21,"sort_order":318},"👩‍👩‍👧‍👧":{"category":"People & Body","sheet_x":18,"sheet_y":22,"sort_order":320},"👩‍💻":{"category":"People & Body","sheet_x":18,"sheet_y":23,"sort_order":137},"👩‍💼":{"category":"People & Body","sheet_x":18,"sheet_y":29,"sort_order":131},"👩‍🔧":{"category":"People & Body","sheet_x":18,"sheet_y":35,"sort_order":125},"👩‍🔬":{"category":"People & Body","sheet_x":18,"sheet_y":41,"sort_order":134},"👩‍🚀":{"category":"People & Body","sheet_x":18,"sheet_y":47,"sort_order":149},"👩‍🚒":{"category":"People & Body","sheet_x":18,"sheet_y":53,"sort_order":152},"👩‍🦯":{"category":"People & Body","sheet_x":19,"sheet_y":2,"sort_order":223},"👩‍🦰":{"category":"People & Body","sheet_x":19,"sheet_y":8,"sort_order":62},"👩‍🦱":{"category":"People & Body","sheet_x":19,"sheet_y":14,"sort_order":64},"👩‍🦲":{"category":"People & Body","sheet_x":19,"sheet_y":20,"sort_order":68},"👩‍🦳":{"category":"People & Body","sheet_x":19,"sheet_y":26,"sort_order":66},"👩‍🦼":{"category":"People & Body","sheet_x":19,"sheet_y":32,"sort_order":226},"👩‍🦽":{"category":"People & Body","sheet_x":19,"sheet_y":38,"sort_order":229},"👩‍⚕️":{"category":"People & Body","sheet_x":19,"sheet_y":44,"sort_order":107},"👩‍⚖️":{"category":"People & Body","sheet_x":19,"sheet_y":50,"sort_order":116},"👩‍✈️":{"category":"People & Body","sheet_x":19,"sheet_y":56,"sort_order":146},"👩‍❤️‍👨":{"category":"People & Body","sheet_x":20,"sheet_y":5,"sort_order":302},"👩‍❤️‍👩":{"category":"People & Body","sheet_x":20,"sheet_y":6,"sort_order":304},"👩‍❤️‍💋‍👨":{"category":"People & Body","sheet_x":20,"sheet_y":7,"sort_order":298},"👩‍❤️‍💋‍👩":{"category":"People & Body","sheet_x":20,"sheet_y":8,"sort_order":300},"👩":{"category":"People & Body","sheet_x":20,"sheet_y":9,"sort_order":61},"👪":{"category":"People & Body","sheet_x":20,"sheet_y":15,"sort_order":305},"👫":{"category":"People & Body","sheet_x":20,"sheet_y":16,"sort_order":295},"👬":{"category":"People & Body","sheet_x":20,"sheet_y":42,"sort_order":296},"👭":{"category":"People & Body","sheet_x":21,"sheet_y":11,"sort_order":294},"👮‍♀️":{"category":"People & Body","sheet_x":21,"sheet_y":37,"sort_order":155},"👮‍♂️":{"category":"People & Body","sheet_x":21,"sheet_y":43,"sort_order":154},"👮":{"category":"People & Body","sheet_x":21,"sheet_y":49,"sort_order":153},"👯‍♀️":{"category":"People & Body","sheet_x":21,"sheet_y":55,"sort_order":238},"👯‍♂️":{"category":"People & Body","sheet_x":21,"sheet_y":56,"sort_order":237},"👯":{"category":"People & Body","sheet_x":22,"sheet_y":0,"sort_order":236},"👰":{"category":"People & Body","sheet_x":22,"sheet_y":1,"sort_order":173},"👱‍♀️":{"category":"People & Body","sheet_x":22,"sheet_y":7,"sort_order":70},"👱‍♂️":{"category":"People & Body","sheet_x":22,"sheet_y":13,"sort_order":71},"👱":{"category":"People & Body","sheet_x":22,"sheet_y":19,"sort_order":54},"👲":{"category":"People & Body","sheet_x":22,"sheet_y":25,"sort_order":170},"👳‍♀️":{"category":"People & Body","sheet_x":22,"sheet_y":31,"sort_order":169},"👳‍♂️":{"category":"People & Body","sheet_x":22,"sheet_y":37,"sort_order":168},"👳":{"category":"People & Body","sheet_x":22,"sheet_y":43,"sort_order":167},"👴":{"category":"People & Body","sheet_x":22,"sheet_y":49,"sort_order":73},"👵":{"category":"People & Body","sheet_x":22,"sheet_y":55,"sort_order":74},"👶":{"category":"People & Body","sheet_x":23,"sheet_y":4,"sort_order":49},"👷‍♀️":{"category":"People & Body","sheet_x":23,"sheet_y":10,"sort_order":164},"👷‍♂️":{"category":"People & Body","sheet_x":23,"sheet_y":16,"sort_order":163},"👷":{"category":"People & Body","sheet_x":23,"sheet_y":22,"sort_order":162},"👸":{"category":"People & Body","sheet_x":23,"sheet_y":28,"sort_order":166},"👹":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":34,"sort_order":97},"👺":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":35,"sort_order":98},"👻":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":36,"sort_order":99},"👼":{"category":"People & Body","sheet_x":23,"sheet_y":37,"sort_order":176},"👽":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":43,"sort_order":100},"👾":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":44,"sort_order":101},"👿":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":45,"sort_order":92},"💀":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":46,"sort_order":93},"💁‍♀️":{"category":"People & Body","sheet_x":23,"sheet_y":47,"sort_order":89},"💁‍♂️":{"category":"People & Body","sheet_x":23,"sheet_y":53,"sort_order":88},"💁":{"category":"People & Body","sheet_x":24,"sheet_y":2,"sort_order":87},"💂‍♀️":{"category":"People & Body","sheet_x":24,"sheet_y":8,"sort_order":161},"💂‍♂️":{"category":"People & Body","sheet_x":24,"sheet_y":14,"sort_order":160},"💂":{"category":"People & Body","sheet_x":24,"sheet_y":20,"sort_order":159},"💃":{"category":"People & Body","sheet_x":24,"sheet_y":26,"sort_order":233},"💄":{"category":"Objects","sheet_x":24,"sheet_y":32,"sort_order":41},"💅":{"category":"People & Body","sheet_x":24,"sheet_y":33,"sort_order":32},"💆‍♀️":{"category":"People & Body","sheet_x":24,"sheet_y":39,"sort_order":208},"💆‍♂️":{"category":"People & Body","sheet_x":24,"sheet_y":45,"sort_order":207},"💆":{"category":"People & Body","sheet_x":24,"sheet_y":51,"sort_order":206},"💇‍♀️":{"category":"People & Body","sheet_x":25,"sheet_y":0,"sort_order":211},"💇‍♂️":{"category":"People & Body","sheet_x":25,"sheet_y":6,"sort_order":210},"💇":{"category":"People & Body","sheet_x":25,"sheet_y":12,"sort_order":209},"💈":{"category":"Travel & Places","sheet_x":25,"sheet_y":18,"sort_order":61},"💉":{"category":"Objects","sheet_x":25,"sheet_y":19,"sort_order":208},"💊":{"category":"Objects","sheet_x":25,"sheet_y":20,"sort_order":210},"💋":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":21,"sort_order":115},"💌":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":22,"sort_order":116},"💍":{"category":"Objects","sheet_x":25,"sheet_y":23,"sort_order":42},"💎":{"category":"Objects","sheet_x":25,"sheet_y":24,"sort_order":43},"💏":{"category":"People & Body","sheet_x":25,"sheet_y":25,"sort_order":297},"💐":{"category":"Animals & Nature","sheet_x":25,"sheet_y":26,"sort_order":106},"💑":{"category":"People & Body","sheet_x":25,"sheet_y":27,"sort_order":301},"💒":{"category":"Travel & Places","sheet_x":25,"sheet_y":28,"sort_order":38},"💓":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":29,"sort_order":121},"💔":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":30,"sort_order":126},"💕":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":31,"sort_order":123},"💖":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":32,"sort_order":119},"💗":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":33,"sort_order":120},"💘":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":34,"sort_order":117},"💙":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":35,"sort_order":131},"💚":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":36,"sort_order":130},"💛":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":37,"sort_order":129},"💜":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":38,"sort_order":132},"💝":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":39,"sort_order":118},"💞":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":40,"sort_order":122},"💟":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":41,"sort_order":124},"💠":{"category":"Symbols","sheet_x":25,"sheet_y":42,"sort_order":214},"💡":{"category":"Objects","sheet_x":25,"sheet_y":43,"sort_order":100},"💢":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":44,"sort_order":137},"💣":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":45,"sort_order":143},"💤":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":46,"sort_order":149},"💥":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":47,"sort_order":138},"💦":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":48,"sort_order":140},"💧":{"category":"Travel & Places","sheet_x":25,"sheet_y":49,"sort_order":209},"💨":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":50,"sort_order":141},"💩":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":51,"sort_order":95},"💪":{"category":"People & Body","sheet_x":25,"sheet_y":52,"sort_order":34},"💫":{"category":"Smileys & Emotion","sheet_x":26,"sheet_y":1,"sort_order":139},"💬":{"category":"Smileys & Emotion","sheet_x":26,"sheet_y":2,"sort_order":144},"💭":{"category":"Smileys & Emotion","sheet_x":26,"sheet_y":3,"sort_order":148},"💮":{"category":"Animals & Nature","sheet_x":26,"sheet_y":4,"sort_order":108},"💯":{"category":"Smileys & Emotion","sheet_x":26,"sheet_y":5,"sort_order":136},"💰":{"category":"Objects","sheet_x":26,"sheet_y":6,"sort_order":121},"💱":{"category":"Objects","sheet_x":26,"sheet_y":7,"sort_order":130},"💲":{"category":"Objects","sheet_x":26,"sheet_y":8,"sort_order":131},"💳":{"category":"Objects","sheet_x":26,"sheet_y":9,"sort_order":127},"💴":{"category":"Objects","sheet_x":26,"sheet_y":10,"sort_order":122},"💵":{"category":"Objects","sheet_x":26,"sheet_y":11,"sort_order":123},"💶":{"category":"Objects","sheet_x":26,"sheet_y":12,"sort_order":124},"💷":{"category":"Objects","sheet_x":26,"sheet_y":13,"sort_order":125},"💸":{"category":"Objects","sheet_x":26,"sheet_y":14,"sort_order":126},"💹":{"category":"Objects","sheet_x":26,"sheet_y":15,"sort_order":129},"💺":{"category":"Travel & Places","sheet_x":26,"sheet_y":16,"sort_order":123},"💻":{"category":"Objects","sheet_x":26,"sheet_y":17,"sort_order":77},"💼":{"category":"Objects","sheet_x":26,"sheet_y":18,"sort_order":152},"💽":{"category":"Objects","sheet_x":26,"sheet_y":19,"sort_order":83},"💾":{"category":"Objects","sheet_x":26,"sheet_y":20,"sort_order":84},"💿":{"category":"Objects","sheet_x":26,"sheet_y":21,"sort_order":85},"📀":{"category":"Objects","sheet_x":26,"sheet_y":22,"sort_order":86},"📁":{"category":"Objects","sheet_x":26,"sheet_y":23,"sort_order":153},"📂":{"category":"Objects","sheet_x":26,"sheet_y":24,"sort_order":154},"📃":{"category":"Objects","sheet_x":26,"sheet_y":25,"sort_order":113},"📄":{"category":"Objects","sheet_x":26,"sheet_y":26,"sort_order":115},"📅":{"category":"Objects","sheet_x":26,"sheet_y":27,"sort_order":156},"📆":{"category":"Objects","sheet_x":26,"sheet_y":28,"sort_order":157},"📇":{"category":"Objects","sheet_x":26,"sheet_y":29,"sort_order":160},"📈":{"category":"Objects","sheet_x":26,"sheet_y":30,"sort_order":161},"📉":{"category":"Objects","sheet_x":26,"sheet_y":31,"sort_order":162},"📊":{"category":"Objects","sheet_x":26,"sheet_y":32,"sort_order":163},"📋":{"category":"Objects","sheet_x":26,"sheet_y":33,"sort_order":164},"📌":{"category":"Objects","sheet_x":26,"sheet_y":34,"sort_order":165},"📍":{"category":"Objects","sheet_x":26,"sheet_y":35,"sort_order":166},"📎":{"category":"Objects","sheet_x":26,"sheet_y":36,"sort_order":167},"📏":{"category":"Objects","sheet_x":26,"sheet_y":37,"sort_order":169},"📐":{"category":"Objects","sheet_x":26,"sheet_y":38,"sort_order":170},"📑":{"category":"Objects","sheet_x":26,"sheet_y":39,"sort_order":118},"📒":{"category":"Objects","sheet_x":26,"sheet_y":40,"sort_order":112},"📓":{"category":"Objects","sheet_x":26,"sheet_y":41,"sort_order":111},"📔":{"category":"Objects","sheet_x":26,"sheet_y":42,"sort_order":104},"📕":{"category":"Objects","sheet_x":26,"sheet_y":43,"sort_order":105},"📖":{"category":"Objects","sheet_x":26,"sheet_y":44,"sort_order":106},"📗":{"category":"Objects","sheet_x":26,"sheet_y":45,"sort_order":107},"📘":{"category":"Objects","sheet_x":26,"sheet_y":46,"sort_order":108},"📙":{"category":"Objects","sheet_x":26,"sheet_y":47,"sort_order":109},"📚":{"category":"Objects","sheet_x":26,"sheet_y":48,"sort_order":110},"📛":{"category":"Symbols","sheet_x":26,"sheet_y":49,"sort_order":104},"📜":{"category":"Objects","sheet_x":26,"sheet_y":50,"sort_order":114},"📝":{"category":"Objects","sheet_x":26,"sheet_y":51,"sort_order":151},"📞":{"category":"Objects","sheet_x":26,"sheet_y":52,"sort_order":72},"📟":{"category":"Objects","sheet_x":26,"sheet_y":53,"sort_order":73},"📠":{"category":"Objects","sheet_x":26,"sheet_y":54,"sort_order":74},"📡":{"category":"Objects","sheet_x":26,"sheet_y":55,"sort_order":207},"📢":{"category":"Objects","sheet_x":26,"sheet_y":56,"sort_order":48},"📣":{"category":"Objects","sheet_x":27,"sheet_y":0,"sort_order":49},"📤":{"category":"Objects","sheet_x":27,"sheet_y":1,"sort_order":136},"📥":{"category":"Objects","sheet_x":27,"sheet_y":2,"sort_order":137},"📦":{"category":"Objects","sheet_x":27,"sheet_y":3,"sort_order":138},"📧":{"category":"Objects","sheet_x":27,"sheet_y":4,"sort_order":133},"📨":{"category":"Objects","sheet_x":27,"sheet_y":5,"sort_order":134},"📩":{"category":"Objects","sheet_x":27,"sheet_y":6,"sort_order":135},"📪":{"category":"Objects","sheet_x":27,"sheet_y":7,"sort_order":140},"📫":{"category":"Objects","sheet_x":27,"sheet_y":8,"sort_order":139},"📬":{"category":"Objects","sheet_x":27,"sheet_y":9,"sort_order":141},"📭":{"category":"Objects","sheet_x":27,"sheet_y":10,"sort_order":142},"📮":{"category":"Objects","sheet_x":27,"sheet_y":11,"sort_order":143},"📯":{"category":"Objects","sheet_x":27,"sheet_y":12,"sort_order":50},"📰":{"category":"Objects","sheet_x":27,"sheet_y":13,"sort_order":116},"📱":{"category":"Objects","sheet_x":27,"sheet_y":14,"sort_order":69},"📲":{"category":"Objects","sheet_x":27,"sheet_y":15,"sort_order":70},"📳":{"category":"Symbols","sheet_x":27,"sheet_y":16,"sort_order":95},"📴":{"category":"Symbols","sheet_x":27,"sheet_y":17,"sort_order":96},"📵":{"category":"Symbols","sheet_x":27,"sheet_y":18,"sort_order":23},"📶":{"category":"Symbols","sheet_x":27,"sheet_y":19,"sort_order":94},"📷":{"category":"Objects","sheet_x":27,"sheet_y":20,"sort_order":93},"📸":{"category":"Objects","sheet_x":27,"sheet_y":21,"sort_order":94},"📹":{"category":"Objects","sheet_x":27,"sheet_y":22,"sort_order":95},"📺":{"category":"Objects","sheet_x":27,"sheet_y":23,"sort_order":92},"📻":{"category":"Objects","sheet_x":27,"sheet_y":24,"sort_order":61},"📼":{"category":"Objects","sheet_x":27,"sheet_y":25,"sort_order":96},"📽️":{"category":"Objects","sheet_x":27,"sheet_y":26,"sort_order":90},"📿":{"category":"Objects","sheet_x":27,"sheet_y":27,"sort_order":40},"🔀":{"category":"Symbols","sheet_x":27,"sheet_y":28,"sort_order":73},"🔁":{"category":"Symbols","sheet_x":27,"sheet_y":29,"sort_order":74},"🔂":{"category":"Symbols","sheet_x":27,"sheet_y":30,"sort_order":75},"🔃":{"category":"Symbols","sheet_x":27,"sheet_y":31,"sort_order":41},"🔄":{"category":"Symbols","sheet_x":27,"sheet_y":32,"sort_order":42},"🔅":{"category":"Symbols","sheet_x":27,"sheet_y":33,"sort_order":92},"🔆":{"category":"Symbols","sheet_x":27,"sheet_y":34,"sort_order":93},"🔇":{"category":"Objects","sheet_x":27,"sheet_y":35,"sort_order":44},"🔈":{"category":"Objects","sheet_x":27,"sheet_y":36,"sort_order":45},"🔉":{"category":"Objects","sheet_x":27,"sheet_y":37,"sort_order":46},"🔊":{"category":"Objects","sheet_x":27,"sheet_y":38,"sort_order":47},"🔋":{"category":"Objects","sheet_x":27,"sheet_y":39,"sort_order":75},"🔌":{"category":"Objects","sheet_x":27,"sheet_y":40,"sort_order":76},"🔍":{"category":"Objects","sheet_x":27,"sheet_y":41,"sort_order":97},"🔎":{"category":"Objects","sheet_x":27,"sheet_y":42,"sort_order":98},"🔏":{"category":"Objects","sheet_x":27,"sheet_y":43,"sort_order":177},"🔐":{"category":"Objects","sheet_x":27,"sheet_y":44,"sort_order":178},"🔑":{"category":"Objects","sheet_x":27,"sheet_y":45,"sort_order":179},"🔒":{"category":"Objects","sheet_x":27,"sheet_y":46,"sort_order":175},"🔓":{"category":"Objects","sheet_x":27,"sheet_y":47,"sort_order":176},"🔔":{"category":"Objects","sheet_x":27,"sheet_y":48,"sort_order":51},"🔕":{"category":"Objects","sheet_x":27,"sheet_y":49,"sort_order":52},"🔖":{"category":"Objects","sheet_x":27,"sheet_y":50,"sort_order":119},"🔗":{"category":"Objects","sheet_x":27,"sheet_y":51,"sort_order":197},"🔘":{"category":"Symbols","sheet_x":27,"sheet_y":52,"sort_order":215},"🔙":{"category":"Symbols","sheet_x":27,"sheet_y":53,"sort_order":43},"🔚":{"category":"Symbols","sheet_x":27,"sheet_y":54,"sort_order":44},"🔛":{"category":"Symbols","sheet_x":27,"sheet_y":55,"sort_order":45},"🔜":{"category":"Symbols","sheet_x":27,"sheet_y":56,"sort_order":46},"🔝":{"category":"Symbols","sheet_x":28,"sheet_y":0,"sort_order":47},"🔞":{"category":"Symbols","sheet_x":28,"sheet_y":1,"sort_order":24},"🔟":{"category":"Symbols","sheet_x":28,"sheet_y":2,"sort_order":144},"🔠":{"category":"Symbols","sheet_x":28,"sheet_y":3,"sort_order":145},"🔡":{"category":"Symbols","sheet_x":28,"sheet_y":4,"sort_order":146},"🔢":{"category":"Symbols","sheet_x":28,"sheet_y":5,"sort_order":147},"🔣":{"category":"Symbols","sheet_x":28,"sheet_y":6,"sort_order":148},"🔤":{"category":"Symbols","sheet_x":28,"sheet_y":7,"sort_order":149},"🔥":{"category":"Travel & Places","sheet_x":28,"sheet_y":8,"sort_order":208},"🔦":{"category":"Objects","sheet_x":28,"sheet_y":9,"sort_order":101},"🔧":{"category":"Objects","sheet_x":28,"sheet_y":10,"sort_order":191},"🔨":{"category":"Objects","sheet_x":28,"sheet_y":11,"sort_order":181},"🔩":{"category":"Objects","sheet_x":28,"sheet_y":12,"sort_order":192},"🔪":{"category":"Food & Drink","sheet_x":28,"sheet_y":13,"sort_order":120},"🔫":{"category":"Objects","sheet_x":28,"sheet_y":14,"sort_order":188},"🔬":{"category":"Objects","sheet_x":28,"sheet_y":15,"sort_order":205},"🔭":{"category":"Objects","sheet_x":28,"sheet_y":16,"sort_order":206},"🔮":{"category":"Activities","sheet_x":28,"sheet_y":17,"sort_order":59},"🔯":{"category":"Symbols","sheet_x":28,"sheet_y":18,"sort_order":59},"🔰":{"category":"Symbols","sheet_x":28,"sheet_y":19,"sort_order":105},"🔱":{"category":"Symbols","sheet_x":28,"sheet_y":20,"sort_order":103},"🔲":{"category":"Symbols","sheet_x":28,"sheet_y":21,"sort_order":217},"🔳":{"category":"Symbols","sheet_x":28,"sheet_y":22,"sort_order":216},"🔴":{"category":"Symbols","sheet_x":28,"sheet_y":23,"sort_order":184},"🔵":{"category":"Symbols","sheet_x":28,"sheet_y":24,"sort_order":188},"🔶":{"category":"Symbols","sheet_x":28,"sheet_y":25,"sort_order":208},"🔷":{"category":"Symbols","sheet_x":28,"sheet_y":26,"sort_order":209},"🔸":{"category":"Symbols","sheet_x":28,"sheet_y":27,"sort_order":210},"🔹":{"category":"Symbols","sheet_x":28,"sheet_y":28,"sort_order":211},"🔺":{"category":"Symbols","sheet_x":28,"sheet_y":29,"sort_order":212},"🔻":{"category":"Symbols","sheet_x":28,"sheet_y":30,"sort_order":213},"🔼":{"category":"Symbols","sheet_x":28,"sheet_y":31,"sort_order":83},"🔽":{"category":"Symbols","sheet_x":28,"sheet_y":32,"sort_order":85},"🕉️":{"category":"Symbols","sheet_x":28,"sheet_y":33,"sort_order":50},"🕊️":{"category":"Animals & Nature","sheet_x":28,"sheet_y":34,"sort_order":68},"🕋":{"category":"Travel & Places","sheet_x":28,"sheet_y":35,"sort_order":46},"🕌":{"category":"Travel & Places","sheet_x":28,"sheet_y":36,"sort_order":42},"🕍":{"category":"Travel & Places","sheet_x":28,"sheet_y":37,"sort_order":44},"🕎":{"category":"Symbols","sheet_x":28,"sheet_y":38,"sort_order":58},"🕐":{"category":"Travel & Places","sheet_x":28,"sheet_y":39,"sort_order":142},"🕑":{"category":"Travel & Places","sheet_x":28,"sheet_y":40,"sort_order":144},"🕒":{"category":"Travel & Places","sheet_x":28,"sheet_y":41,"sort_order":146},"🕓":{"category":"Travel & Places","sheet_x":28,"sheet_y":42,"sort_order":148},"🕔":{"category":"Travel & Places","sheet_x":28,"sheet_y":43,"sort_order":150},"🕕":{"category":"Travel & Places","sheet_x":28,"sheet_y":44,"sort_order":152},"🕖":{"category":"Travel & Places","sheet_x":28,"sheet_y":45,"sort_order":154},"🕗":{"category":"Travel & Places","sheet_x":28,"sheet_y":46,"sort_order":156},"🕘":{"category":"Travel & Places","sheet_x":28,"sheet_y":47,"sort_order":158},"🕙":{"category":"Travel & Places","sheet_x":28,"sheet_y":48,"sort_order":160},"🕚":{"category":"Travel & Places","sheet_x":28,"sheet_y":49,"sort_order":162},"🕛":{"category":"Travel & Places","sheet_x":28,"sheet_y":50,"sort_order":140},"🕜":{"category":"Travel & Places","sheet_x":28,"sheet_y":51,"sort_order":143},"🕝":{"category":"Travel & Places","sheet_x":28,"sheet_y":52,"sort_order":145},"🕞":{"category":"Travel & Places","sheet_x":28,"sheet_y":53,"sort_order":147},"🕟":{"category":"Travel & Places","sheet_x":28,"sheet_y":54,"sort_order":149},"🕠":{"category":"Travel & Places","sheet_x":28,"sheet_y":55,"sort_order":151},"🕡":{"category":"Travel & Places","sheet_x":28,"sheet_y":56,"sort_order":153},"🕢":{"category":"Travel & Places","sheet_x":29,"sheet_y":0,"sort_order":155},"🕣":{"category":"Travel & Places","sheet_x":29,"sheet_y":1,"sort_order":157},"🕤":{"category":"Travel & Places","sheet_x":29,"sheet_y":2,"sort_order":159},"🕥":{"category":"Travel & Places","sheet_x":29,"sheet_y":3,"sort_order":161},"🕦":{"category":"Travel & Places","sheet_x":29,"sheet_y":4,"sort_order":163},"🕧":{"category":"Travel & Places","sheet_x":29,"sheet_y":5,"sort_order":141},"🕯️":{"category":"Objects","sheet_x":29,"sheet_y":6,"sort_order":99},"🕰️":{"category":"Travel & Places","sheet_x":29,"sheet_y":7,"sort_order":139},"🕳️":{"category":"Smileys & Emotion","sheet_x":29,"sheet_y":8,"sort_order":142},"🕴️":{"category":"People & Body","sheet_x":29,"sheet_y":9,"sort_order":235},"🕵️‍♀️":{"category":"People & Body","sheet_x":29,"sheet_y":15,"sort_order":158},"🕵️‍♂️":{"category":"People & Body","sheet_x":29,"sheet_y":21,"sort_order":157},"🕵️":{"category":"People & Body","sheet_x":29,"sheet_y":27,"sort_order":156},"🕶️":{"category":"Objects","sheet_x":29,"sheet_y":33,"sort_order":2},"🕷️":{"category":"Animals & Nature","sheet_x":29,"sheet_y":34,"sort_order":101},"🕸️":{"category":"Animals & Nature","sheet_x":29,"sheet_y":35,"sort_order":102},"🕹️":{"category":"Activities","sheet_x":29,"sheet_y":36,"sort_order":62},"🕺":{"category":"People & Body","sheet_x":29,"sheet_y":37,"sort_order":234},"🖇️":{"category":"Objects","sheet_x":29,"sheet_y":43,"sort_order":168},"🖊️":{"category":"Objects","sheet_x":29,"sheet_y":44,"sort_order":148},"🖋️":{"category":"Objects","sheet_x":29,"sheet_y":45,"sort_order":147},"🖌️":{"category":"Objects","sheet_x":29,"sheet_y":46,"sort_order":149},"🖍️":{"category":"Objects","sheet_x":29,"sheet_y":47,"sort_order":150},"🖐️":{"category":"People & Body","sheet_x":29,"sheet_y":48,"sort_order":3},"🖕":{"category":"People & Body","sheet_x":29,"sheet_y":54,"sort_order":16},"🖖":{"category":"People & Body","sheet_x":30,"sheet_y":3,"sort_order":5},"🖤":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":9,"sort_order":134},"🖥️":{"category":"Objects","sheet_x":30,"sheet_y":10,"sort_order":78},"🖨️":{"category":"Objects","sheet_x":30,"sheet_y":11,"sort_order":79},"🖱️":{"category":"Objects","sheet_x":30,"sheet_y":12,"sort_order":81},"🖲️":{"category":"Objects","sheet_x":30,"sheet_y":13,"sort_order":82},"🖼️":{"category":"Activities","sheet_x":30,"sheet_y":14,"sort_order":76},"🗂️":{"category":"Objects","sheet_x":30,"sheet_y":15,"sort_order":155},"🗃️":{"category":"Objects","sheet_x":30,"sheet_y":16,"sort_order":172},"🗄️":{"category":"Objects","sheet_x":30,"sheet_y":17,"sort_order":173},"🗑️":{"category":"Objects","sheet_x":30,"sheet_y":18,"sort_order":174},"🗒️":{"category":"Objects","sheet_x":30,"sheet_y":19,"sort_order":158},"🗓️":{"category":"Objects","sheet_x":30,"sheet_y":20,"sort_order":159},"🗜️":{"category":"Objects","sheet_x":30,"sheet_y":21,"sort_order":194},"🗝️":{"category":"Objects","sheet_x":30,"sheet_y":22,"sort_order":180},"🗞️":{"category":"Objects","sheet_x":30,"sheet_y":23,"sort_order":117},"🗡️":{"category":"Objects","sheet_x":30,"sheet_y":24,"sort_order":186},"🗣️":{"category":"People & Body","sheet_x":30,"sheet_y":25,"sort_order":331},"🗨️":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":26,"sort_order":146},"🗯️":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":27,"sort_order":147},"🗳️":{"category":"Objects","sheet_x":30,"sheet_y":28,"sort_order":144},"🗺️":{"category":"Travel & Places","sheet_x":30,"sheet_y":29,"sort_order":5},"🗻":{"category":"Travel & Places","sheet_x":30,"sheet_y":30,"sort_order":11},"🗼":{"category":"Travel & Places","sheet_x":30,"sheet_y":31,"sort_order":39},"🗽":{"category":"Travel & Places","sheet_x":30,"sheet_y":32,"sort_order":40},"🗾":{"category":"Travel & Places","sheet_x":30,"sheet_y":33,"sort_order":6},"🗿":{"category":"Objects","sheet_x":30,"sheet_y":34,"sort_order":233},"😀":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":35,"sort_order":1},"😁":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":36,"sort_order":4},"😂":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":37,"sort_order":8},"😃":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":38,"sort_order":2},"😄":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":39,"sort_order":3},"😅":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":40,"sort_order":6},"😆":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":41,"sort_order":5},"😇":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":42,"sort_order":13},"😈":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":43,"sort_order":91},"😉":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":44,"sort_order":11},"😊":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":45,"sort_order":12},"😋":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":46,"sort_order":22},"😌":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":47,"sort_order":42},"😍":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":48,"sort_order":15},"😎":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":49,"sort_order":60},"😏":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":50,"sort_order":37},"😐":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":51,"sort_order":34},"😑":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":52,"sort_order":35},"😒":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":53,"sort_order":38},"😓":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":54,"sort_order":83},"😔":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":55,"sort_order":43},"😕":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":56,"sort_order":63},"😖":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":0,"sort_order":80},"😗":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":1,"sort_order":18},"😘":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":2,"sort_order":17},"😙":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":3,"sort_order":21},"😚":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":4,"sort_order":20},"😛":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":5,"sort_order":23},"😜":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":6,"sort_order":24},"😝":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":7,"sort_order":26},"😞":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":8,"sort_order":82},"😟":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":9,"sort_order":64},"😠":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":10,"sort_order":89},"😡":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":11,"sort_order":88},"😢":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":12,"sort_order":77},"😣":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":13,"sort_order":81},"😤":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":14,"sort_order":87},"😥":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":15,"sort_order":76},"😦":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":16,"sort_order":72},"😧":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":17,"sort_order":73},"😨":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":18,"sort_order":74},"😩":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":19,"sort_order":84},"😪":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":20,"sort_order":44},"😫":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":21,"sort_order":85},"😬":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":22,"sort_order":40},"😭":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":23,"sort_order":78},"😮":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":24,"sort_order":67},"😯":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":25,"sort_order":68},"😰":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":26,"sort_order":75},"😱":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":27,"sort_order":79},"😲":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":28,"sort_order":69},"😳":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":29,"sort_order":70},"😴":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":30,"sort_order":46},"😵":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":31,"sort_order":56},"😶":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":32,"sort_order":36},"😷":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":33,"sort_order":47},"😸":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":34,"sort_order":104},"😹":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":35,"sort_order":105},"😺":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":36,"sort_order":103},"😻":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":37,"sort_order":106},"😼":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":38,"sort_order":107},"😽":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":39,"sort_order":108},"😾":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":40,"sort_order":111},"😿":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":41,"sort_order":110},"🙀":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":42,"sort_order":109},"🙁":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":43,"sort_order":65},"🙂":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":44,"sort_order":9},"🙃":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":45,"sort_order":10},"🙄":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":46,"sort_order":39},"🙅‍♀️":{"category":"People & Body","sheet_x":31,"sheet_y":47,"sort_order":83},"🙅‍♂️":{"category":"People & Body","sheet_x":31,"sheet_y":53,"sort_order":82},"🙅":{"category":"People & Body","sheet_x":32,"sheet_y":2,"sort_order":81},"🙆‍♀️":{"category":"People & Body","sheet_x":32,"sheet_y":8,"sort_order":86},"🙆‍♂️":{"category":"People & Body","sheet_x":32,"sheet_y":14,"sort_order":85},"🙆":{"category":"People & Body","sheet_x":32,"sheet_y":20,"sort_order":84},"🙇‍♀️":{"category":"People & Body","sheet_x":32,"sheet_y":26,"sort_order":98},"🙇‍♂️":{"category":"People & Body","sheet_x":32,"sheet_y":32,"sort_order":97},"🙇":{"category":"People & Body","sheet_x":32,"sheet_y":38,"sort_order":96},"🙈":{"category":"Smileys & Emotion","sheet_x":32,"sheet_y":44,"sort_order":112},"🙉":{"category":"Smileys & Emotion","sheet_x":32,"sheet_y":45,"sort_order":113},"🙊":{"category":"Smileys & Emotion","sheet_x":32,"sheet_y":46,"sort_order":114},"🙋‍♀️":{"category":"People & Body","sheet_x":32,"sheet_y":47,"sort_order":92},"🙋‍♂️":{"category":"People & Body","sheet_x":32,"sheet_y":53,"sort_order":91},"🙋":{"category":"People & Body","sheet_x":33,"sheet_y":2,"sort_order":90},"🙌":{"category":"People & Body","sheet_x":33,"sheet_y":8,"sort_order":26},"🙍‍♀️":{"category":"People & Body","sheet_x":33,"sheet_y":14,"sort_order":77},"🙍‍♂️":{"category":"People & Body","sheet_x":33,"sheet_y":20,"sort_order":76},"🙍":{"category":"People & Body","sheet_x":33,"sheet_y":26,"sort_order":75},"🙎‍♀️":{"category":"People & Body","sheet_x":33,"sheet_y":32,"sort_order":80},"🙎‍♂️":{"category":"People & Body","sheet_x":33,"sheet_y":38,"sort_order":79},"🙎":{"category":"People & Body","sheet_x":33,"sheet_y":44,"sort_order":78},"🙏":{"category":"People & Body","sheet_x":33,"sheet_y":50,"sort_order":30},"🚀":{"category":"Travel & Places","sheet_x":33,"sheet_y":56,"sort_order":129},"🚁":{"category":"Travel & Places","sheet_x":34,"sheet_y":0,"sort_order":124},"🚂":{"category":"Travel & Places","sheet_x":34,"sheet_y":1,"sort_order":63},"🚃":{"category":"Travel & Places","sheet_x":34,"sheet_y":2,"sort_order":64},"🚄":{"category":"Travel & Places","sheet_x":34,"sheet_y":3,"sort_order":65},"🚅":{"category":"Travel & Places","sheet_x":34,"sheet_y":4,"sort_order":66},"🚆":{"category":"Travel & Places","sheet_x":34,"sheet_y":5,"sort_order":67},"🚇":{"category":"Travel & Places","sheet_x":34,"sheet_y":6,"sort_order":68},"🚈":{"category":"Travel & Places","sheet_x":34,"sheet_y":7,"sort_order":69},"🚉":{"category":"Travel & Places","sheet_x":34,"sheet_y":8,"sort_order":70},"🚊":{"category":"Travel & Places","sheet_x":34,"sheet_y":9,"sort_order":71},"🚋":{"category":"Travel & Places","sheet_x":34,"sheet_y":10,"sort_order":74},"🚌":{"category":"Travel & Places","sheet_x":34,"sheet_y":11,"sort_order":75},"🚍":{"category":"Travel & Places","sheet_x":34,"sheet_y":12,"sort_order":76},"🚎":{"category":"Travel & Places","sheet_x":34,"sheet_y":13,"sort_order":77},"🚏":{"category":"Travel & Places","sheet_x":34,"sheet_y":14,"sort_order":100},"🚐":{"category":"Travel & Places","sheet_x":34,"sheet_y":15,"sort_order":78},"🚑":{"category":"Travel & Places","sheet_x":34,"sheet_y":16,"sort_order":79},"🚒":{"category":"Travel & Places","sheet_x":34,"sheet_y":17,"sort_order":80},"🚓":{"category":"Travel & Places","sheet_x":34,"sheet_y":18,"sort_order":81},"🚔":{"category":"Travel & Places","sheet_x":34,"sheet_y":19,"sort_order":82},"🚕":{"category":"Travel & Places","sheet_x":34,"sheet_y":20,"sort_order":83},"🚖":{"category":"Travel & Places","sheet_x":34,"sheet_y":21,"sort_order":84},"🚗":{"category":"Travel & Places","sheet_x":34,"sheet_y":22,"sort_order":85},"🚘":{"category":"Travel & Places","sheet_x":34,"sheet_y":23,"sort_order":86},"🚙":{"category":"Travel & Places","sheet_x":34,"sheet_y":24,"sort_order":87},"🚚":{"category":"Travel & Places","sheet_x":34,"sheet_y":25,"sort_order":88},"🚛":{"category":"Travel & Places","sheet_x":34,"sheet_y":26,"sort_order":89},"🚜":{"category":"Travel & Places","sheet_x":34,"sheet_y":27,"sort_order":90},"🚝":{"category":"Travel & Places","sheet_x":34,"sheet_y":28,"sort_order":72},"🚞":{"category":"Travel & Places","sheet_x":34,"sheet_y":29,"sort_order":73},"🚟":{"category":"Travel & Places","sheet_x":34,"sheet_y":30,"sort_order":125},"🚠":{"category":"Travel & Places","sheet_x":34,"sheet_y":31,"sort_order":126},"🚡":{"category":"Travel & Places","sheet_x":34,"sheet_y":32,"sort_order":127},"🚢":{"category":"Travel & Places","sheet_x":34,"sheet_y":33,"sort_order":117},"🚣‍♀️":{"category":"People & Body","sheet_x":34,"sheet_y":34,"sort_order":257},"🚣‍♂️":{"category":"People & Body","sheet_x":34,"sheet_y":40,"sort_order":256},"🚣":{"category":"People & Body","sheet_x":34,"sheet_y":46,"sort_order":255},"🚤":{"category":"Travel & Places","sheet_x":34,"sheet_y":52,"sort_order":113},"🚥":{"category":"Travel & Places","sheet_x":34,"sheet_y":53,"sort_order":106},"🚦":{"category":"Travel & Places","sheet_x":34,"sheet_y":54,"sort_order":107},"🚧":{"category":"Travel & Places","sheet_x":34,"sheet_y":55,"sort_order":109},"🚨":{"category":"Travel & Places","sheet_x":34,"sheet_y":56,"sort_order":105},"🚩":{"category":"Flags","sheet_x":35,"sheet_y":0,"sort_order":2},"🚪":{"category":"Objects","sheet_x":35,"sheet_y":1,"sort_order":213},"🚫":{"category":"Symbols","sheet_x":35,"sheet_y":2,"sort_order":17},"🚬":{"category":"Objects","sheet_x":35,"sheet_y":3,"sort_order":230},"🚭":{"category":"Symbols","sheet_x":35,"sheet_y":4,"sort_order":19},"🚮":{"category":"Symbols","sheet_x":35,"sheet_y":5,"sort_order":2},"🚯":{"category":"Symbols","sheet_x":35,"sheet_y":6,"sort_order":20},"🚰":{"category":"Symbols","sheet_x":35,"sheet_y":7,"sort_order":3},"🚱":{"category":"Symbols","sheet_x":35,"sheet_y":8,"sort_order":21},"🚲":{"category":"Travel & Places","sheet_x":35,"sheet_y":9,"sort_order":97},"🚳":{"category":"Symbols","sheet_x":35,"sheet_y":10,"sort_order":18},"🚴‍♀️":{"category":"People & Body","sheet_x":35,"sheet_y":11,"sort_order":269},"🚴‍♂️":{"category":"People & Body","sheet_x":35,"sheet_y":17,"sort_order":268},"🚴":{"category":"People & Body","sheet_x":35,"sheet_y":23,"sort_order":267},"🚵‍♀️":{"category":"People & Body","sheet_x":35,"sheet_y":29,"sort_order":272},"🚵‍♂️":{"category":"People & Body","sheet_x":35,"sheet_y":35,"sort_order":271},"🚵":{"category":"People & Body","sheet_x":35,"sheet_y":41,"sort_order":270},"🚶‍♀️":{"category":"People & Body","sheet_x":35,"sheet_y":47,"sort_order":214},"🚶‍♂️":{"category":"People & Body","sheet_x":35,"sheet_y":53,"sort_order":213},"🚶":{"category":"People & Body","sheet_x":36,"sheet_y":2,"sort_order":212},"🚷":{"category":"Symbols","sheet_x":36,"sheet_y":8,"sort_order":22},"🚸":{"category":"Symbols","sheet_x":36,"sheet_y":9,"sort_order":15},"🚹":{"category":"Symbols","sheet_x":36,"sheet_y":10,"sort_order":5},"🚺":{"category":"Symbols","sheet_x":36,"sheet_y":11,"sort_order":6},"🚻":{"category":"Symbols","sheet_x":36,"sheet_y":12,"sort_order":7},"🚼":{"category":"Symbols","sheet_x":36,"sheet_y":13,"sort_order":8},"🚽":{"category":"Objects","sheet_x":36,"sheet_y":14,"sort_order":217},"🚾":{"category":"Symbols","sheet_x":36,"sheet_y":15,"sort_order":9},"🚿":{"category":"Objects","sheet_x":36,"sheet_y":16,"sort_order":218},"🛀":{"category":"People & Body","sheet_x":36,"sheet_y":17,"sort_order":291},"🛁":{"category":"Objects","sheet_x":36,"sheet_y":23,"sort_order":219},"🛂":{"category":"Symbols","sheet_x":36,"sheet_y":24,"sort_order":10},"🛃":{"category":"Symbols","sheet_x":36,"sheet_y":25,"sort_order":11},"🛄":{"category":"Symbols","sheet_x":36,"sheet_y":26,"sort_order":12},"🛅":{"category":"Symbols","sheet_x":36,"sheet_y":27,"sort_order":13},"🛋️":{"category":"Objects","sheet_x":36,"sheet_y":28,"sort_order":215},"🛌":{"category":"People & Body","sheet_x":36,"sheet_y":29,"sort_order":292},"🛍️":{"category":"Objects","sheet_x":36,"sheet_y":35,"sort_order":24},"🛎️":{"category":"Travel & Places","sheet_x":36,"sheet_y":36,"sort_order":131},"🛏️":{"category":"Objects","sheet_x":36,"sheet_y":37,"sort_order":214},"🛐":{"category":"Symbols","sheet_x":36,"sheet_y":38,"sort_order":48},"🛑":{"category":"Travel & Places","sheet_x":36,"sheet_y":39,"sort_order":108},"🛒":{"category":"Objects","sheet_x":36,"sheet_y":40,"sort_order":229},"🛕":{"category":"Travel & Places","sheet_x":36,"sheet_y":41,"sort_order":43},"🛠️":{"category":"Objects","sheet_x":36,"sheet_y":42,"sort_order":185},"🛡️":{"category":"Objects","sheet_x":36,"sheet_y":43,"sort_order":190},"🛢️":{"category":"Travel & Places","sheet_x":36,"sheet_y":44,"sort_order":103},"🛣️":{"category":"Travel & Places","sheet_x":36,"sheet_y":45,"sort_order":101},"🛤️":{"category":"Travel & Places","sheet_x":36,"sheet_y":46,"sort_order":102},"🛥️":{"category":"Travel & Places","sheet_x":36,"sheet_y":47,"sort_order":116},"🛩️":{"category":"Travel & Places","sheet_x":36,"sheet_y":48,"sort_order":119},"🛫":{"category":"Travel & Places","sheet_x":36,"sheet_y":49,"sort_order":120},"🛬":{"category":"Travel & Places","sheet_x":36,"sheet_y":50,"sort_order":121},"🛰️":{"category":"Travel & Places","sheet_x":36,"sheet_y":51,"sort_order":128},"🛳️":{"category":"Travel & Places","sheet_x":36,"sheet_y":52,"sort_order":114},"🛴":{"category":"Travel & Places","sheet_x":36,"sheet_y":53,"sort_order":98},"🛵":{"category":"Travel & Places","sheet_x":36,"sheet_y":54,"sort_order":93},"🛶":{"category":"Travel & Places","sheet_x":36,"sheet_y":55,"sort_order":112},"🛷":{"category":"Activities","sheet_x":36,"sheet_y":56,"sort_order":53},"🛸":{"category":"Travel & Places","sheet_x":37,"sheet_y":0,"sort_order":130},"🛹":{"category":"Travel & Places","sheet_x":37,"sheet_y":1,"sort_order":99},"🛺":{"category":"Travel & Places","sheet_x":37,"sheet_y":2,"sort_order":96},"🟠":{"category":"Symbols","sheet_x":37,"sheet_y":3,"sort_order":185},"🟡":{"category":"Symbols","sheet_x":37,"sheet_y":4,"sort_order":186},"🟢":{"category":"Symbols","sheet_x":37,"sheet_y":5,"sort_order":187},"🟣":{"category":"Symbols","sheet_x":37,"sheet_y":6,"sort_order":189},"🟤":{"category":"Symbols","sheet_x":37,"sheet_y":7,"sort_order":190},"🟥":{"category":"Symbols","sheet_x":37,"sheet_y":8,"sort_order":193},"🟦":{"category":"Symbols","sheet_x":37,"sheet_y":9,"sort_order":197},"🟧":{"category":"Symbols","sheet_x":37,"sheet_y":10,"sort_order":194},"🟨":{"category":"Symbols","sheet_x":37,"sheet_y":11,"sort_order":195},"🟩":{"category":"Symbols","sheet_x":37,"sheet_y":12,"sort_order":196},"🟪":{"category":"Symbols","sheet_x":37,"sheet_y":13,"sort_order":198},"🟫":{"category":"Symbols","sheet_x":37,"sheet_y":14,"sort_order":199},"🤍":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":15,"sort_order":135},"🤎":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":16,"sort_order":133},"🤏":{"category":"People & Body","sheet_x":37,"sheet_y":17,"sort_order":7},"🤐":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":23,"sort_order":32},"🤑":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":24,"sort_order":27},"🤒":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":25,"sort_order":48},"🤓":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":26,"sort_order":61},"🤔":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":27,"sort_order":31},"🤕":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":28,"sort_order":49},"🤖":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":29,"sort_order":102},"🤗":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":30,"sort_order":28},"🤘":{"category":"People & Body","sheet_x":37,"sheet_y":31,"sort_order":11},"🤙":{"category":"People & Body","sheet_x":37,"sheet_y":37,"sort_order":12},"🤚":{"category":"People & Body","sheet_x":37,"sheet_y":43,"sort_order":2},"🤛":{"category":"People & Body","sheet_x":37,"sheet_y":49,"sort_order":23},"🤜":{"category":"People & Body","sheet_x":37,"sheet_y":55,"sort_order":24},"🤝":{"category":"People & Body","sheet_x":38,"sheet_y":4,"sort_order":29},"🤞":{"category":"People & Body","sheet_x":38,"sheet_y":5,"sort_order":9},"🤟":{"category":"People & Body","sheet_x":38,"sheet_y":11,"sort_order":10},"🤠":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":17,"sort_order":58},"🤡":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":18,"sort_order":96},"🤢":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":19,"sort_order":50},"🤣":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":20,"sort_order":7},"🤤":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":21,"sort_order":45},"🤥":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":22,"sort_order":41},"🤦‍♀️":{"category":"People & Body","sheet_x":38,"sheet_y":23,"sort_order":101},"🤦‍♂️":{"category":"People & Body","sheet_x":38,"sheet_y":29,"sort_order":100},"🤦":{"category":"People & Body","sheet_x":38,"sheet_y":35,"sort_order":99},"🤧":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":41,"sort_order":52},"🤨":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":42,"sort_order":33},"🤩":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":43,"sort_order":16},"🤪":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":44,"sort_order":25},"🤫":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":45,"sort_order":30},"🤬":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":46,"sort_order":90},"🤭":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":47,"sort_order":29},"🤮":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":48,"sort_order":51},"🤯":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":49,"sort_order":57},"🤰":{"category":"People & Body","sheet_x":38,"sheet_y":50,"sort_order":174},"🤱":{"category":"People & Body","sheet_x":38,"sheet_y":56,"sort_order":175},"🤲":{"category":"People & Body","sheet_x":39,"sheet_y":5,"sort_order":28},"🤳":{"category":"People & Body","sheet_x":39,"sheet_y":11,"sort_order":33},"🤴":{"category":"People & Body","sheet_x":39,"sheet_y":17,"sort_order":165},"🤵":{"category":"People & Body","sheet_x":39,"sheet_y":23,"sort_order":172},"🤶":{"category":"People & Body","sheet_x":39,"sheet_y":29,"sort_order":178},"🤷‍♀️":{"category":"People & Body","sheet_x":39,"sheet_y":35,"sort_order":104},"🤷‍♂️":{"category":"People & Body","sheet_x":39,"sheet_y":41,"sort_order":103},"🤷":{"category":"People & Body","sheet_x":39,"sheet_y":47,"sort_order":102},"🤸‍♀️":{"category":"People & Body","sheet_x":39,"sheet_y":53,"sort_order":275},"🤸‍♂️":{"category":"People & Body","sheet_x":40,"sheet_y":2,"sort_order":274},"🤸":{"category":"People & Body","sheet_x":40,"sheet_y":8,"sort_order":273},"🤹‍♀️":{"category":"People & Body","sheet_x":40,"sheet_y":14,"sort_order":287},"🤹‍♂️":{"category":"People & Body","sheet_x":40,"sheet_y":20,"sort_order":286},"🤹":{"category":"People & Body","sheet_x":40,"sheet_y":26,"sort_order":285},"🤺":{"category":"People & Body","sheet_x":40,"sheet_y":32,"sort_order":245},"🤼‍♀️":{"category":"People & Body","sheet_x":40,"sheet_y":33,"sort_order":278},"🤼‍♂️":{"category":"People & Body","sheet_x":40,"sheet_y":34,"sort_order":277},"🤼":{"category":"People & Body","sheet_x":40,"sheet_y":35,"sort_order":276},"🤽‍♀️":{"category":"People & Body","sheet_x":40,"sheet_y":36,"sort_order":281},"🤽‍♂️":{"category":"People & Body","sheet_x":40,"sheet_y":42,"sort_order":280},"🤽":{"category":"People & Body","sheet_x":40,"sheet_y":48,"sort_order":279},"🤾‍♀️":{"category":"People & Body","sheet_x":40,"sheet_y":54,"sort_order":284},"🤾‍♂️":{"category":"People & Body","sheet_x":41,"sheet_y":3,"sort_order":283},"🤾":{"category":"People & Body","sheet_x":41,"sheet_y":9,"sort_order":282},"🤿":{"category":"Activities","sheet_x":41,"sheet_y":15,"sort_order":50},"🥀":{"category":"Animals & Nature","sheet_x":41,"sheet_y":16,"sort_order":111},"🥁":{"category":"Objects","sheet_x":41,"sheet_y":17,"sort_order":68},"🥂":{"category":"Food & Drink","sheet_x":41,"sheet_y":18,"sort_order":110},"🥃":{"category":"Food & Drink","sheet_x":41,"sheet_y":19,"sort_order":111},"🥄":{"category":"Food & Drink","sheet_x":41,"sheet_y":20,"sort_order":119},"🥅":{"category":"Activities","sheet_x":41,"sheet_y":21,"sort_order":46},"🥇":{"category":"Activities","sheet_x":41,"sheet_y":22,"sort_order":25},"🥈":{"category":"Activities","sheet_x":41,"sheet_y":23,"sort_order":26},"🥉":{"category":"Activities","sheet_x":41,"sheet_y":24,"sort_order":27},"🥊":{"category":"Activities","sheet_x":41,"sheet_y":25,"sort_order":44},"🥋":{"category":"Activities","sheet_x":41,"sheet_y":26,"sort_order":45},"🥌":{"category":"Activities","sheet_x":41,"sheet_y":27,"sort_order":54},"🥍":{"category":"Activities","sheet_x":41,"sheet_y":28,"sort_order":41},"🥎":{"category":"Activities","sheet_x":41,"sheet_y":29,"sort_order":30},"🥏":{"category":"Activities","sheet_x":41,"sheet_y":30,"sort_order":36},"🥐":{"category":"Food & Drink","sheet_x":41,"sheet_y":31,"sort_order":33},"🥑":{"category":"Food & Drink","sheet_x":41,"sheet_y":32,"sort_order":18},"🥒":{"category":"Food & Drink","sheet_x":41,"sheet_y":33,"sort_order":24},"🥓":{"category":"Food & Drink","sheet_x":41,"sheet_y":34,"sort_order":43},"🥔":{"category":"Food & Drink","sheet_x":41,"sheet_y":35,"sort_order":20},"🥕":{"category":"Food & Drink","sheet_x":41,"sheet_y":36,"sort_order":21},"🥖":{"category":"Food & Drink","sheet_x":41,"sheet_y":37,"sort_order":34},"🥗":{"category":"Food & Drink","sheet_x":41,"sheet_y":38,"sort_order":58},"🥘":{"category":"Food & Drink","sheet_x":41,"sheet_y":39,"sort_order":55},"🥙":{"category":"Food & Drink","sheet_x":41,"sheet_y":40,"sort_order":51},"🥚":{"category":"Food & Drink","sheet_x":41,"sheet_y":41,"sort_order":53},"🥛":{"category":"Food & Drink","sheet_x":41,"sheet_y":42,"sort_order":100},"🥜":{"category":"Food & Drink","sheet_x":41,"sheet_y":43,"sort_order":30},"🥝":{"category":"Food & Drink","sheet_x":41,"sheet_y":44,"sort_order":15},"🥞":{"category":"Food & Drink","sheet_x":41,"sheet_y":45,"sort_order":37},"🥟":{"category":"Food & Drink","sheet_x":41,"sheet_y":46,"sort_order":77},"🥠":{"category":"Food & Drink","sheet_x":41,"sheet_y":47,"sort_order":78},"🥡":{"category":"Food & Drink","sheet_x":41,"sheet_y":48,"sort_order":79},"🥢":{"category":"Food & Drink","sheet_x":41,"sheet_y":49,"sort_order":116},"🥣":{"category":"Food & Drink","sheet_x":41,"sheet_y":50,"sort_order":57},"🥤":{"category":"Food & Drink","sheet_x":41,"sheet_y":51,"sort_order":112},"🥥":{"category":"Food & Drink","sheet_x":41,"sheet_y":52,"sort_order":17},"🥦":{"category":"Food & Drink","sheet_x":41,"sheet_y":53,"sort_order":26},"🥧":{"category":"Food & Drink","sheet_x":41,"sheet_y":54,"sort_order":93},"🥨":{"category":"Food & Drink","sheet_x":41,"sheet_y":55,"sort_order":35},"🥩":{"category":"Food & Drink","sheet_x":41,"sheet_y":56,"sort_order":42},"🥪":{"category":"Food & Drink","sheet_x":42,"sheet_y":0,"sort_order":48},"🥫":{"category":"Food & Drink","sheet_x":42,"sheet_y":1,"sort_order":62},"🥬":{"category":"Food & Drink","sheet_x":42,"sheet_y":2,"sort_order":25},"🥭":{"category":"Food & Drink","sheet_x":42,"sheet_y":3,"sort_order":8},"🥮":{"category":"Food & Drink","sheet_x":42,"sheet_y":4,"sort_order":75},"🥯":{"category":"Food & Drink","sheet_x":42,"sheet_y":5,"sort_order":36},"🥰":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":6,"sort_order":14},"🥱":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":7,"sort_order":86},"🥳":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":8,"sort_order":59},"🥴":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":9,"sort_order":55},"🥵":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":10,"sort_order":53},"🥶":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":11,"sort_order":54},"🥺":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":12,"sort_order":71},"🥻":{"category":"Objects","sheet_x":42,"sheet_y":13,"sort_order":15},"🥼":{"category":"Objects","sheet_x":42,"sheet_y":14,"sort_order":4},"🥽":{"category":"Objects","sheet_x":42,"sheet_y":15,"sort_order":3},"🥾":{"category":"Objects","sheet_x":42,"sheet_y":16,"sort_order":28},"🥿":{"category":"Objects","sheet_x":42,"sheet_y":17,"sort_order":29},"🦀":{"category":"Food & Drink","sheet_x":42,"sheet_y":18,"sort_order":80},"🦁":{"category":"Animals & Nature","sheet_x":42,"sheet_y":19,"sort_order":15},"🦂":{"category":"Animals & Nature","sheet_x":42,"sheet_y":20,"sort_order":103},"🦃":{"category":"Animals & Nature","sheet_x":42,"sheet_y":21,"sort_order":60},"🦄":{"category":"Animals & Nature","sheet_x":42,"sheet_y":22,"sort_order":21},"🦅":{"category":"Animals & Nature","sheet_x":42,"sheet_y":23,"sort_order":69},"🦆":{"category":"Animals & Nature","sheet_x":42,"sheet_y":24,"sort_order":70},"🦇":{"category":"Animals & Nature","sheet_x":42,"sheet_y":25,"sort_order":50},"🦈":{"category":"Animals & Nature","sheet_x":42,"sheet_y":26,"sort_order":91},"🦉":{"category":"Animals & Nature","sheet_x":42,"sheet_y":27,"sort_order":72},"🦊":{"category":"Animals & Nature","sheet_x":42,"sheet_y":28,"sort_order":11},"🦋":{"category":"Animals & Nature","sheet_x":42,"sheet_y":29,"sort_order":95},"🦌":{"category":"Animals & Nature","sheet_x":42,"sheet_y":30,"sort_order":23},"🦍":{"category":"Animals & Nature","sheet_x":42,"sheet_y":31,"sort_order":3},"🦎":{"category":"Animals & Nature","sheet_x":42,"sheet_y":32,"sort_order":79},"🦏":{"category":"Animals & Nature","sheet_x":42,"sheet_y":33,"sort_order":40},"🦐":{"category":"Food & Drink","sheet_x":42,"sheet_y":34,"sort_order":82},"🦑":{"category":"Food & Drink","sheet_x":42,"sheet_y":35,"sort_order":83},"🦒":{"category":"Animals & Nature","sheet_x":42,"sheet_y":36,"sort_order":38},"🦓":{"category":"Animals & Nature","sheet_x":42,"sheet_y":37,"sort_order":22},"🦔":{"category":"Animals & Nature","sheet_x":42,"sheet_y":38,"sort_order":49},"🦕":{"category":"Animals & Nature","sheet_x":42,"sheet_y":39,"sort_order":83},"🦖":{"category":"Animals & Nature","sheet_x":42,"sheet_y":40,"sort_order":84},"🦗":{"category":"Animals & Nature","sheet_x":42,"sheet_y":41,"sort_order":100},"🦘":{"category":"Animals & Nature","sheet_x":42,"sheet_y":42,"sort_order":57},"🦙":{"category":"Animals & Nature","sheet_x":42,"sheet_y":43,"sort_order":37},"🦚":{"category":"Animals & Nature","sheet_x":42,"sheet_y":44,"sort_order":74},"🦛":{"category":"Animals & Nature","sheet_x":42,"sheet_y":45,"sort_order":41},"🦜":{"category":"Animals & Nature","sheet_x":42,"sheet_y":46,"sort_order":75},"🦝":{"category":"Animals & Nature","sheet_x":42,"sheet_y":47,"sort_order":12},"🦞":{"category":"Food & Drink","sheet_x":42,"sheet_y":48,"sort_order":81},"🦟":{"category":"Animals & Nature","sheet_x":42,"sheet_y":49,"sort_order":104},"🦠":{"category":"Animals & Nature","sheet_x":42,"sheet_y":50,"sort_order":105},"🦡":{"category":"Animals & Nature","sheet_x":42,"sheet_y":51,"sort_order":58},"🦢":{"category":"Animals & Nature","sheet_x":42,"sheet_y":52,"sort_order":71},"🦥":{"category":"Animals & Nature","sheet_x":42,"sheet_y":53,"sort_order":54},"🦦":{"category":"Animals & Nature","sheet_x":42,"sheet_y":54,"sort_order":55},"🦧":{"category":"Animals & Nature","sheet_x":42,"sheet_y":55,"sort_order":4},"🦨":{"category":"Animals & Nature","sheet_x":42,"sheet_y":56,"sort_order":56},"🦩":{"category":"Animals & Nature","sheet_x":43,"sheet_y":0,"sort_order":73},"🦪":{"category":"Food & Drink","sheet_x":43,"sheet_y":1,"sort_order":84},"🦮":{"category":"Animals & Nature","sheet_x":43,"sheet_y":2,"sort_order":7},"🦯":{"category":"Objects","sheet_x":43,"sheet_y":3,"sort_order":196},"🦴":{"category":"People & Body","sheet_x":43,"sheet_y":4,"sort_order":44},"🦵":{"category":"People & Body","sheet_x":43,"sheet_y":5,"sort_order":37},"🦶":{"category":"People & Body","sheet_x":43,"sheet_y":11,"sort_order":38},"🦷":{"category":"People & Body","sheet_x":43,"sheet_y":17,"sort_order":43},"🦸‍♀️":{"category":"People & Body","sheet_x":43,"sheet_y":18,"sort_order":181},"🦸‍♂️":{"category":"People & Body","sheet_x":43,"sheet_y":24,"sort_order":180},"🦸":{"category":"People & Body","sheet_x":43,"sheet_y":30,"sort_order":179},"🦹‍♀️":{"category":"People & Body","sheet_x":43,"sheet_y":36,"sort_order":184},"🦹‍♂️":{"category":"People & Body","sheet_x":43,"sheet_y":42,"sort_order":183},"🦹":{"category":"People & Body","sheet_x":43,"sheet_y":48,"sort_order":182},"🦺":{"category":"Objects","sheet_x":43,"sheet_y":54,"sort_order":5},"🦻":{"category":"People & Body","sheet_x":43,"sheet_y":55,"sort_order":40},"🦼":{"category":"Travel & Places","sheet_x":44,"sheet_y":4,"sort_order":95},"🦽":{"category":"Travel & Places","sheet_x":44,"sheet_y":5,"sort_order":94},"🦾":{"category":"People & Body","sheet_x":44,"sheet_y":6,"sort_order":35},"🦿":{"category":"People & Body","sheet_x":44,"sheet_y":7,"sort_order":36},"🧀":{"category":"Food & Drink","sheet_x":44,"sheet_y":8,"sort_order":39},"🧁":{"category":"Food & Drink","sheet_x":44,"sheet_y":9,"sort_order":92},"🧂":{"category":"Food & Drink","sheet_x":44,"sheet_y":10,"sort_order":61},"🧃":{"category":"Food & Drink","sheet_x":44,"sheet_y":11,"sort_order":113},"🧄":{"category":"Food & Drink","sheet_x":44,"sheet_y":12,"sort_order":27},"🧅":{"category":"Food & Drink","sheet_x":44,"sheet_y":13,"sort_order":28},"🧆":{"category":"Food & Drink","sheet_x":44,"sheet_y":14,"sort_order":52},"🧇":{"category":"Food & Drink","sheet_x":44,"sheet_y":15,"sort_order":38},"🧈":{"category":"Food & Drink","sheet_x":44,"sheet_y":16,"sort_order":60},"🧉":{"category":"Food & Drink","sheet_x":44,"sheet_y":17,"sort_order":114},"🧊":{"category":"Food & Drink","sheet_x":44,"sheet_y":18,"sort_order":115},"🧍‍♀️":{"category":"People & Body","sheet_x":44,"sheet_y":19,"sort_order":217},"🧍‍♂️":{"category":"People & Body","sheet_x":44,"sheet_y":25,"sort_order":216},"🧍":{"category":"People & Body","sheet_x":44,"sheet_y":31,"sort_order":215},"🧎‍♀️":{"category":"People & Body","sheet_x":44,"sheet_y":37,"sort_order":220},"🧎‍♂️":{"category":"People & Body","sheet_x":44,"sheet_y":43,"sort_order":219},"🧎":{"category":"People & Body","sheet_x":44,"sheet_y":49,"sort_order":218},"🧏‍♀️":{"category":"People & Body","sheet_x":44,"sheet_y":55,"sort_order":95},"🧏‍♂️":{"category":"People & Body","sheet_x":45,"sheet_y":4,"sort_order":94},"🧏":{"category":"People & Body","sheet_x":45,"sheet_y":10,"sort_order":93},"🧐":{"category":"Smileys & Emotion","sheet_x":45,"sheet_y":16,"sort_order":62},"🧑‍🌾":{"category":"People & Body","sheet_x":45,"sheet_y":17,"sort_order":117},"🧑‍🍳":{"category":"People & Body","sheet_x":45,"sheet_y":23,"sort_order":120},"🧑‍🎓":{"category":"People & Body","sheet_x":45,"sheet_y":29,"sort_order":108},"🧑‍🎤":{"category":"People & Body","sheet_x":45,"sheet_y":35,"sort_order":138},"🧑‍🎨":{"category":"People & Body","sheet_x":45,"sheet_y":41,"sort_order":141},"🧑‍🏫":{"category":"People & Body","sheet_x":45,"sheet_y":47,"sort_order":111},"🧑‍🏭":{"category":"People & Body","sheet_x":45,"sheet_y":53,"sort_order":126},"🧑‍💻":{"category":"People & Body","sheet_x":46,"sheet_y":2,"sort_order":135},"🧑‍💼":{"category":"People & Body","sheet_x":46,"sheet_y":8,"sort_order":129},"🧑‍🔧":{"category":"People & Body","sheet_x":46,"sheet_y":14,"sort_order":123},"🧑‍🔬":{"category":"People & Body","sheet_x":46,"sheet_y":20,"sort_order":132},"🧑‍🚀":{"category":"People & Body","sheet_x":46,"sheet_y":26,"sort_order":147},"🧑‍🚒":{"category":"People & Body","sheet_x":46,"sheet_y":32,"sort_order":150},"🧑‍🤝‍🧑":{"category":"People & Body","sheet_x":46,"sheet_y":38,"sort_order":293},"🧑‍🦯":{"category":"People & Body","sheet_x":47,"sheet_y":7,"sort_order":221},"🧑‍🦰":{"category":"People & Body","sheet_x":47,"sheet_y":13,"sort_order":63},"🧑‍🦱":{"category":"People & Body","sheet_x":47,"sheet_y":19,"sort_order":65},"🧑‍🦲":{"category":"People & Body","sheet_x":47,"sheet_y":25,"sort_order":69},"🧑‍🦳":{"category":"People & Body","sheet_x":47,"sheet_y":31,"sort_order":67},"🧑‍🦼":{"category":"People & Body","sheet_x":47,"sheet_y":37,"sort_order":224},"🧑‍🦽":{"category":"People & Body","sheet_x":47,"sheet_y":43,"sort_order":227},"🧑‍⚕️":{"category":"People & Body","sheet_x":47,"sheet_y":49,"sort_order":105},"🧑‍⚖️":{"category":"People & Body","sheet_x":47,"sheet_y":55,"sort_order":114},"🧑‍✈️":{"category":"People & Body","sheet_x":48,"sheet_y":4,"sort_order":144},"🧑":{"category":"People & Body","sheet_x":48,"sheet_y":10,"sort_order":53},"🧒":{"category":"People & Body","sheet_x":48,"sheet_y":16,"sort_order":50},"🧓":{"category":"People & Body","sheet_x":48,"sheet_y":22,"sort_order":72},"🧔":{"category":"People & Body","sheet_x":48,"sheet_y":28,"sort_order":56},"🧕":{"category":"People & Body","sheet_x":48,"sheet_y":34,"sort_order":171},"🧖‍♀️":{"category":"People & Body","sheet_x":48,"sheet_y":40,"sort_order":241},"🧖‍♂️":{"category":"People & Body","sheet_x":48,"sheet_y":46,"sort_order":240},"🧖":{"category":"People & Body","sheet_x":48,"sheet_y":52,"sort_order":239},"🧗‍♀️":{"category":"People & Body","sheet_x":49,"sheet_y":1,"sort_order":244},"🧗‍♂️":{"category":"People & Body","sheet_x":49,"sheet_y":7,"sort_order":243},"🧗":{"category":"People & Body","sheet_x":49,"sheet_y":13,"sort_order":242},"🧘‍♀️":{"category":"People & Body","sheet_x":49,"sheet_y":19,"sort_order":290},"🧘‍♂️":{"category":"People & Body","sheet_x":49,"sheet_y":25,"sort_order":289},"🧘":{"category":"People & Body","sheet_x":49,"sheet_y":31,"sort_order":288},"🧙‍♀️":{"category":"People & Body","sheet_x":49,"sheet_y":37,"sort_order":187},"🧙‍♂️":{"category":"People & Body","sheet_x":49,"sheet_y":43,"sort_order":186},"🧙":{"category":"People & Body","sheet_x":49,"sheet_y":49,"sort_order":185},"🧚‍♀️":{"category":"People & Body","sheet_x":49,"sheet_y":55,"sort_order":190},"🧚‍♂️":{"category":"People & Body","sheet_x":50,"sheet_y":4,"sort_order":189},"🧚":{"category":"People & Body","sheet_x":50,"sheet_y":10,"sort_order":188},"🧛‍♀️":{"category":"People & Body","sheet_x":50,"sheet_y":16,"sort_order":193},"🧛‍♂️":{"category":"People & Body","sheet_x":50,"sheet_y":22,"sort_order":192},"🧛":{"category":"People & Body","sheet_x":50,"sheet_y":28,"sort_order":191},"🧜‍♀️":{"category":"People & Body","sheet_x":50,"sheet_y":34,"sort_order":196},"🧜‍♂️":{"category":"People & Body","sheet_x":50,"sheet_y":40,"sort_order":195},"🧜":{"category":"People & Body","sheet_x":50,"sheet_y":46,"sort_order":194},"🧝‍♀️":{"category":"People & Body","sheet_x":50,"sheet_y":52,"sort_order":199},"🧝‍♂️":{"category":"People & Body","sheet_x":51,"sheet_y":1,"sort_order":198},"🧝":{"category":"People & Body","sheet_x":51,"sheet_y":7,"sort_order":197},"🧞‍♀️":{"category":"People & Body","sheet_x":51,"sheet_y":13,"sort_order":202},"🧞‍♂️":{"category":"People & Body","sheet_x":51,"sheet_y":14,"sort_order":201},"🧞":{"category":"People & Body","sheet_x":51,"sheet_y":15,"sort_order":200},"🧟‍♀️":{"category":"People & Body","sheet_x":51,"sheet_y":16,"sort_order":205},"🧟‍♂️":{"category":"People & Body","sheet_x":51,"sheet_y":17,"sort_order":204},"🧟":{"category":"People & Body","sheet_x":51,"sheet_y":18,"sort_order":203},"🧠":{"category":"People & Body","sheet_x":51,"sheet_y":19,"sort_order":42},"🧡":{"category":"Smileys & Emotion","sheet_x":51,"sheet_y":20,"sort_order":128},"🧢":{"category":"Objects","sheet_x":51,"sheet_y":21,"sort_order":38},"🧣":{"category":"Objects","sheet_x":51,"sheet_y":22,"sort_order":9},"🧤":{"category":"Objects","sheet_x":51,"sheet_y":23,"sort_order":10},"🧥":{"category":"Objects","sheet_x":51,"sheet_y":24,"sort_order":11},"🧦":{"category":"Objects","sheet_x":51,"sheet_y":25,"sort_order":12},"🧧":{"category":"Activities","sheet_x":51,"sheet_y":26,"sort_order":16},"🧨":{"category":"Activities","sheet_x":51,"sheet_y":27,"sort_order":5},"🧩":{"category":"Activities","sheet_x":51,"sheet_y":28,"sort_order":65},"🧪":{"category":"Objects","sheet_x":51,"sheet_y":29,"sort_order":202},"🧫":{"category":"Objects","sheet_x":51,"sheet_y":30,"sort_order":203},"🧬":{"category":"Objects","sheet_x":51,"sheet_y":31,"sort_order":204},"🧭":{"category":"Travel & Places","sheet_x":51,"sheet_y":32,"sort_order":7},"🧮":{"category":"Objects","sheet_x":51,"sheet_y":33,"sort_order":87},"🧯":{"category":"Objects","sheet_x":51,"sheet_y":34,"sort_order":228},"🧰":{"category":"Objects","sheet_x":51,"sheet_y":35,"sort_order":199},"🧱":{"category":"Travel & Places","sheet_x":51,"sheet_y":36,"sort_order":20},"🧲":{"category":"Objects","sheet_x":51,"sheet_y":37,"sort_order":200},"🧳":{"category":"Travel & Places","sheet_x":51,"sheet_y":38,"sort_order":132},"🧴":{"category":"Objects","sheet_x":51,"sheet_y":39,"sort_order":221},"🧵":{"category":"Activities","sheet_x":51,"sheet_y":40,"sort_order":78},"🧶":{"category":"Activities","sheet_x":51,"sheet_y":41,"sort_order":79},"🧷":{"category":"Objects","sheet_x":51,"sheet_y":42,"sort_order":222},"🧸":{"category":"Activities","sheet_x":51,"sheet_y":43,"sort_order":66},"🧹":{"category":"Objects","sheet_x":51,"sheet_y":44,"sort_order":223},"🧺":{"category":"Objects","sheet_x":51,"sheet_y":45,"sort_order":224},"🧻":{"category":"Objects","sheet_x":51,"sheet_y":46,"sort_order":225},"🧼":{"category":"Objects","sheet_x":51,"sheet_y":47,"sort_order":226},"🧽":{"category":"Objects","sheet_x":51,"sheet_y":48,"sort_order":227},"🧾":{"category":"Objects","sheet_x":51,"sheet_y":49,"sort_order":128},"🧿":{"category":"Activities","sheet_x":51,"sheet_y":50,"sort_order":60},"🩰":{"category":"Objects","sheet_x":51,"sheet_y":51,"sort_order":32},"🩱":{"category":"Objects","sheet_x":51,"sheet_y":52,"sort_order":16},"🩲":{"category":"Objects","sheet_x":51,"sheet_y":53,"sort_order":17},"🩳":{"category":"Objects","sheet_x":51,"sheet_y":54,"sort_order":18},"🩸":{"category":"Objects","sheet_x":51,"sheet_y":55,"sort_order":209},"🩹":{"category":"Objects","sheet_x":51,"sheet_y":56,"sort_order":211},"🩺":{"category":"Objects","sheet_x":52,"sheet_y":0,"sort_order":212},"🪀":{"category":"Activities","sheet_x":52,"sheet_y":1,"sort_order":56},"🪁":{"category":"Activities","sheet_x":52,"sheet_y":2,"sort_order":57},"🪂":{"category":"Travel & Places","sheet_x":52,"sheet_y":3,"sort_order":122},"🪐":{"category":"Travel & Places","sheet_x":52,"sheet_y":4,"sort_order":180},"🪑":{"category":"Objects","sheet_x":52,"sheet_y":5,"sort_order":216},"🪒":{"category":"Objects","sheet_x":52,"sheet_y":6,"sort_order":220},"🪓":{"category":"Objects","sheet_x":52,"sheet_y":7,"sort_order":182},"🪔":{"category":"Objects","sheet_x":52,"sheet_y":8,"sort_order":103},"🪕":{"category":"Objects","sheet_x":52,"sheet_y":9,"sort_order":67},"‼️":{"category":"Symbols","sheet_x":52,"sheet_y":10,"sort_order":122},"⁉️":{"category":"Symbols","sheet_x":52,"sheet_y":11,"sort_order":123},"™️":{"category":"Symbols","sheet_x":52,"sheet_y":12,"sort_order":131},"ℹ️":{"category":"Symbols","sheet_x":52,"sheet_y":13,"sort_order":156},"↔️":{"category":"Symbols","sheet_x":52,"sheet_y":14,"sort_order":36},"↕️":{"category":"Symbols","sheet_x":52,"sheet_y":15,"sort_order":35},"↖️":{"category":"Symbols","sheet_x":52,"sheet_y":16,"sort_order":34},"↗️":{"category":"Symbols","sheet_x":52,"sheet_y":17,"sort_order":28},"↘️":{"category":"Symbols","sheet_x":52,"sheet_y":18,"sort_order":30},"↙️":{"category":"Symbols","sheet_x":52,"sheet_y":19,"sort_order":32},"↩️":{"category":"Symbols","sheet_x":52,"sheet_y":20,"sort_order":37},"↪️":{"category":"Symbols","sheet_x":52,"sheet_y":21,"sort_order":38},"⌚":{"category":"Travel & Places","sheet_x":52,"sheet_y":22,"sort_order":135},"⌛":{"category":"Travel & Places","sheet_x":52,"sheet_y":23,"sort_order":133},"⌨️":{"category":"Objects","sheet_x":52,"sheet_y":24,"sort_order":80},"⏏️":{"category":"Symbols","sheet_x":52,"sheet_y":25,"sort_order":90},"⏩":{"category":"Symbols","sheet_x":52,"sheet_y":26,"sort_order":77},"⏪":{"category":"Symbols","sheet_x":52,"sheet_y":27,"sort_order":81},"⏫":{"category":"Symbols","sheet_x":52,"sheet_y":28,"sort_order":84},"⏬":{"category":"Symbols","sheet_x":52,"sheet_y":29,"sort_order":86},"⏭️":{"category":"Symbols","sheet_x":52,"sheet_y":30,"sort_order":78},"⏮️":{"category":"Symbols","sheet_x":52,"sheet_y":31,"sort_order":82},"⏯️":{"category":"Symbols","sheet_x":52,"sheet_y":32,"sort_order":79},"⏰":{"category":"Travel & Places","sheet_x":52,"sheet_y":33,"sort_order":136},"⏱️":{"category":"Travel & Places","sheet_x":52,"sheet_y":34,"sort_order":137},"⏲️":{"category":"Travel & Places","sheet_x":52,"sheet_y":35,"sort_order":138},"⏳":{"category":"Travel & Places","sheet_x":52,"sheet_y":36,"sort_order":134},"⏸️":{"category":"Symbols","sheet_x":52,"sheet_y":37,"sort_order":87},"⏹️":{"category":"Symbols","sheet_x":52,"sheet_y":38,"sort_order":88},"⏺️":{"category":"Symbols","sheet_x":52,"sheet_y":39,"sort_order":89},"Ⓜ️":{"category":"Symbols","sheet_x":52,"sheet_y":40,"sort_order":158},"▪️":{"category":"Symbols","sheet_x":52,"sheet_y":41,"sort_order":206},"▫️":{"category":"Symbols","sheet_x":52,"sheet_y":42,"sort_order":207},"▶️":{"category":"Symbols","sheet_x":52,"sheet_y":43,"sort_order":76},"◀️":{"category":"Symbols","sheet_x":52,"sheet_y":44,"sort_order":80},"◻️":{"category":"Symbols","sheet_x":52,"sheet_y":45,"sort_order":203},"◼️":{"category":"Symbols","sheet_x":52,"sheet_y":46,"sort_order":202},"◽":{"category":"Symbols","sheet_x":52,"sheet_y":47,"sort_order":205},"◾":{"category":"Symbols","sheet_x":52,"sheet_y":48,"sort_order":204},"☀️":{"category":"Travel & Places","sheet_x":52,"sheet_y":49,"sort_order":177},"☁️":{"category":"Travel & Places","sheet_x":52,"sheet_y":50,"sort_order":185},"☂️":{"category":"Travel & Places","sheet_x":52,"sheet_y":51,"sort_order":200},"☃️":{"category":"Travel & Places","sheet_x":52,"sheet_y":52,"sort_order":205},"☄️":{"category":"Travel & Places","sheet_x":52,"sheet_y":53,"sort_order":207},"☎️":{"category":"Objects","sheet_x":52,"sheet_y":54,"sort_order":71},"☑️":{"category":"Symbols","sheet_x":52,"sheet_y":55,"sort_order":108},"☔":{"category":"Travel & Places","sheet_x":52,"sheet_y":56,"sort_order":201},"☕":{"category":"Food & Drink","sheet_x":53,"sheet_y":0,"sort_order":101},"☘️":{"category":"Animals & Nature","sheet_x":53,"sheet_y":1,"sort_order":123},"☝️":{"category":"People & Body","sheet_x":53,"sheet_y":2,"sort_order":18},"☠️":{"category":"Smileys & Emotion","sheet_x":53,"sheet_y":8,"sort_order":94},"☢️":{"category":"Symbols","sheet_x":53,"sheet_y":9,"sort_order":25},"☣️":{"category":"Symbols","sheet_x":53,"sheet_y":10,"sort_order":26},"☦️":{"category":"Symbols","sheet_x":53,"sheet_y":11,"sort_order":55},"☪️":{"category":"Symbols","sheet_x":53,"sheet_y":12,"sort_order":56},"☮️":{"category":"Symbols","sheet_x":53,"sheet_y":13,"sort_order":57},"☯️":{"category":"Symbols","sheet_x":53,"sheet_y":14,"sort_order":53},"☸️":{"category":"Symbols","sheet_x":53,"sheet_y":15,"sort_order":52},"☹️":{"category":"Smileys & Emotion","sheet_x":53,"sheet_y":16,"sort_order":66},"☺️":{"category":"Smileys & Emotion","sheet_x":53,"sheet_y":17,"sort_order":19},"♈":{"category":"Symbols","sheet_x":53,"sheet_y":20,"sort_order":60},"♉":{"category":"Symbols","sheet_x":53,"sheet_y":21,"sort_order":61},"♊":{"category":"Symbols","sheet_x":53,"sheet_y":22,"sort_order":62},"♋":{"category":"Symbols","sheet_x":53,"sheet_y":23,"sort_order":63},"♌":{"category":"Symbols","sheet_x":53,"sheet_y":24,"sort_order":64},"♍":{"category":"Symbols","sheet_x":53,"sheet_y":25,"sort_order":65},"♎":{"category":"Symbols","sheet_x":53,"sheet_y":26,"sort_order":66},"♏":{"category":"Symbols","sheet_x":53,"sheet_y":27,"sort_order":67},"♐":{"category":"Symbols","sheet_x":53,"sheet_y":28,"sort_order":68},"♑":{"category":"Symbols","sheet_x":53,"sheet_y":29,"sort_order":69},"♒":{"category":"Symbols","sheet_x":53,"sheet_y":30,"sort_order":70},"♓":{"category":"Symbols","sheet_x":53,"sheet_y":31,"sort_order":71},"♟️":{"category":"Activities","sheet_x":53,"sheet_y":32,"sort_order":71},"♠️":{"category":"Activities","sheet_x":53,"sheet_y":33,"sort_order":67},"♣️":{"category":"Activities","sheet_x":53,"sheet_y":34,"sort_order":70},"♥️":{"category":"Activities","sheet_x":53,"sheet_y":35,"sort_order":68},"♦️":{"category":"Activities","sheet_x":53,"sheet_y":36,"sort_order":69},"♨️":{"category":"Travel & Places","sheet_x":53,"sheet_y":37,"sort_order":57},"♻️":{"category":"Symbols","sheet_x":53,"sheet_y":38,"sort_order":101},"♾️":{"category":"Symbols","sheet_x":53,"sheet_y":39,"sort_order":100},"♿":{"category":"Symbols","sheet_x":53,"sheet_y":40,"sort_order":4},"⚒️":{"category":"Objects","sheet_x":53,"sheet_y":41,"sort_order":184},"⚓":{"category":"Travel & Places","sheet_x":53,"sheet_y":42,"sort_order":110},"⚔️":{"category":"Objects","sheet_x":53,"sheet_y":43,"sort_order":187},"⚖️":{"category":"Objects","sheet_x":53,"sheet_y":45,"sort_order":195},"⚗️":{"category":"Objects","sheet_x":53,"sheet_y":46,"sort_order":201},"⚙️":{"category":"Objects","sheet_x":53,"sheet_y":47,"sort_order":193},"⚛️":{"category":"Symbols","sheet_x":53,"sheet_y":48,"sort_order":49},"⚜️":{"category":"Symbols","sheet_x":53,"sheet_y":49,"sort_order":102},"⚠️":{"category":"Symbols","sheet_x":53,"sheet_y":50,"sort_order":14},"⚡":{"category":"Travel & Places","sheet_x":53,"sheet_y":51,"sort_order":203},"⚪":{"category":"Symbols","sheet_x":53,"sheet_y":52,"sort_order":192},"⚫":{"category":"Symbols","sheet_x":53,"sheet_y":53,"sort_order":191},"⚰️":{"category":"Objects","sheet_x":53,"sheet_y":54,"sort_order":231},"⚱️":{"category":"Objects","sheet_x":53,"sheet_y":55,"sort_order":232},"⚽":{"category":"Activities","sheet_x":53,"sheet_y":56,"sort_order":28},"⚾":{"category":"Activities","sheet_x":54,"sheet_y":0,"sort_order":29},"⛄":{"category":"Travel & Places","sheet_x":54,"sheet_y":1,"sort_order":206},"⛅":{"category":"Travel & Places","sheet_x":54,"sheet_y":2,"sort_order":186},"⛈️":{"category":"Travel & Places","sheet_x":54,"sheet_y":3,"sort_order":187},"⛎":{"category":"Symbols","sheet_x":54,"sheet_y":4,"sort_order":72},"⛏️":{"category":"Objects","sheet_x":54,"sheet_y":5,"sort_order":183},"⛑️":{"category":"Objects","sheet_x":54,"sheet_y":6,"sort_order":39},"⛓️":{"category":"Objects","sheet_x":54,"sheet_y":7,"sort_order":198},"⛔":{"category":"Symbols","sheet_x":54,"sheet_y":8,"sort_order":16},"⛩️":{"category":"Travel & Places","sheet_x":54,"sheet_y":9,"sort_order":45},"⛪":{"category":"Travel & Places","sheet_x":54,"sheet_y":10,"sort_order":41},"⛰️":{"category":"Travel & Places","sheet_x":54,"sheet_y":11,"sort_order":9},"⛱️":{"category":"Travel & Places","sheet_x":54,"sheet_y":12,"sort_order":202},"⛲":{"category":"Travel & Places","sheet_x":54,"sheet_y":13,"sort_order":47},"⛳":{"category":"Activities","sheet_x":54,"sheet_y":14,"sort_order":47},"⛴️":{"category":"Travel & Places","sheet_x":54,"sheet_y":15,"sort_order":115},"⛵":{"category":"Travel & Places","sheet_x":54,"sheet_y":16,"sort_order":111},"⛷️":{"category":"People & Body","sheet_x":54,"sheet_y":17,"sort_order":247},"⛸️":{"category":"Activities","sheet_x":54,"sheet_y":18,"sort_order":48},"⛹️‍♀️":{"category":"People & Body","sheet_x":54,"sheet_y":19,"sort_order":263},"⛹️‍♂️":{"category":"People & Body","sheet_x":54,"sheet_y":25,"sort_order":262},"⛹️":{"category":"People & Body","sheet_x":54,"sheet_y":31,"sort_order":261},"⛺":{"category":"Travel & Places","sheet_x":54,"sheet_y":37,"sort_order":48},"⛽":{"category":"Travel & Places","sheet_x":54,"sheet_y":38,"sort_order":104},"✂️":{"category":"Objects","sheet_x":54,"sheet_y":39,"sort_order":171},"✅":{"category":"Symbols","sheet_x":54,"sheet_y":40,"sort_order":107},"✈️":{"category":"Travel & Places","sheet_x":54,"sheet_y":41,"sort_order":118},"✉️":{"category":"Objects","sheet_x":54,"sheet_y":42,"sort_order":132},"✊":{"category":"People & Body","sheet_x":54,"sheet_y":43,"sort_order":21},"✋":{"category":"People & Body","sheet_x":54,"sheet_y":49,"sort_order":4},"✌️":{"category":"People & Body","sheet_x":54,"sheet_y":55,"sort_order":8},"✍️":{"category":"People & Body","sheet_x":55,"sheet_y":4,"sort_order":31},"✏️":{"category":"Objects","sheet_x":55,"sheet_y":10,"sort_order":145},"✒️":{"category":"Objects","sheet_x":55,"sheet_y":11,"sort_order":146},"✔️":{"category":"Symbols","sheet_x":55,"sheet_y":12,"sort_order":109},"✖️":{"category":"Symbols","sheet_x":55,"sheet_y":13,"sort_order":110},"✝️":{"category":"Symbols","sheet_x":55,"sheet_y":14,"sort_order":54},"✡️":{"category":"Symbols","sheet_x":55,"sheet_y":15,"sort_order":51},"✨":{"category":"Activities","sheet_x":55,"sheet_y":16,"sort_order":6},"✳️":{"category":"Symbols","sheet_x":55,"sheet_y":17,"sort_order":119},"✴️":{"category":"Symbols","sheet_x":55,"sheet_y":18,"sort_order":120},"❄️":{"category":"Travel & Places","sheet_x":55,"sheet_y":19,"sort_order":204},"❇️":{"category":"Symbols","sheet_x":55,"sheet_y":20,"sort_order":121},"❌":{"category":"Symbols","sheet_x":55,"sheet_y":21,"sort_order":111},"❎":{"category":"Symbols","sheet_x":55,"sheet_y":22,"sort_order":112},"❓":{"category":"Symbols","sheet_x":55,"sheet_y":23,"sort_order":124},"❔":{"category":"Symbols","sheet_x":55,"sheet_y":24,"sort_order":125},"❕":{"category":"Symbols","sheet_x":55,"sheet_y":25,"sort_order":126},"❗":{"category":"Symbols","sheet_x":55,"sheet_y":26,"sort_order":127},"❣️":{"category":"Smileys & Emotion","sheet_x":55,"sheet_y":27,"sort_order":125},"❤️":{"category":"Smileys & Emotion","sheet_x":55,"sheet_y":28,"sort_order":127},"➕":{"category":"Symbols","sheet_x":55,"sheet_y":29,"sort_order":113},"➖":{"category":"Symbols","sheet_x":55,"sheet_y":30,"sort_order":114},"➗":{"category":"Symbols","sheet_x":55,"sheet_y":31,"sort_order":115},"➡️":{"category":"Symbols","sheet_x":55,"sheet_y":32,"sort_order":29},"➰":{"category":"Symbols","sheet_x":55,"sheet_y":33,"sort_order":116},"➿":{"category":"Symbols","sheet_x":55,"sheet_y":34,"sort_order":117},"⤴️":{"category":"Symbols","sheet_x":55,"sheet_y":35,"sort_order":39},"⤵️":{"category":"Symbols","sheet_x":55,"sheet_y":36,"sort_order":40},"⬅️":{"category":"Symbols","sheet_x":55,"sheet_y":37,"sort_order":33},"⬆️":{"category":"Symbols","sheet_x":55,"sheet_y":38,"sort_order":27},"⬇️":{"category":"Symbols","sheet_x":55,"sheet_y":39,"sort_order":31},"⬛":{"category":"Symbols","sheet_x":55,"sheet_y":40,"sort_order":200},"⬜":{"category":"Symbols","sheet_x":55,"sheet_y":41,"sort_order":201},"⭐":{"category":"Travel & Places","sheet_x":55,"sheet_y":42,"sort_order":181},"⭕":{"category":"Symbols","sheet_x":55,"sheet_y":43,"sort_order":106},"〰️":{"category":"Symbols","sheet_x":55,"sheet_y":44,"sort_order":128},"〽️":{"category":"Symbols","sheet_x":55,"sheet_y":45,"sort_order":118},"㊗️":{"category":"Symbols","sheet_x":55,"sheet_y":46,"sort_order":180},"㊙️":{"category":"Symbols","sheet_x":55,"sheet_y":47,"sort_order":181}} \ No newline at end of file +{"#⃣":6365,"*⃣":6366,"0⃣":6367,"1⃣":6368,"2⃣":6369,"3⃣":6370,"4⃣":6371,"5⃣":6372,"6⃣":6373,"7⃣":6374,"8⃣":6375,"9⃣":6376,"©":6362,"®":6363,"🀄":573,"🃏":572,"🅰":6383,"🅱":6385,"🅾":6394,"🅿":6396,"🆎":6384,"🆑":6386,"🆒":6387,"🆓":6388,"🆔":6390,"🆕":6392,"🆖":6393,"🆗":6395,"🆘":6397,"🆙":6398,"🆚":6399,"🇦🇨":78,"🇦🇩":79,"🇦🇪":710,"🇦🇫":711,"🇦🇬":712,"🇦🇮":713,"🇦🇱":714,"🇦🇲":715,"🇦🇴":716,"🇦🇶":717,"🇦🇷":718,"🇦🇸":719,"🇦🇹":720,"🇦🇺":721,"🇦🇼":722,"🇦🇽":723,"🇦🇿":724,"🇧🇦":725,"🇧🇧":726,"🇧🇩":727,"🇧🇪":728,"🇧🇫":729,"🇧🇬":730,"🇧🇭":731,"🇧🇮":732,"🇧🇯":733,"🇧🇱":734,"🇧🇲":735,"🇧🇳":736,"🇧🇴":737,"🇧🇶":738,"🇧🇷":739,"🇧🇸":740,"🇧🇹":741,"🇧🇻":742,"🇧🇼":743,"🇧🇾":744,"🇧🇿":745,"🇨🇦":746,"🇨🇨":747,"🇨🇩":748,"🇨🇫":749,"🇨🇬":750,"🇨🇭":751,"🇨🇮":752,"🇨🇰":753,"🇨🇱":754,"🇨🇲":755,"🇨🇳":756,"🇨🇴":757,"🇨🇵":758,"🇨🇷":759,"🇨🇺":760,"🇨🇻":761,"🇨🇼":762,"🇨🇽":763,"🇨🇾":764,"🇨🇿":765,"🇩🇪":766,"🇩🇬":767,"🇩🇯":768,"🇩🇰":769,"🇩🇲":770,"🇩🇴":771,"🇩🇿":772,"🇪🇦":773,"🇪🇨":774,"🇪🇪":775,"🇪🇬":776,"🇪🇭":777,"🇪🇷":778,"🇪🇸":779,"🇪🇹":780,"🇪🇺":781,"🇫🇮":782,"🇫🇯":783,"🇫🇰":784,"🇫🇲":785,"🇫🇴":786,"🇫🇷":787,"🇬🇦":788,"🇬🇧":789,"🇬🇩":790,"🇬🇪":791,"🇬🇫":792,"🇬🇬":793,"🇬🇭":794,"🇬🇮":795,"🇬🇱":796,"🇬🇲":797,"🇬🇳":798,"🇬🇵":799,"🇬🇶":7100,"🇬🇷":7101,"🇬🇸":7102,"🇬🇹":7103,"🇬🇺":7104,"🇬🇼":7105,"🇬🇾":7106,"🇭🇰":7107,"🇭🇲":7108,"🇭🇳":7109,"🇭🇷":7110,"🇭🇹":7111,"🇭🇺":7112,"🇮🇨":7113,"🇮🇩":7114,"🇮🇪":7115,"🇮🇱":7116,"🇮🇲":7117,"🇮🇳":7118,"🇮🇴":7119,"🇮🇶":7120,"🇮🇷":7121,"🇮🇸":7122,"🇮🇹":7123,"🇯🇪":7124,"🇯🇲":7125,"🇯🇴":7126,"🇯🇵":7127,"🇰🇪":7128,"🇰🇬":7129,"🇰🇭":7130,"🇰🇮":7131,"🇰🇲":7132,"🇰🇳":7133,"🇰🇵":7134,"🇰🇷":7135,"🇰🇼":7136,"🇰🇾":7137,"🇰🇿":7138,"🇱🇦":7139,"🇱🇧":7140,"🇱🇨":7141,"🇱🇮":7142,"🇱🇰":7143,"🇱🇷":7144,"🇱🇸":7145,"🇱🇹":7146,"🇱🇺":7147,"🇱🇻":7148,"🇱🇾":7149,"🇲🇦":7150,"🇲🇨":7151,"🇲🇩":7152,"🇲🇪":7153,"🇲🇫":7154,"🇲🇬":7155,"🇲🇭":7156,"🇲🇰":7157,"🇲🇱":7158,"🇲🇲":7159,"🇲🇳":7160,"🇲🇴":7161,"🇲🇵":7162,"🇲🇶":7163,"🇲🇷":7164,"🇲🇸":7165,"🇲🇹":7166,"🇲🇺":7167,"🇲🇻":7168,"🇲🇼":7169,"🇲🇽":7170,"🇲🇾":7171,"🇲🇿":7172,"🇳🇦":7173,"🇳🇨":7174,"🇳🇪":7175,"🇳🇫":7176,"🇳🇬":7177,"🇳🇮":7178,"🇳🇱":7179,"🇳🇴":7180,"🇳🇵":7181,"🇳🇷":7182,"🇳🇺":7183,"🇳🇿":7184,"🇴🇲":7185,"🇵🇦":7186,"🇵🇪":7187,"🇵🇫":7188,"🇵🇬":7189,"🇵🇭":7190,"🇵🇰":7191,"🇵🇱":7192,"🇵🇲":7193,"🇵🇳":7194,"🇵🇷":7195,"🇵🇸":7196,"🇵🇹":7197,"🇵🇼":7198,"🇵🇾":7199,"🇶🇦":7200,"🇷🇪":7201,"🇷🇴":7202,"🇷🇸":7203,"🇷🇺":7204,"🇷🇼":7205,"🇸🇦":7206,"🇸🇧":7207,"🇸🇨":7208,"🇸🇩":7209,"🇸🇪":7210,"🇸🇬":7211,"🇸🇭":7212,"🇸🇮":7213,"🇸🇯":7214,"🇸🇰":7215,"🇸🇱":7216,"🇸🇲":7217,"🇸🇳":7218,"🇸🇴":7219,"🇸🇷":7220,"🇸🇸":7221,"🇸🇹":7222,"🇸🇻":7223,"🇸🇽":7224,"🇸🇾":7225,"🇸🇿":7226,"🇹🇦":7227,"🇹🇨":7228,"🇹🇩":7229,"🇹🇫":7230,"🇹🇬":7231,"🇹🇭":7232,"🇹🇯":7233,"🇹🇰":7234,"🇹🇱":7235,"🇹🇲":7236,"🇹🇳":7237,"🇹🇴":7238,"🇹🇷":7239,"🇹🇹":7240,"🇹🇻":7241,"🇹🇼":7242,"🇹🇿":7243,"🇺🇦":7244,"🇺🇬":7245,"🇺🇲":7246,"🇺🇳":7247,"🇺🇸":7248,"🇺🇾":7249,"🇺🇿":7250,"🇻🇦":7251,"🇻🇨":7252,"🇻🇪":7253,"🇻🇬":7254,"🇻🇮":7255,"🇻🇳":7256,"🇻🇺":7257,"🇼🇫":7258,"🇼🇸":7259,"🇽🇰":7260,"🇾🇪":7261,"🇾🇹":7262,"🇿🇦":7263,"🇿🇲":7264,"🇿🇼":7265,"🈁":6400,"🈂":6401,"🈚":6407,"🈯":6404,"🈲":6408,"🈳":6412,"🈴":6411,"🈵":6416,"🈶":6403,"🈷":6402,"🈸":6410,"🈹":6406,"🈺":6415,"🉐":6405,"🉑":6409,"🌀":4197,"🌁":449,"🌂":4199,"🌃":450,"🌄":452,"🌅":453,"🌆":454,"🌇":455,"🌈":4198,"🌉":456,"🌊":4210,"🌋":410,"🌌":4184,"🌍":41,"🌎":42,"🌏":43,"🌐":44,"🌑":4164,"🌒":4165,"🌓":4166,"🌔":4167,"🌕":4168,"🌖":4169,"🌗":4170,"🌘":4171,"🌙":4172,"🌚":4173,"🌛":4174,"🌜":4175,"🌝":4178,"🌞":4179,"🌟":4182,"🌠":4183,"🌡":4176,"🌤":4188,"🌥":4189,"🌦":4190,"🌧":4191,"🌨":4192,"🌩":4193,"🌪":4194,"🌫":4195,"🌬":4196,"🌭":347,"🌮":349,"🌯":350,"🌰":331,"🌱":2116,"🌲":2117,"🌳":2118,"🌴":2119,"🌵":2120,"🌶":323,"🌷":2115,"🌸":2107,"🌹":2110,"🌺":2112,"🌻":2113,"🌼":2114,"🌽":322,"🌾":2121,"🌿":2122,"🍀":2124,"🍁":2125,"🍂":2126,"🍃":2127,"🍄":329,"🍅":316,"🍆":319,"🍇":31,"🍈":32,"🍉":33,"🍊":34,"🍋":35,"🍌":36,"🍍":37,"🍎":39,"🍏":310,"🍐":311,"🍑":312,"🍒":313,"🍓":314,"🍔":344,"🍕":346,"🍖":340,"🍗":341,"🍘":364,"🍙":365,"🍚":366,"🍛":367,"🍜":368,"🍝":369,"🍞":332,"🍟":345,"🍠":370,"🍡":376,"🍢":371,"🍣":372,"🍤":373,"🍥":374,"🍦":385,"🍧":386,"🍨":387,"🍩":388,"🍪":389,"🍫":394,"🍬":395,"🍭":396,"🍮":397,"🍯":398,"🍰":391,"🍱":363,"🍲":356,"🍳":354,"🍴":3118,"🍵":3102,"🍶":3103,"🍷":3105,"🍸":3106,"🍹":3107,"🍺":3108,"🍻":3109,"🍼":399,"🍽":3117,"🍾":3104,"🍿":359,"🎀":517,"🎁":518,"🎂":390,"🎃":51,"🎄":52,"🎅":9177,"🎆":53,"🎇":54,"🎈":57,"🎉":58,"🎊":59,"🎋":510,"🎌":73,"🎍":511,"🎎":512,"🎏":513,"🎐":514,"🎑":515,"🎒":625,"🎓":637,"🎖":522,"🎗":519,"🎙":656,"🎚":657,"🎛":658,"🎞":689,"🎟":520,"🎠":458,"🎡":459,"🎢":460,"🎣":549,"🎤":659,"🎥":688,"🎦":6324,"🎧":660,"🎨":577,"🎩":636,"🎪":462,"🎫":521,"🎬":691,"🎭":575,"🎮":561,"🎯":555,"🎰":563,"🎱":558,"🎲":564,"🎳":537,"🎴":574,"🎵":654,"🎶":655,"🎷":662,"🎸":663,"🎹":664,"🎺":665,"🎻":666,"🎼":653,"🎽":551,"🎾":535,"🎿":552,"🏀":531,"🏁":71,"🏂":9248,"🏃‍♀":9232,"🏃‍♂":9231,"🏃":9230,"🏄‍♀":9254,"🏄‍♂":9253,"🏄":9252,"🏅":524,"🏆":523,"🏇":9246,"🏈":533,"🏉":534,"🏊‍♀":9260,"🏊‍♂":9259,"🏊":9258,"🏋‍♀":9266,"🏋‍♂":9265,"🏋":9264,"🏌‍♀":9251,"🏌‍♂":9250,"🏌":9249,"🏍":492,"🏎":491,"🏏":538,"🏐":532,"🏑":539,"🏒":540,"🏓":542,"🏔":48,"🏕":412,"🏖":413,"🏗":419,"🏘":421,"🏙":451,"🏚":422,"🏛":418,"🏜":414,"🏝":415,"🏞":416,"🏟":417,"🏠":423,"🏡":424,"🏢":425,"🏣":426,"🏤":427,"🏥":428,"🏦":429,"🏧":6234,"🏨":430,"🏩":431,"🏪":432,"🏫":433,"🏬":434,"🏭":435,"🏮":6102,"🏯":436,"🏰":437,"🏳‍🌈":76,"🏳":75,"🏴‍☠":77,"🏴󠁧󠁢󠁥󠁮󠁧󠁿":7266,"🏴󠁧󠁢󠁳󠁣󠁴󠁿":7267,"🏴󠁧󠁢󠁷󠁬󠁳󠁿":7268,"🏴":74,"🏵":2109,"🏷":6120,"🏸":543,"🏹":6189,"🏺":3121,"🏻":81,"🏼":82,"🏽":83,"🏾":84,"🏿":85,"🐀":244,"🐁":243,"🐂":225,"🐃":226,"🐄":227,"🐅":217,"🐆":218,"🐇":247,"🐈":214,"🐉":282,"🐊":277,"🐋":286,"🐌":294,"🐍":280,"🐎":220,"🐏":232,"🐐":234,"🐑":233,"🐒":22,"🐓":262,"🐔":261,"🐕‍🦺":28,"🐕":26,"🐖":229,"🐗":230,"🐘":239,"🐙":292,"🐚":293,"🐛":296,"🐜":297,"🐝":298,"🐞":299,"🐟":288,"🐠":289,"🐡":290,"🐢":278,"🐣":263,"🐤":264,"🐥":265,"🐦":266,"🐧":267,"🐨":252,"🐩":29,"🐪":235,"🐫":236,"🐬":287,"🐭":242,"🐮":224,"🐯":216,"🐰":246,"🐱":213,"🐲":281,"🐳":285,"🐴":219,"🐵":21,"🐶":25,"🐷":228,"🐸":276,"🐹":245,"🐺":210,"🐻":251,"🐼":253,"🐽":231,"🐾":259,"🐿":248,"👀":945,"👁‍🗨":1145,"👁":946,"👂":939,"👃":941,"👄":948,"👅":947,"👆":915,"👇":917,"👈":913,"👉":914,"👊":922,"👋":91,"👌":96,"👍":919,"👎":920,"👏":925,"👐":927,"👑":634,"👒":635,"👓":61,"👔":66,"👕":67,"👖":68,"👗":613,"👘":614,"👙":619,"👚":620,"👛":621,"👜":622,"👝":623,"👞":626,"👟":627,"👠":630,"👡":631,"👢":633,"👣":9334,"👤":9332,"👥":9333,"👦":951,"👧":952,"👨‍🌾":9118,"👨‍🍳":9121,"👨‍🎓":9109,"👨‍🎤":9139,"👨‍🎨":9142,"👨‍🏫":9112,"👨‍🏭":9127,"👨‍👦‍👦":9322,"👨‍👦":9321,"👨‍👧‍👦":9324,"👨‍👧‍👧":9325,"👨‍👧":9323,"👨‍👨‍👦":9311,"👨‍👨‍👦‍👦":9314,"👨‍👨‍👧":9312,"👨‍👨‍👧‍👦":9313,"👨‍👨‍👧‍👧":9315,"👨‍👩‍👦":9306,"👨‍👩‍👦‍👦":9309,"👨‍👩‍👧":9307,"👨‍👩‍👧‍👦":9308,"👨‍👩‍👧‍👧":9310,"👨‍💻":9136,"👨‍💼":9130,"👨‍🔧":9124,"👨‍🔬":9133,"👨‍🚀":9148,"👨‍🚒":9151,"👨‍🦯":9222,"👨‍🦰":957,"👨‍🦱":958,"👨‍🦲":960,"👨‍🦳":959,"👨‍🦼":9225,"👨‍🦽":9228,"👨‍⚕":9106,"👨‍⚖":9115,"👨‍✈":9145,"👨‍❤‍👨":9303,"👨‍❤‍💋‍👨":9299,"👨":955,"👩‍🌾":9119,"👩‍🍳":9122,"👩‍🎓":9110,"👩‍🎤":9140,"👩‍🎨":9143,"👩‍🏫":9113,"👩‍🏭":9128,"👩‍👦‍👦":9327,"👩‍👦":9326,"👩‍👧‍👦":9329,"👩‍👧‍👧":9330,"👩‍👧":9328,"👩‍👩‍👦":9316,"👩‍👩‍👦‍👦":9319,"👩‍👩‍👧":9317,"👩‍👩‍👧‍👦":9318,"👩‍👩‍👧‍👧":9320,"👩‍💻":9137,"👩‍💼":9131,"👩‍🔧":9125,"👩‍🔬":9134,"👩‍🚀":9149,"👩‍🚒":9152,"👩‍🦯":9223,"👩‍🦰":962,"👩‍🦱":964,"👩‍🦲":968,"👩‍🦳":966,"👩‍🦼":9226,"👩‍🦽":9229,"👩‍⚕":9107,"👩‍⚖":9116,"👩‍✈":9146,"👩‍❤‍👨":9302,"👩‍❤‍👩":9304,"👩‍❤‍💋‍👨":9298,"👩‍❤‍💋‍👩":9300,"👩":961,"👪":9305,"👫":9295,"👬":9296,"👭":9294,"👮‍♀":9155,"👮‍♂":9154,"👮":9153,"👯‍♀":9238,"👯‍♂":9237,"👯":9236,"👰":9173,"👱‍♀":970,"👱‍♂":971,"👱":954,"👲":9170,"👳‍♀":9169,"👳‍♂":9168,"👳":9167,"👴":973,"👵":974,"👶":949,"👷‍♀":9164,"👷‍♂":9163,"👷":9162,"👸":9166,"👹":197,"👺":198,"👻":199,"👼":9176,"👽":1100,"👾":1101,"👿":192,"💀":193,"💁‍♀":989,"💁‍♂":988,"💁":987,"💂‍♀":9161,"💂‍♂":9160,"💂":9159,"💃":9233,"💄":641,"💅":932,"💆‍♀":9208,"💆‍♂":9207,"💆":9206,"💇‍♀":9211,"💇‍♂":9210,"💇":9209,"💈":461,"💉":6208,"💊":6210,"💋":1115,"💌":1116,"💍":642,"💎":643,"💏":9297,"💐":2106,"💑":9301,"💒":438,"💓":1121,"💔":1126,"💕":1123,"💖":1119,"💗":1120,"💘":1117,"💙":1131,"💚":1130,"💛":1129,"💜":1132,"💝":1118,"💞":1122,"💟":1124,"💠":6447,"💡":6100,"💢":1137,"💣":1143,"💤":1149,"💥":1138,"💦":1140,"💧":4209,"💨":1141,"💩":195,"💪":934,"💫":1139,"💬":1144,"💭":1148,"💮":2108,"💯":1136,"💰":6121,"💱":6130,"💲":6131,"💳":6127,"💴":6122,"💵":6123,"💶":6124,"💷":6125,"💸":6126,"💹":6129,"💺":4123,"💻":677,"💼":6152,"💽":683,"💾":684,"💿":685,"📀":686,"📁":6153,"📂":6154,"📃":6113,"📄":6115,"📅":6156,"📆":6157,"📇":6160,"📈":6161,"📉":6162,"📊":6163,"📋":6164,"📌":6165,"📍":6166,"📎":6167,"📏":6169,"📐":6170,"📑":6118,"📒":6112,"📓":6111,"📔":6104,"📕":6105,"📖":6106,"📗":6107,"📘":6108,"📙":6109,"📚":6110,"📛":6337,"📜":6114,"📝":6151,"📞":672,"📟":673,"📠":674,"📡":6207,"📢":648,"📣":649,"📤":6136,"📥":6137,"📦":6138,"📧":6133,"📨":6134,"📩":6135,"📪":6140,"📫":6139,"📬":6141,"📭":6142,"📮":6143,"📯":650,"📰":6116,"📱":669,"📲":670,"📳":6328,"📴":6329,"📵":6256,"📶":6327,"📷":693,"📸":694,"📹":695,"📺":692,"📻":661,"📼":696,"📽":690,"📿":640,"🔀":6306,"🔁":6307,"🔂":6308,"🔃":6274,"🔄":6275,"🔅":6325,"🔆":6326,"🔇":644,"🔈":645,"🔉":646,"🔊":647,"🔋":675,"🔌":676,"🔍":697,"🔎":698,"🔏":6177,"🔐":6178,"🔑":6179,"🔒":6175,"🔓":6176,"🔔":651,"🔕":652,"🔖":6119,"🔗":6197,"🔘":6448,"🔙":6276,"🔚":6277,"🔛":6278,"🔜":6279,"🔝":6280,"🔞":6257,"🔟":6377,"🔠":6378,"🔡":6379,"🔢":6380,"🔣":6381,"🔤":6382,"🔥":4208,"🔦":6101,"🔧":6191,"🔨":6181,"🔩":6192,"🔪":3120,"🔫":6188,"🔬":6205,"🔭":6206,"🔮":559,"🔯":6292,"🔰":6338,"🔱":6336,"🔲":6450,"🔳":6449,"🔴":6417,"🔵":6421,"🔶":6441,"🔷":6442,"🔸":6443,"🔹":6444,"🔺":6445,"🔻":6446,"🔼":6316,"🔽":6318,"🕉":6283,"🕊":268,"🕋":446,"🕌":442,"🕍":444,"🕎":6291,"🕐":4142,"🕑":4144,"🕒":4146,"🕓":4148,"🕔":4150,"🕕":4152,"🕖":4154,"🕗":4156,"🕘":4158,"🕙":4160,"🕚":4162,"🕛":4140,"🕜":4143,"🕝":4145,"🕞":4147,"🕟":4149,"🕠":4151,"🕡":4153,"🕢":4155,"🕣":4157,"🕤":4159,"🕥":4161,"🕦":4163,"🕧":4141,"🕯":699,"🕰":4139,"🕳":1142,"🕴":9235,"🕵‍♀":9158,"🕵‍♂":9157,"🕵":9156,"🕶":62,"🕷":2101,"🕸":2102,"🕹":562,"🕺":9234,"🖇":6168,"🖊":6148,"🖋":6147,"🖌":6149,"🖍":6150,"🖐":93,"🖕":916,"🖖":95,"🖤":1134,"🖥":678,"🖨":679,"🖱":681,"🖲":682,"🖼":576,"🗂":6155,"🗃":6172,"🗄":6173,"🗑":6174,"🗒":6158,"🗓":6159,"🗜":6194,"🗝":6180,"🗞":6117,"🗡":6186,"🗣":9331,"🗨":1146,"🗯":1147,"🗳":6144,"🗺":45,"🗻":411,"🗼":439,"🗽":440,"🗾":46,"🗿":6233,"😀":11,"😁":14,"😂":18,"😃":12,"😄":13,"😅":16,"😆":15,"😇":113,"😈":191,"😉":111,"😊":112,"😋":122,"😌":142,"😍":115,"😎":160,"😏":137,"😐":134,"😑":135,"😒":138,"😓":183,"😔":143,"😕":163,"😖":180,"😗":118,"😘":117,"😙":121,"😚":120,"😛":123,"😜":124,"😝":126,"😞":182,"😟":164,"😠":189,"😡":188,"😢":177,"😣":181,"😤":187,"😥":176,"😦":172,"😧":173,"😨":174,"😩":184,"😪":144,"😫":185,"😬":140,"😭":178,"😮":167,"😯":168,"😰":175,"😱":179,"😲":169,"😳":170,"😴":146,"😵":156,"😶":136,"😷":147,"😸":1104,"😹":1105,"😺":1103,"😻":1106,"😼":1107,"😽":1108,"😾":1111,"😿":1110,"🙀":1109,"🙁":165,"🙂":19,"🙃":110,"🙄":139,"🙅‍♀":983,"🙅‍♂":982,"🙅":981,"🙆‍♀":986,"🙆‍♂":985,"🙆":984,"🙇‍♀":998,"🙇‍♂":997,"🙇":996,"🙈":1112,"🙉":1113,"🙊":1114,"🙋‍♀":992,"🙋‍♂":991,"🙋":990,"🙌":926,"🙍‍♀":977,"🙍‍♂":976,"🙍":975,"🙎‍♀":980,"🙎‍♂":979,"🙎":978,"🙏":930,"🚀":4129,"🚁":4124,"🚂":463,"🚃":464,"🚄":465,"🚅":466,"🚆":467,"🚇":468,"🚈":469,"🚉":470,"🚊":471,"🚋":474,"🚌":475,"🚍":476,"🚎":477,"🚏":4100,"🚐":478,"🚑":479,"🚒":480,"🚓":481,"🚔":482,"🚕":483,"🚖":484,"🚗":485,"🚘":486,"🚙":487,"🚚":488,"🚛":489,"🚜":490,"🚝":472,"🚞":473,"🚟":4125,"🚠":4126,"🚡":4127,"🚢":4117,"🚣‍♀":9257,"🚣‍♂":9256,"🚣":9255,"🚤":4113,"🚥":4106,"🚦":4107,"🚧":4109,"🚨":4105,"🚩":72,"🚪":6213,"🚫":6250,"🚬":6230,"🚭":6252,"🚮":6235,"🚯":6253,"🚰":6236,"🚱":6254,"🚲":497,"🚳":6251,"🚴‍♀":9269,"🚴‍♂":9268,"🚴":9267,"🚵‍♀":9272,"🚵‍♂":9271,"🚵":9270,"🚶‍♀":9214,"🚶‍♂":9213,"🚶":9212,"🚷":6255,"🚸":6248,"🚹":6238,"🚺":6239,"🚻":6240,"🚼":6241,"🚽":6217,"🚾":6242,"🚿":6218,"🛀":9291,"🛁":6219,"🛂":6243,"🛃":6244,"🛄":6245,"🛅":6246,"🛋":6215,"🛌":9292,"🛍":624,"🛎":4131,"🛏":6214,"🛐":6281,"🛑":4108,"🛒":6229,"🛕":443,"🛠":6185,"🛡":6190,"🛢":4103,"🛣":4101,"🛤":4102,"🛥":4116,"🛩":4119,"🛫":4120,"🛬":4121,"🛰":4128,"🛳":4114,"🛴":498,"🛵":493,"🛶":4112,"🛷":553,"🛸":4130,"🛹":499,"🛺":496,"🟠":6418,"🟡":6419,"🟢":6420,"🟣":6422,"🟤":6423,"🟥":6426,"🟦":6430,"🟧":6427,"🟨":6428,"🟩":6429,"🟪":6431,"🟫":6432,"🤍":1135,"🤎":1133,"🤏":97,"🤐":132,"🤑":127,"🤒":148,"🤓":161,"🤔":131,"🤕":149,"🤖":1102,"🤗":128,"🤘":911,"🤙":912,"🤚":92,"🤛":923,"🤜":924,"🤝":929,"🤞":99,"🤟":910,"🤠":158,"🤡":196,"🤢":150,"🤣":17,"🤤":145,"🤥":141,"🤦‍♀":9101,"🤦‍♂":9100,"🤦":999,"🤧":152,"🤨":133,"🤩":116,"🤪":125,"🤫":130,"🤬":190,"🤭":129,"🤮":151,"🤯":157,"🤰":9174,"🤱":9175,"🤲":928,"🤳":933,"🤴":9165,"🤵":9172,"🤶":9178,"🤷‍♀":9104,"🤷‍♂":9103,"🤷":9102,"🤸‍♀":9275,"🤸‍♂":9274,"🤸":9273,"🤹‍♀":9287,"🤹‍♂":9286,"🤹":9285,"🤺":9245,"🤼‍♀":9278,"🤼‍♂":9277,"🤼":9276,"🤽‍♀":9281,"🤽‍♂":9280,"🤽":9279,"🤾‍♀":9284,"🤾‍♂":9283,"🤾":9282,"🤿":550,"🥀":2111,"🥁":668,"🥂":3110,"🥃":3111,"🥄":3119,"🥅":546,"🥇":525,"🥈":526,"🥉":527,"🥊":544,"🥋":545,"🥌":554,"🥍":541,"🥎":530,"🥏":536,"🥐":333,"🥑":318,"🥒":324,"🥓":343,"🥔":320,"🥕":321,"🥖":334,"🥗":358,"🥘":355,"🥙":351,"🥚":353,"🥛":3100,"🥜":330,"🥝":315,"🥞":337,"🥟":377,"🥠":378,"🥡":379,"🥢":3116,"🥣":357,"🥤":3112,"🥥":317,"🥦":326,"🥧":393,"🥨":335,"🥩":342,"🥪":348,"🥫":362,"🥬":325,"🥭":38,"🥮":375,"🥯":336,"🥰":114,"🥱":186,"🥳":159,"🥴":155,"🥵":153,"🥶":154,"🥺":171,"🥻":615,"🥼":64,"🥽":63,"🥾":628,"🥿":629,"🦀":380,"🦁":215,"🦂":2103,"🦃":260,"🦄":221,"🦅":269,"🦆":270,"🦇":250,"🦈":291,"🦉":272,"🦊":211,"🦋":295,"🦌":223,"🦍":23,"🦎":279,"🦏":240,"🦐":382,"🦑":383,"🦒":238,"🦓":222,"🦔":249,"🦕":283,"🦖":284,"🦗":2100,"🦘":257,"🦙":237,"🦚":274,"🦛":241,"🦜":275,"🦝":212,"🦞":381,"🦟":2104,"🦠":2105,"🦡":258,"🦢":271,"🦥":254,"🦦":255,"🦧":24,"🦨":256,"🦩":273,"🦪":384,"🦮":27,"🦯":6196,"🦴":944,"🦵":937,"🦶":938,"🦷":943,"🦸‍♀":9181,"🦸‍♂":9180,"🦸":9179,"🦹‍♀":9184,"🦹‍♂":9183,"🦹":9182,"🦺":65,"🦻":940,"🦼":495,"🦽":494,"🦾":935,"🦿":936,"🧀":339,"🧁":392,"🧂":361,"🧃":3113,"🧄":327,"🧅":328,"🧆":352,"🧇":338,"🧈":360,"🧉":3114,"🧊":3115,"🧍‍♀":9217,"🧍‍♂":9216,"🧍":9215,"🧎‍♀":9220,"🧎‍♂":9219,"🧎":9218,"🧏‍♀":995,"🧏‍♂":994,"🧏":993,"🧐":162,"🧑‍🌾":9117,"🧑‍🍳":9120,"🧑‍🎓":9108,"🧑‍🎤":9138,"🧑‍🎨":9141,"🧑‍🏫":9111,"🧑‍🏭":9126,"🧑‍💻":9135,"🧑‍💼":9129,"🧑‍🔧":9123,"🧑‍🔬":9132,"🧑‍🚀":9147,"🧑‍🚒":9150,"🧑‍🤝‍🧑":9293,"🧑‍🦯":9221,"🧑‍🦰":963,"🧑‍🦱":965,"🧑‍🦲":969,"🧑‍🦳":967,"🧑‍🦼":9224,"🧑‍🦽":9227,"🧑‍⚕":9105,"🧑‍⚖":9114,"🧑‍✈":9144,"🧑":953,"🧒":950,"🧓":972,"🧔":956,"🧕":9171,"🧖‍♀":9241,"🧖‍♂":9240,"🧖":9239,"🧗‍♀":9244,"🧗‍♂":9243,"🧗":9242,"🧘‍♀":9290,"🧘‍♂":9289,"🧘":9288,"🧙‍♀":9187,"🧙‍♂":9186,"🧙":9185,"🧚‍♀":9190,"🧚‍♂":9189,"🧚":9188,"🧛‍♀":9193,"🧛‍♂":9192,"🧛":9191,"🧜‍♀":9196,"🧜‍♂":9195,"🧜":9194,"🧝‍♀":9199,"🧝‍♂":9198,"🧝":9197,"🧞‍♀":9202,"🧞‍♂":9201,"🧞":9200,"🧟‍♀":9205,"🧟‍♂":9204,"🧟":9203,"🧠":942,"🧡":1128,"🧢":638,"🧣":69,"🧤":610,"🧥":611,"🧦":612,"🧧":516,"🧨":55,"🧩":565,"🧪":6202,"🧫":6203,"🧬":6204,"🧭":47,"🧮":687,"🧯":6228,"🧰":6199,"🧱":420,"🧲":6200,"🧳":4132,"🧴":6221,"🧵":578,"🧶":579,"🧷":6222,"🧸":566,"🧹":6223,"🧺":6224,"🧻":6225,"🧼":6226,"🧽":6227,"🧾":6128,"🧿":560,"🩰":632,"🩱":616,"🩲":617,"🩳":618,"🩸":6209,"🩹":6211,"🩺":6212,"🪀":556,"🪁":557,"🪂":4122,"🪐":4180,"🪑":6216,"🪒":6220,"🪓":6182,"🪔":6103,"🪕":667,"‼":6355,"⁉":6356,"™":6364,"ℹ":6389,"↔":6269,"↕":6268,"↖":6267,"↗":6261,"↘":6263,"↙":6265,"↩":6270,"↪":6271,"⌚":4135,"⌛":4133,"⌨":680,"⏏":6323,"⏩":6310,"⏪":6314,"⏫":6317,"⏬":6319,"⏭":6311,"⏮":6315,"⏯":6312,"⏰":4136,"⏱":4137,"⏲":4138,"⏳":4134,"⏸":6320,"⏹":6321,"⏺":6322,"Ⓜ":6391,"▪":6439,"▫":6440,"▶":6309,"◀":6313,"◻":6436,"◼":6435,"◽":6438,"◾":6437,"☀":4177,"☁":4185,"☂":4200,"☃":4205,"☄":4207,"☎":671,"☑":6341,"☔":4201,"☕":3101,"☘":2123,"☝":918,"☠":194,"☢":6258,"☣":6259,"☦":6288,"☪":6289,"☮":6290,"☯":6286,"☸":6285,"☹":166,"☺":119,"♈":6293,"♉":6294,"♊":6295,"♋":6296,"♌":6297,"♍":6298,"♎":6299,"♏":6300,"♐":6301,"♑":6302,"♒":6303,"♓":6304,"♟":571,"♠":567,"♣":570,"♥":568,"♦":569,"♨":457,"♻":6334,"♾":6333,"♿":6237,"⚒":6184,"⚓":4110,"⚔":6187,"⚖":6195,"⚗":6201,"⚙":6193,"⚛":6282,"⚜":6335,"⚠":6247,"⚡":4203,"⚪":6425,"⚫":6424,"⚰":6231,"⚱":6232,"⚽":528,"⚾":529,"⛄":4206,"⛅":4186,"⛈":4187,"⛎":6305,"⛏":6183,"⛑":639,"⛓":6198,"⛔":6249,"⛩":445,"⛪":441,"⛰":49,"⛱":4202,"⛲":447,"⛳":547,"⛴":4115,"⛵":4111,"⛷":9247,"⛸":548,"⛹‍♀":9263,"⛹‍♂":9262,"⛹":9261,"⛺":448,"⛽":4104,"✂":6171,"✅":6340,"✈":4118,"✉":6132,"✊":921,"✋":94,"✌":98,"✍":931,"✏":6145,"✒":6146,"✔":6342,"✖":6343,"✝":6287,"✡":6284,"✨":56,"✳":6352,"✴":6353,"❄":4204,"❇":6354,"❌":6344,"❎":6345,"❓":6357,"❔":6358,"❕":6359,"❗":6360,"❣":1125,"❤":1127,"➕":6346,"➖":6347,"➗":6348,"➡":6262,"➰":6349,"➿":6350,"⤴":6272,"⤵":6273,"⬅":6266,"⬆":6260,"⬇":6264,"⬛":6433,"⬜":6434,"⭐":4181,"⭕":6339,"〰":6361,"〽":6351,"㊗":6413,"㊙":6414,"🎅🏻":0,"🎅🏼":0,"🎅🏽":0,"🎅🏾":0,"🎅🏿":0,"🏂🏻":0,"🏂🏼":0,"🏂🏽":0,"🏂🏾":0,"🏂🏿":0,"🏃🏻‍♀":0,"🏃🏼‍♀":0,"🏃🏽‍♀":0,"🏃🏾‍♀":0,"🏃🏿‍♀":0,"🏃🏻‍♂":0,"🏃🏼‍♂":0,"🏃🏽‍♂":0,"🏃🏾‍♂":0,"🏃🏿‍♂":0,"🏃🏻":0,"🏃🏼":0,"🏃🏽":0,"🏃🏾":0,"🏃🏿":0,"🏄🏻‍♀":0,"🏄🏼‍♀":0,"🏄🏽‍♀":0,"🏄🏾‍♀":0,"🏄🏿‍♀":0,"🏄🏻‍♂":0,"🏄🏼‍♂":0,"🏄🏽‍♂":0,"🏄🏾‍♂":0,"🏄🏿‍♂":0,"🏄🏻":0,"🏄🏼":0,"🏄🏽":0,"🏄🏾":0,"🏄🏿":0,"🏇🏻":0,"🏇🏼":0,"🏇🏽":0,"🏇🏾":0,"🏇🏿":0,"🏊🏻‍♀":0,"🏊🏼‍♀":0,"🏊🏽‍♀":0,"🏊🏾‍♀":0,"🏊🏿‍♀":0,"🏊🏻‍♂":0,"🏊🏼‍♂":0,"🏊🏽‍♂":0,"🏊🏾‍♂":0,"🏊🏿‍♂":0,"🏊🏻":0,"🏊🏼":0,"🏊🏽":0,"🏊🏾":0,"🏊🏿":0,"🏋🏻‍♀":0,"🏋🏼‍♀":0,"🏋🏽‍♀":0,"🏋🏾‍♀":0,"🏋🏿‍♀":0,"🏋🏻‍♂":0,"🏋🏼‍♂":0,"🏋🏽‍♂":0,"🏋🏾‍♂":0,"🏋🏿‍♂":0,"🏋🏻":0,"🏋🏼":0,"🏋🏽":0,"🏋🏾":0,"🏋🏿":0,"🏌🏻‍♀":0,"🏌🏼‍♀":0,"🏌🏽‍♀":0,"🏌🏾‍♀":0,"🏌🏿‍♀":0,"🏌🏻‍♂":0,"🏌🏼‍♂":0,"🏌🏽‍♂":0,"🏌🏾‍♂":0,"🏌🏿‍♂":0,"🏌🏻":0,"🏌🏼":0,"🏌🏽":0,"🏌🏾":0,"🏌🏿":0,"👂🏻":0,"👂🏼":0,"👂🏽":0,"👂🏾":0,"👂🏿":0,"👃🏻":0,"👃🏼":0,"👃🏽":0,"👃🏾":0,"👃🏿":0,"👆🏻":0,"👆🏼":0,"👆🏽":0,"👆🏾":0,"👆🏿":0,"👇🏻":0,"👇🏼":0,"👇🏽":0,"👇🏾":0,"👇🏿":0,"👈🏻":0,"👈🏼":0,"👈🏽":0,"👈🏾":0,"👈🏿":0,"👉🏻":0,"👉🏼":0,"👉🏽":0,"👉🏾":0,"👉🏿":0,"👊🏻":0,"👊🏼":0,"👊🏽":0,"👊🏾":0,"👊🏿":0,"👋🏻":0,"👋🏼":0,"👋🏽":0,"👋🏾":0,"👋🏿":0,"👌🏻":0,"👌🏼":0,"👌🏽":0,"👌🏾":0,"👌🏿":0,"👍🏻":0,"👍🏼":0,"👍🏽":0,"👍🏾":0,"👍🏿":0,"👎🏻":0,"👎🏼":0,"👎🏽":0,"👎🏾":0,"👎🏿":0,"👏🏻":0,"👏🏼":0,"👏🏽":0,"👏🏾":0,"👏🏿":0,"👐🏻":0,"👐🏼":0,"👐🏽":0,"👐🏾":0,"👐🏿":0,"👦🏻":0,"👦🏼":0,"👦🏽":0,"👦🏾":0,"👦🏿":0,"👧🏻":0,"👧🏼":0,"👧🏽":0,"👧🏾":0,"👧🏿":0,"👨🏻‍🌾":0,"👨🏼‍🌾":0,"👨🏽‍🌾":0,"👨🏾‍🌾":0,"👨🏿‍🌾":0,"👨🏻‍🍳":0,"👨🏼‍🍳":0,"👨🏽‍🍳":0,"👨🏾‍🍳":0,"👨🏿‍🍳":0,"👨🏻‍🎓":0,"👨🏼‍🎓":0,"👨🏽‍🎓":0,"👨🏾‍🎓":0,"👨🏿‍🎓":0,"👨🏻‍🎤":0,"👨🏼‍🎤":0,"👨🏽‍🎤":0,"👨🏾‍🎤":0,"👨🏿‍🎤":0,"👨🏻‍🎨":0,"👨🏼‍🎨":0,"👨🏽‍🎨":0,"👨🏾‍🎨":0,"👨🏿‍🎨":0,"👨🏻‍🏫":0,"👨🏼‍🏫":0,"👨🏽‍🏫":0,"👨🏾‍🏫":0,"👨🏿‍🏫":0,"👨🏻‍🏭":0,"👨🏼‍🏭":0,"👨🏽‍🏭":0,"👨🏾‍🏭":0,"👨🏿‍🏭":0,"👨🏻‍💻":0,"👨🏼‍💻":0,"👨🏽‍💻":0,"👨🏾‍💻":0,"👨🏿‍💻":0,"👨🏻‍💼":0,"👨🏼‍💼":0,"👨🏽‍💼":0,"👨🏾‍💼":0,"👨🏿‍💼":0,"👨🏻‍🔧":0,"👨🏼‍🔧":0,"👨🏽‍🔧":0,"👨🏾‍🔧":0,"👨🏿‍🔧":0,"👨🏻‍🔬":0,"👨🏼‍🔬":0,"👨🏽‍🔬":0,"👨🏾‍🔬":0,"👨🏿‍🔬":0,"👨🏻‍🚀":0,"👨🏼‍🚀":0,"👨🏽‍🚀":0,"👨🏾‍🚀":0,"👨🏿‍🚀":0,"👨🏻‍🚒":0,"👨🏼‍🚒":0,"👨🏽‍🚒":0,"👨🏾‍🚒":0,"👨🏿‍🚒":0,"👨🏻‍🦯":0,"👨🏼‍🦯":0,"👨🏽‍🦯":0,"👨🏾‍🦯":0,"👨🏿‍🦯":0,"👨🏻‍🦰":0,"👨🏼‍🦰":0,"👨🏽‍🦰":0,"👨🏾‍🦰":0,"👨🏿‍🦰":0,"👨🏻‍🦱":0,"👨🏼‍🦱":0,"👨🏽‍🦱":0,"👨🏾‍🦱":0,"👨🏿‍🦱":0,"👨🏻‍🦲":0,"👨🏼‍🦲":0,"👨🏽‍🦲":0,"👨🏾‍🦲":0,"👨🏿‍🦲":0,"👨🏻‍🦳":0,"👨🏼‍🦳":0,"👨🏽‍🦳":0,"👨🏾‍🦳":0,"👨🏿‍🦳":0,"👨🏻‍🦼":0,"👨🏼‍🦼":0,"👨🏽‍🦼":0,"👨🏾‍🦼":0,"👨🏿‍🦼":0,"👨🏻‍🦽":0,"👨🏼‍🦽":0,"👨🏽‍🦽":0,"👨🏾‍🦽":0,"👨🏿‍🦽":0,"👨🏻‍⚕":0,"👨🏼‍⚕":0,"👨🏽‍⚕":0,"👨🏾‍⚕":0,"👨🏿‍⚕":0,"👨🏻‍⚖":0,"👨🏼‍⚖":0,"👨🏽‍⚖":0,"👨🏾‍⚖":0,"👨🏿‍⚖":0,"👨🏻‍✈":0,"👨🏼‍✈":0,"👨🏽‍✈":0,"👨🏾‍✈":0,"👨🏿‍✈":0,"👨🏻":0,"👨🏼":0,"👨🏽":0,"👨🏾":0,"👨🏿":0,"👩🏻‍🌾":0,"👩🏼‍🌾":0,"👩🏽‍🌾":0,"👩🏾‍🌾":0,"👩🏿‍🌾":0,"👩🏻‍🍳":0,"👩🏼‍🍳":0,"👩🏽‍🍳":0,"👩🏾‍🍳":0,"👩🏿‍🍳":0,"👩🏻‍🎓":0,"👩🏼‍🎓":0,"👩🏽‍🎓":0,"👩🏾‍🎓":0,"👩🏿‍🎓":0,"👩🏻‍🎤":0,"👩🏼‍🎤":0,"👩🏽‍🎤":0,"👩🏾‍🎤":0,"👩🏿‍🎤":0,"👩🏻‍🎨":0,"👩🏼‍🎨":0,"👩🏽‍🎨":0,"👩🏾‍🎨":0,"👩🏿‍🎨":0,"👩🏻‍🏫":0,"👩🏼‍🏫":0,"👩🏽‍🏫":0,"👩🏾‍🏫":0,"👩🏿‍🏫":0,"👩🏻‍🏭":0,"👩🏼‍🏭":0,"👩🏽‍🏭":0,"👩🏾‍🏭":0,"👩🏿‍🏭":0,"👩🏻‍💻":0,"👩🏼‍💻":0,"👩🏽‍💻":0,"👩🏾‍💻":0,"👩🏿‍💻":0,"👩🏻‍💼":0,"👩🏼‍💼":0,"👩🏽‍💼":0,"👩🏾‍💼":0,"👩🏿‍💼":0,"👩🏻‍🔧":0,"👩🏼‍🔧":0,"👩🏽‍🔧":0,"👩🏾‍🔧":0,"👩🏿‍🔧":0,"👩🏻‍🔬":0,"👩🏼‍🔬":0,"👩🏽‍🔬":0,"👩🏾‍🔬":0,"👩🏿‍🔬":0,"👩🏻‍🚀":0,"👩🏼‍🚀":0,"👩🏽‍🚀":0,"👩🏾‍🚀":0,"👩🏿‍🚀":0,"👩🏻‍🚒":0,"👩🏼‍🚒":0,"👩🏽‍🚒":0,"👩🏾‍🚒":0,"👩🏿‍🚒":0,"👩🏻‍🦯":0,"👩🏼‍🦯":0,"👩🏽‍🦯":0,"👩🏾‍🦯":0,"👩🏿‍🦯":0,"👩🏻‍🦰":0,"👩🏼‍🦰":0,"👩🏽‍🦰":0,"👩🏾‍🦰":0,"👩🏿‍🦰":0,"👩🏻‍🦱":0,"👩🏼‍🦱":0,"👩🏽‍🦱":0,"👩🏾‍🦱":0,"👩🏿‍🦱":0,"👩🏻‍🦲":0,"👩🏼‍🦲":0,"👩🏽‍🦲":0,"👩🏾‍🦲":0,"👩🏿‍🦲":0,"👩🏻‍🦳":0,"👩🏼‍🦳":0,"👩🏽‍🦳":0,"👩🏾‍🦳":0,"👩🏿‍🦳":0,"👩🏻‍🦼":0,"👩🏼‍🦼":0,"👩🏽‍🦼":0,"👩🏾‍🦼":0,"👩🏿‍🦼":0,"👩🏻‍🦽":0,"👩🏼‍🦽":0,"👩🏽‍🦽":0,"👩🏾‍🦽":0,"👩🏿‍🦽":0,"👩🏻‍⚕":0,"👩🏼‍⚕":0,"👩🏽‍⚕":0,"👩🏾‍⚕":0,"👩🏿‍⚕":0,"👩🏻‍⚖":0,"👩🏼‍⚖":0,"👩🏽‍⚖":0,"👩🏾‍⚖":0,"👩🏿‍⚖":0,"👩🏻‍✈":0,"👩🏼‍✈":0,"👩🏽‍✈":0,"👩🏾‍✈":0,"👩🏿‍✈":0,"👩🏻":0,"👩🏼":0,"👩🏽":0,"👩🏾":0,"👩🏿":0,"👫🏻":0,"👫🏼":0,"👫🏽":0,"👫🏾":0,"👫🏿":0,"👩🏻‍🤝‍👨🏼":0,"👩🏻‍🤝‍👨🏽":0,"👩🏻‍🤝‍👨🏾":0,"👩🏻‍🤝‍👨🏿":0,"👩🏼‍🤝‍👨🏻":0,"👩🏼‍🤝‍👨🏽":0,"👩🏼‍🤝‍👨🏾":0,"👩🏼‍🤝‍👨🏿":0,"👩🏽‍🤝‍👨🏻":0,"👩🏽‍🤝‍👨🏼":0,"👩🏽‍🤝‍👨🏾":0,"👩🏽‍🤝‍👨🏿":0,"👩🏾‍🤝‍👨🏻":0,"👩🏾‍🤝‍👨🏼":0,"👩🏾‍🤝‍👨🏽":0,"👩🏾‍🤝‍👨🏿":0,"👩🏿‍🤝‍👨🏻":0,"👩🏿‍🤝‍👨🏼":0,"👩🏿‍🤝‍👨🏽":0,"👩🏿‍🤝‍👨🏾":0,"👬🏻":0,"👬🏼":0,"👬🏽":0,"👬🏾":0,"👬🏿":0,"👨🏻‍🤝‍👨🏼":0,"👨🏻‍🤝‍👨🏽":0,"👨🏻‍🤝‍👨🏾":0,"👨🏻‍🤝‍👨🏿":0,"👨🏼‍🤝‍👨🏻":0,"👨🏼‍🤝‍👨🏽":0,"👨🏼‍🤝‍👨🏾":0,"👨🏼‍🤝‍👨🏿":0,"👨🏽‍🤝‍👨🏻":0,"👨🏽‍🤝‍👨🏼":0,"👨🏽‍🤝‍👨🏾":0,"👨🏽‍🤝‍👨🏿":0,"👨🏾‍🤝‍👨🏻":0,"👨🏾‍🤝‍👨🏼":0,"👨🏾‍🤝‍👨🏽":0,"👨🏾‍🤝‍👨🏿":0,"👨🏿‍🤝‍👨🏻":0,"👨🏿‍🤝‍👨🏼":0,"👨🏿‍🤝‍👨🏽":0,"👨🏿‍🤝‍👨🏾":0,"👭🏻":0,"👭🏼":0,"👭🏽":0,"👭🏾":0,"👭🏿":0,"👩🏻‍🤝‍👩🏼":0,"👩🏻‍🤝‍👩🏽":0,"👩🏻‍🤝‍👩🏾":0,"👩🏻‍🤝‍👩🏿":0,"👩🏼‍🤝‍👩🏻":0,"👩🏼‍🤝‍👩🏽":0,"👩🏼‍🤝‍👩🏾":0,"👩🏼‍🤝‍👩🏿":0,"👩🏽‍🤝‍👩🏻":0,"👩🏽‍🤝‍👩🏼":0,"👩🏽‍🤝‍👩🏾":0,"👩🏽‍🤝‍👩🏿":0,"👩🏾‍🤝‍👩🏻":0,"👩🏾‍🤝‍👩🏼":0,"👩🏾‍🤝‍👩🏽":0,"👩🏾‍🤝‍👩🏿":0,"👩🏿‍🤝‍👩🏻":0,"👩🏿‍🤝‍👩🏼":0,"👩🏿‍🤝‍👩🏽":0,"👩🏿‍🤝‍👩🏾":0,"👮🏻‍♀":0,"👮🏼‍♀":0,"👮🏽‍♀":0,"👮🏾‍♀":0,"👮🏿‍♀":0,"👮🏻‍♂":0,"👮🏼‍♂":0,"👮🏽‍♂":0,"👮🏾‍♂":0,"👮🏿‍♂":0,"👮🏻":0,"👮🏼":0,"👮🏽":0,"👮🏾":0,"👮🏿":0,"👰🏻":0,"👰🏼":0,"👰🏽":0,"👰🏾":0,"👰🏿":0,"👱🏻‍♀":0,"👱🏼‍♀":0,"👱🏽‍♀":0,"👱🏾‍♀":0,"👱🏿‍♀":0,"👱🏻‍♂":0,"👱🏼‍♂":0,"👱🏽‍♂":0,"👱🏾‍♂":0,"👱🏿‍♂":0,"👱🏻":0,"👱🏼":0,"👱🏽":0,"👱🏾":0,"👱🏿":0,"👲🏻":0,"👲🏼":0,"👲🏽":0,"👲🏾":0,"👲🏿":0,"👳🏻‍♀":0,"👳🏼‍♀":0,"👳🏽‍♀":0,"👳🏾‍♀":0,"👳🏿‍♀":0,"👳🏻‍♂":0,"👳🏼‍♂":0,"👳🏽‍♂":0,"👳🏾‍♂":0,"👳🏿‍♂":0,"👳🏻":0,"👳🏼":0,"👳🏽":0,"👳🏾":0,"👳🏿":0,"👴🏻":0,"👴🏼":0,"👴🏽":0,"👴🏾":0,"👴🏿":0,"👵🏻":0,"👵🏼":0,"👵🏽":0,"👵🏾":0,"👵🏿":0,"👶🏻":0,"👶🏼":0,"👶🏽":0,"👶🏾":0,"👶🏿":0,"👷🏻‍♀":0,"👷🏼‍♀":0,"👷🏽‍♀":0,"👷🏾‍♀":0,"👷🏿‍♀":0,"👷🏻‍♂":0,"👷🏼‍♂":0,"👷🏽‍♂":0,"👷🏾‍♂":0,"👷🏿‍♂":0,"👷🏻":0,"👷🏼":0,"👷🏽":0,"👷🏾":0,"👷🏿":0,"👸🏻":0,"👸🏼":0,"👸🏽":0,"👸🏾":0,"👸🏿":0,"👼🏻":0,"👼🏼":0,"👼🏽":0,"👼🏾":0,"👼🏿":0,"💁🏻‍♀":0,"💁🏼‍♀":0,"💁🏽‍♀":0,"💁🏾‍♀":0,"💁🏿‍♀":0,"💁🏻‍♂":0,"💁🏼‍♂":0,"💁🏽‍♂":0,"💁🏾‍♂":0,"💁🏿‍♂":0,"💁🏻":0,"💁🏼":0,"💁🏽":0,"💁🏾":0,"💁🏿":0,"💂🏻‍♀":0,"💂🏼‍♀":0,"💂🏽‍♀":0,"💂🏾‍♀":0,"💂🏿‍♀":0,"💂🏻‍♂":0,"💂🏼‍♂":0,"💂🏽‍♂":0,"💂🏾‍♂":0,"💂🏿‍♂":0,"💂🏻":0,"💂🏼":0,"💂🏽":0,"💂🏾":0,"💂🏿":0,"💃🏻":0,"💃🏼":0,"💃🏽":0,"💃🏾":0,"💃🏿":0,"💅🏻":0,"💅🏼":0,"💅🏽":0,"💅🏾":0,"💅🏿":0,"💆🏻‍♀":0,"💆🏼‍♀":0,"💆🏽‍♀":0,"💆🏾‍♀":0,"💆🏿‍♀":0,"💆🏻‍♂":0,"💆🏼‍♂":0,"💆🏽‍♂":0,"💆🏾‍♂":0,"💆🏿‍♂":0,"💆🏻":0,"💆🏼":0,"💆🏽":0,"💆🏾":0,"💆🏿":0,"💇🏻‍♀":0,"💇🏼‍♀":0,"💇🏽‍♀":0,"💇🏾‍♀":0,"💇🏿‍♀":0,"💇🏻‍♂":0,"💇🏼‍♂":0,"💇🏽‍♂":0,"💇🏾‍♂":0,"💇🏿‍♂":0,"💇🏻":0,"💇🏼":0,"💇🏽":0,"💇🏾":0,"💇🏿":0,"💪🏻":0,"💪🏼":0,"💪🏽":0,"💪🏾":0,"💪🏿":0,"🕴🏻":0,"🕴🏼":0,"🕴🏽":0,"🕴🏾":0,"🕴🏿":0,"🕵🏻‍♀":0,"🕵🏼‍♀":0,"🕵🏽‍♀":0,"🕵🏾‍♀":0,"🕵🏿‍♀":0,"🕵🏻‍♂":0,"🕵🏼‍♂":0,"🕵🏽‍♂":0,"🕵🏾‍♂":0,"🕵🏿‍♂":0,"🕵🏻":0,"🕵🏼":0,"🕵🏽":0,"🕵🏾":0,"🕵🏿":0,"🕺🏻":0,"🕺🏼":0,"🕺🏽":0,"🕺🏾":0,"🕺🏿":0,"🖐🏻":0,"🖐🏼":0,"🖐🏽":0,"🖐🏾":0,"🖐🏿":0,"🖕🏻":0,"🖕🏼":0,"🖕🏽":0,"🖕🏾":0,"🖕🏿":0,"🖖🏻":0,"🖖🏼":0,"🖖🏽":0,"🖖🏾":0,"🖖🏿":0,"🙅🏻‍♀":0,"🙅🏼‍♀":0,"🙅🏽‍♀":0,"🙅🏾‍♀":0,"🙅🏿‍♀":0,"🙅🏻‍♂":0,"🙅🏼‍♂":0,"🙅🏽‍♂":0,"🙅🏾‍♂":0,"🙅🏿‍♂":0,"🙅🏻":0,"🙅🏼":0,"🙅🏽":0,"🙅🏾":0,"🙅🏿":0,"🙆🏻‍♀":0,"🙆🏼‍♀":0,"🙆🏽‍♀":0,"🙆🏾‍♀":0,"🙆🏿‍♀":0,"🙆🏻‍♂":0,"🙆🏼‍♂":0,"🙆🏽‍♂":0,"🙆🏾‍♂":0,"🙆🏿‍♂":0,"🙆🏻":0,"🙆🏼":0,"🙆🏽":0,"🙆🏾":0,"🙆🏿":0,"🙇🏻‍♀":0,"🙇🏼‍♀":0,"🙇🏽‍♀":0,"🙇🏾‍♀":0,"🙇🏿‍♀":0,"🙇🏻‍♂":0,"🙇🏼‍♂":0,"🙇🏽‍♂":0,"🙇🏾‍♂":0,"🙇🏿‍♂":0,"🙇🏻":0,"🙇🏼":0,"🙇🏽":0,"🙇🏾":0,"🙇🏿":0,"🙋🏻‍♀":0,"🙋🏼‍♀":0,"🙋🏽‍♀":0,"🙋🏾‍♀":0,"🙋🏿‍♀":0,"🙋🏻‍♂":0,"🙋🏼‍♂":0,"🙋🏽‍♂":0,"🙋🏾‍♂":0,"🙋🏿‍♂":0,"🙋🏻":0,"🙋🏼":0,"🙋🏽":0,"🙋🏾":0,"🙋🏿":0,"🙌🏻":0,"🙌🏼":0,"🙌🏽":0,"🙌🏾":0,"🙌🏿":0,"🙍🏻‍♀":0,"🙍🏼‍♀":0,"🙍🏽‍♀":0,"🙍🏾‍♀":0,"🙍🏿‍♀":0,"🙍🏻‍♂":0,"🙍🏼‍♂":0,"🙍🏽‍♂":0,"🙍🏾‍♂":0,"🙍🏿‍♂":0,"🙍🏻":0,"🙍🏼":0,"🙍🏽":0,"🙍🏾":0,"🙍🏿":0,"🙎🏻‍♀":0,"🙎🏼‍♀":0,"🙎🏽‍♀":0,"🙎🏾‍♀":0,"🙎🏿‍♀":0,"🙎🏻‍♂":0,"🙎🏼‍♂":0,"🙎🏽‍♂":0,"🙎🏾‍♂":0,"🙎🏿‍♂":0,"🙎🏻":0,"🙎🏼":0,"🙎🏽":0,"🙎🏾":0,"🙎🏿":0,"🙏🏻":0,"🙏🏼":0,"🙏🏽":0,"🙏🏾":0,"🙏🏿":0,"🚣🏻‍♀":0,"🚣🏼‍♀":0,"🚣🏽‍♀":0,"🚣🏾‍♀":0,"🚣🏿‍♀":0,"🚣🏻‍♂":0,"🚣🏼‍♂":0,"🚣🏽‍♂":0,"🚣🏾‍♂":0,"🚣🏿‍♂":0,"🚣🏻":0,"🚣🏼":0,"🚣🏽":0,"🚣🏾":0,"🚣🏿":0,"🚴🏻‍♀":0,"🚴🏼‍♀":0,"🚴🏽‍♀":0,"🚴🏾‍♀":0,"🚴🏿‍♀":0,"🚴🏻‍♂":0,"🚴🏼‍♂":0,"🚴🏽‍♂":0,"🚴🏾‍♂":0,"🚴🏿‍♂":0,"🚴🏻":0,"🚴🏼":0,"🚴🏽":0,"🚴🏾":0,"🚴🏿":0,"🚵🏻‍♀":0,"🚵🏼‍♀":0,"🚵🏽‍♀":0,"🚵🏾‍♀":0,"🚵🏿‍♀":0,"🚵🏻‍♂":0,"🚵🏼‍♂":0,"🚵🏽‍♂":0,"🚵🏾‍♂":0,"🚵🏿‍♂":0,"🚵🏻":0,"🚵🏼":0,"🚵🏽":0,"🚵🏾":0,"🚵🏿":0,"🚶🏻‍♀":0,"🚶🏼‍♀":0,"🚶🏽‍♀":0,"🚶🏾‍♀":0,"🚶🏿‍♀":0,"🚶🏻‍♂":0,"🚶🏼‍♂":0,"🚶🏽‍♂":0,"🚶🏾‍♂":0,"🚶🏿‍♂":0,"🚶🏻":0,"🚶🏼":0,"🚶🏽":0,"🚶🏾":0,"🚶🏿":0,"🛀🏻":0,"🛀🏼":0,"🛀🏽":0,"🛀🏾":0,"🛀🏿":0,"🛌🏻":0,"🛌🏼":0,"🛌🏽":0,"🛌🏾":0,"🛌🏿":0,"🤏🏻":0,"🤏🏼":0,"🤏🏽":0,"🤏🏾":0,"🤏🏿":0,"🤘🏻":0,"🤘🏼":0,"🤘🏽":0,"🤘🏾":0,"🤘🏿":0,"🤙🏻":0,"🤙🏼":0,"🤙🏽":0,"🤙🏾":0,"🤙🏿":0,"🤚🏻":0,"🤚🏼":0,"🤚🏽":0,"🤚🏾":0,"🤚🏿":0,"🤛🏻":0,"🤛🏼":0,"🤛🏽":0,"🤛🏾":0,"🤛🏿":0,"🤜🏻":0,"🤜🏼":0,"🤜🏽":0,"🤜🏾":0,"🤜🏿":0,"🤞🏻":0,"🤞🏼":0,"🤞🏽":0,"🤞🏾":0,"🤞🏿":0,"🤟🏻":0,"🤟🏼":0,"🤟🏽":0,"🤟🏾":0,"🤟🏿":0,"🤦🏻‍♀":0,"🤦🏼‍♀":0,"🤦🏽‍♀":0,"🤦🏾‍♀":0,"🤦🏿‍♀":0,"🤦🏻‍♂":0,"🤦🏼‍♂":0,"🤦🏽‍♂":0,"🤦🏾‍♂":0,"🤦🏿‍♂":0,"🤦🏻":0,"🤦🏼":0,"🤦🏽":0,"🤦🏾":0,"🤦🏿":0,"🤰🏻":0,"🤰🏼":0,"🤰🏽":0,"🤰🏾":0,"🤰🏿":0,"🤱🏻":0,"🤱🏼":0,"🤱🏽":0,"🤱🏾":0,"🤱🏿":0,"🤲🏻":0,"🤲🏼":0,"🤲🏽":0,"🤲🏾":0,"🤲🏿":0,"🤳🏻":0,"🤳🏼":0,"🤳🏽":0,"🤳🏾":0,"🤳🏿":0,"🤴🏻":0,"🤴🏼":0,"🤴🏽":0,"🤴🏾":0,"🤴🏿":0,"🤵🏻":0,"🤵🏼":0,"🤵🏽":0,"🤵🏾":0,"🤵🏿":0,"🤶🏻":0,"🤶🏼":0,"🤶🏽":0,"🤶🏾":0,"🤶🏿":0,"🤷🏻‍♀":0,"🤷🏼‍♀":0,"🤷🏽‍♀":0,"🤷🏾‍♀":0,"🤷🏿‍♀":0,"🤷🏻‍♂":0,"🤷🏼‍♂":0,"🤷🏽‍♂":0,"🤷🏾‍♂":0,"🤷🏿‍♂":0,"🤷🏻":0,"🤷🏼":0,"🤷🏽":0,"🤷🏾":0,"🤷🏿":0,"🤸🏻‍♀":0,"🤸🏼‍♀":0,"🤸🏽‍♀":0,"🤸🏾‍♀":0,"🤸🏿‍♀":0,"🤸🏻‍♂":0,"🤸🏼‍♂":0,"🤸🏽‍♂":0,"🤸🏾‍♂":0,"🤸🏿‍♂":0,"🤸🏻":0,"🤸🏼":0,"🤸🏽":0,"🤸🏾":0,"🤸🏿":0,"🤹🏻‍♀":0,"🤹🏼‍♀":0,"🤹🏽‍♀":0,"🤹🏾‍♀":0,"🤹🏿‍♀":0,"🤹🏻‍♂":0,"🤹🏼‍♂":0,"🤹🏽‍♂":0,"🤹🏾‍♂":0,"🤹🏿‍♂":0,"🤹🏻":0,"🤹🏼":0,"🤹🏽":0,"🤹🏾":0,"🤹🏿":0,"🤽🏻‍♀":0,"🤽🏼‍♀":0,"🤽🏽‍♀":0,"🤽🏾‍♀":0,"🤽🏿‍♀":0,"🤽🏻‍♂":0,"🤽🏼‍♂":0,"🤽🏽‍♂":0,"🤽🏾‍♂":0,"🤽🏿‍♂":0,"🤽🏻":0,"🤽🏼":0,"🤽🏽":0,"🤽🏾":0,"🤽🏿":0,"🤾🏻‍♀":0,"🤾🏼‍♀":0,"🤾🏽‍♀":0,"🤾🏾‍♀":0,"🤾🏿‍♀":0,"🤾🏻‍♂":0,"🤾🏼‍♂":0,"🤾🏽‍♂":0,"🤾🏾‍♂":0,"🤾🏿‍♂":0,"🤾🏻":0,"🤾🏼":0,"🤾🏽":0,"🤾🏾":0,"🤾🏿":0,"🦵🏻":0,"🦵🏼":0,"🦵🏽":0,"🦵🏾":0,"🦵🏿":0,"🦶🏻":0,"🦶🏼":0,"🦶🏽":0,"🦶🏾":0,"🦶🏿":0,"🦸🏻‍♀":0,"🦸🏼‍♀":0,"🦸🏽‍♀":0,"🦸🏾‍♀":0,"🦸🏿‍♀":0,"🦸🏻‍♂":0,"🦸🏼‍♂":0,"🦸🏽‍♂":0,"🦸🏾‍♂":0,"🦸🏿‍♂":0,"🦸🏻":0,"🦸🏼":0,"🦸🏽":0,"🦸🏾":0,"🦸🏿":0,"🦹🏻‍♀":0,"🦹🏼‍♀":0,"🦹🏽‍♀":0,"🦹🏾‍♀":0,"🦹🏿‍♀":0,"🦹🏻‍♂":0,"🦹🏼‍♂":0,"🦹🏽‍♂":0,"🦹🏾‍♂":0,"🦹🏿‍♂":0,"🦹🏻":0,"🦹🏼":0,"🦹🏽":0,"🦹🏾":0,"🦹🏿":0,"🦻🏻":0,"🦻🏼":0,"🦻🏽":0,"🦻🏾":0,"🦻🏿":0,"🧍🏻‍♀":0,"🧍🏼‍♀":0,"🧍🏽‍♀":0,"🧍🏾‍♀":0,"🧍🏿‍♀":0,"🧍🏻‍♂":0,"🧍🏼‍♂":0,"🧍🏽‍♂":0,"🧍🏾‍♂":0,"🧍🏿‍♂":0,"🧍🏻":0,"🧍🏼":0,"🧍🏽":0,"🧍🏾":0,"🧍🏿":0,"🧎🏻‍♀":0,"🧎🏼‍♀":0,"🧎🏽‍♀":0,"🧎🏾‍♀":0,"🧎🏿‍♀":0,"🧎🏻‍♂":0,"🧎🏼‍♂":0,"🧎🏽‍♂":0,"🧎🏾‍♂":0,"🧎🏿‍♂":0,"🧎🏻":0,"🧎🏼":0,"🧎🏽":0,"🧎🏾":0,"🧎🏿":0,"🧏🏻‍♀":0,"🧏🏼‍♀":0,"🧏🏽‍♀":0,"🧏🏾‍♀":0,"🧏🏿‍♀":0,"🧏🏻‍♂":0,"🧏🏼‍♂":0,"🧏🏽‍♂":0,"🧏🏾‍♂":0,"🧏🏿‍♂":0,"🧏🏻":0,"🧏🏼":0,"🧏🏽":0,"🧏🏾":0,"🧏🏿":0,"🧑🏻‍🌾":0,"🧑🏼‍🌾":0,"🧑🏽‍🌾":0,"🧑🏾‍🌾":0,"🧑🏿‍🌾":0,"🧑🏻‍🍳":0,"🧑🏼‍🍳":0,"🧑🏽‍🍳":0,"🧑🏾‍🍳":0,"🧑🏿‍🍳":0,"🧑🏻‍🎓":0,"🧑🏼‍🎓":0,"🧑🏽‍🎓":0,"🧑🏾‍🎓":0,"🧑🏿‍🎓":0,"🧑🏻‍🎤":0,"🧑🏼‍🎤":0,"🧑🏽‍🎤":0,"🧑🏾‍🎤":0,"🧑🏿‍🎤":0,"🧑🏻‍🎨":0,"🧑🏼‍🎨":0,"🧑🏽‍🎨":0,"🧑🏾‍🎨":0,"🧑🏿‍🎨":0,"🧑🏻‍🏫":0,"🧑🏼‍🏫":0,"🧑🏽‍🏫":0,"🧑🏾‍🏫":0,"🧑🏿‍🏫":0,"🧑🏻‍🏭":0,"🧑🏼‍🏭":0,"🧑🏽‍🏭":0,"🧑🏾‍🏭":0,"🧑🏿‍🏭":0,"🧑🏻‍💻":0,"🧑🏼‍💻":0,"🧑🏽‍💻":0,"🧑🏾‍💻":0,"🧑🏿‍💻":0,"🧑🏻‍💼":0,"🧑🏼‍💼":0,"🧑🏽‍💼":0,"🧑🏾‍💼":0,"🧑🏿‍💼":0,"🧑🏻‍🔧":0,"🧑🏼‍🔧":0,"🧑🏽‍🔧":0,"🧑🏾‍🔧":0,"🧑🏿‍🔧":0,"🧑🏻‍🔬":0,"🧑🏼‍🔬":0,"🧑🏽‍🔬":0,"🧑🏾‍🔬":0,"🧑🏿‍🔬":0,"🧑🏻‍🚀":0,"🧑🏼‍🚀":0,"🧑🏽‍🚀":0,"🧑🏾‍🚀":0,"🧑🏿‍🚀":0,"🧑🏻‍🚒":0,"🧑🏼‍🚒":0,"🧑🏽‍🚒":0,"🧑🏾‍🚒":0,"🧑🏿‍🚒":0,"🧑🏻‍🤝‍🧑🏻":0,"🧑🏻‍🤝‍🧑🏼":0,"🧑🏻‍🤝‍🧑🏽":0,"🧑🏻‍🤝‍🧑🏾":0,"🧑🏻‍🤝‍🧑🏿":0,"🧑🏼‍🤝‍🧑🏻":0,"🧑🏼‍🤝‍🧑🏼":0,"🧑🏼‍🤝‍🧑🏽":0,"🧑🏼‍🤝‍🧑🏾":0,"🧑🏼‍🤝‍🧑🏿":0,"🧑🏽‍🤝‍🧑🏻":0,"🧑🏽‍🤝‍🧑🏼":0,"🧑🏽‍🤝‍🧑🏽":0,"🧑🏽‍🤝‍🧑🏾":0,"🧑🏽‍🤝‍🧑🏿":0,"🧑🏾‍🤝‍🧑🏻":0,"🧑🏾‍🤝‍🧑🏼":0,"🧑🏾‍🤝‍🧑🏽":0,"🧑🏾‍🤝‍🧑🏾":0,"🧑🏾‍🤝‍🧑🏿":0,"🧑🏿‍🤝‍🧑🏻":0,"🧑🏿‍🤝‍🧑🏼":0,"🧑🏿‍🤝‍🧑🏽":0,"🧑🏿‍🤝‍🧑🏾":0,"🧑🏿‍🤝‍🧑🏿":0,"🧑🏻‍🦯":0,"🧑🏼‍🦯":0,"🧑🏽‍🦯":0,"🧑🏾‍🦯":0,"🧑🏿‍🦯":0,"🧑🏻‍🦰":0,"🧑🏼‍🦰":0,"🧑🏽‍🦰":0,"🧑🏾‍🦰":0,"🧑🏿‍🦰":0,"🧑🏻‍🦱":0,"🧑🏼‍🦱":0,"🧑🏽‍🦱":0,"🧑🏾‍🦱":0,"🧑🏿‍🦱":0,"🧑🏻‍🦲":0,"🧑🏼‍🦲":0,"🧑🏽‍🦲":0,"🧑🏾‍🦲":0,"🧑🏿‍🦲":0,"🧑🏻‍🦳":0,"🧑🏼‍🦳":0,"🧑🏽‍🦳":0,"🧑🏾‍🦳":0,"🧑🏿‍🦳":0,"🧑🏻‍🦼":0,"🧑🏼‍🦼":0,"🧑🏽‍🦼":0,"🧑🏾‍🦼":0,"🧑🏿‍🦼":0,"🧑🏻‍🦽":0,"🧑🏼‍🦽":0,"🧑🏽‍🦽":0,"🧑🏾‍🦽":0,"🧑🏿‍🦽":0,"🧑🏻‍⚕":0,"🧑🏼‍⚕":0,"🧑🏽‍⚕":0,"🧑🏾‍⚕":0,"🧑🏿‍⚕":0,"🧑🏻‍⚖":0,"🧑🏼‍⚖":0,"🧑🏽‍⚖":0,"🧑🏾‍⚖":0,"🧑🏿‍⚖":0,"🧑🏻‍✈":0,"🧑🏼‍✈":0,"🧑🏽‍✈":0,"🧑🏾‍✈":0,"🧑🏿‍✈":0,"🧑🏻":0,"🧑🏼":0,"🧑🏽":0,"🧑🏾":0,"🧑🏿":0,"🧒🏻":0,"🧒🏼":0,"🧒🏽":0,"🧒🏾":0,"🧒🏿":0,"🧓🏻":0,"🧓🏼":0,"🧓🏽":0,"🧓🏾":0,"🧓🏿":0,"🧔🏻":0,"🧔🏼":0,"🧔🏽":0,"🧔🏾":0,"🧔🏿":0,"🧕🏻":0,"🧕🏼":0,"🧕🏽":0,"🧕🏾":0,"🧕🏿":0,"🧖🏻‍♀":0,"🧖🏼‍♀":0,"🧖🏽‍♀":0,"🧖🏾‍♀":0,"🧖🏿‍♀":0,"🧖🏻‍♂":0,"🧖🏼‍♂":0,"🧖🏽‍♂":0,"🧖🏾‍♂":0,"🧖🏿‍♂":0,"🧖🏻":0,"🧖🏼":0,"🧖🏽":0,"🧖🏾":0,"🧖🏿":0,"🧗🏻‍♀":0,"🧗🏼‍♀":0,"🧗🏽‍♀":0,"🧗🏾‍♀":0,"🧗🏿‍♀":0,"🧗🏻‍♂":0,"🧗🏼‍♂":0,"🧗🏽‍♂":0,"🧗🏾‍♂":0,"🧗🏿‍♂":0,"🧗🏻":0,"🧗🏼":0,"🧗🏽":0,"🧗🏾":0,"🧗🏿":0,"🧘🏻‍♀":0,"🧘🏼‍♀":0,"🧘🏽‍♀":0,"🧘🏾‍♀":0,"🧘🏿‍♀":0,"🧘🏻‍♂":0,"🧘🏼‍♂":0,"🧘🏽‍♂":0,"🧘🏾‍♂":0,"🧘🏿‍♂":0,"🧘🏻":0,"🧘🏼":0,"🧘🏽":0,"🧘🏾":0,"🧘🏿":0,"🧙🏻‍♀":0,"🧙🏼‍♀":0,"🧙🏽‍♀":0,"🧙🏾‍♀":0,"🧙🏿‍♀":0,"🧙🏻‍♂":0,"🧙🏼‍♂":0,"🧙🏽‍♂":0,"🧙🏾‍♂":0,"🧙🏿‍♂":0,"🧙🏻":0,"🧙🏼":0,"🧙🏽":0,"🧙🏾":0,"🧙🏿":0,"🧚🏻‍♀":0,"🧚🏼‍♀":0,"🧚🏽‍♀":0,"🧚🏾‍♀":0,"🧚🏿‍♀":0,"🧚🏻‍♂":0,"🧚🏼‍♂":0,"🧚🏽‍♂":0,"🧚🏾‍♂":0,"🧚🏿‍♂":0,"🧚🏻":0,"🧚🏼":0,"🧚🏽":0,"🧚🏾":0,"🧚🏿":0,"🧛🏻‍♀":0,"🧛🏼‍♀":0,"🧛🏽‍♀":0,"🧛🏾‍♀":0,"🧛🏿‍♀":0,"🧛🏻‍♂":0,"🧛🏼‍♂":0,"🧛🏽‍♂":0,"🧛🏾‍♂":0,"🧛🏿‍♂":0,"🧛🏻":0,"🧛🏼":0,"🧛🏽":0,"🧛🏾":0,"🧛🏿":0,"🧜🏻‍♀":0,"🧜🏼‍♀":0,"🧜🏽‍♀":0,"🧜🏾‍♀":0,"🧜🏿‍♀":0,"🧜🏻‍♂":0,"🧜🏼‍♂":0,"🧜🏽‍♂":0,"🧜🏾‍♂":0,"🧜🏿‍♂":0,"🧜🏻":0,"🧜🏼":0,"🧜🏽":0,"🧜🏾":0,"🧜🏿":0,"🧝🏻‍♀":0,"🧝🏼‍♀":0,"🧝🏽‍♀":0,"🧝🏾‍♀":0,"🧝🏿‍♀":0,"🧝🏻‍♂":0,"🧝🏼‍♂":0,"🧝🏽‍♂":0,"🧝🏾‍♂":0,"🧝🏿‍♂":0,"🧝🏻":0,"🧝🏼":0,"🧝🏽":0,"🧝🏾":0,"🧝🏿":0,"☝🏻":0,"☝🏼":0,"☝🏽":0,"☝🏾":0,"☝🏿":0,"⛹🏻‍♀":0,"⛹🏼‍♀":0,"⛹🏽‍♀":0,"⛹🏾‍♀":0,"⛹🏿‍♀":0,"⛹🏻‍♂":0,"⛹🏼‍♂":0,"⛹🏽‍♂":0,"⛹🏾‍♂":0,"⛹🏿‍♂":0,"⛹🏻":0,"⛹🏼":0,"⛹🏽":0,"⛹🏾":0,"⛹🏿":0,"✊🏻":0,"✊🏼":0,"✊🏽":0,"✊🏾":0,"✊🏿":0,"✋🏻":0,"✋🏼":0,"✋🏽":0,"✋🏾":0,"✋🏿":0,"✌🏻":0,"✌🏼":0,"✌🏽":0,"✌🏾":0,"✌🏿":0,"✍🏻":0,"✍🏼":0,"✍🏽":0,"✍🏾":0,"✍🏿":0} \ No newline at end of file diff --git a/src/format_jsons.js b/src/format_jsons.js index 34babc22..e28a4844 100644 --- a/src/format_jsons.js +++ b/src/format_jsons.js @@ -2,7 +2,7 @@ let emoji = require('./emoji_pretty.json'); //let countries = require('./countries_pretty.json'); let countries = require('fs').readFileSync('./countries.dat').toString(); -console.log(countries); +//console.log(countries); //console.log(emoji, countries); @@ -23,7 +23,7 @@ let formatted = emoji.filter(e => e.has_img_apple); require('fs').writeFileSync('./emoji.json', JSON.stringify(formatted)); */ -{ +if(false) { let obj = {}; formatted.forEach(e => { let {unified, name, short_names, category, sheet_x, sheet_y, sort_order} = e; @@ -45,6 +45,59 @@ require('fs').writeFileSync('./emoji.json', JSON.stringify(formatted)); */ require('fs').writeFileSync('./emoji.json', JSON.stringify(obj)); } +{ + let categories = { + "Smileys & Emotion": 1 + , "Animals & Nature": 2 + , "Food & Drink": 3 + , "Travel & Places": 4 + , "Activities": 5 + , "Objects": 6 + , "Symbols": 6 + , "Flags": 7 + , "Skin Tones": 8 + }; + + let maxObjectsIndex = -1; + formatted.forEach(e => { + if(e.category == 'Objects') { + if(e.sort_order > maxObjectsIndex) { + maxObjectsIndex = e.sort_order; + } + } + }); + formatted.forEach(e => { + if(e.category == 'Symbols') { + e.sort_order += maxObjectsIndex; + } + }); + + formatted.forEach(e => { + if(e.skin_variations) { + for(let i in e.skin_variations) { + formatted.push(e.skin_variations[i]); + } + } + }); + + let obj = {}; + formatted.forEach(e => { + let {unified, name, short_names, category, sheet_x, sheet_y, sort_order} = e; + + let emoji = unified.replace(/-FE0F/gi, '').split('-') + .reduce((prev, curr) => prev + String.fromCodePoint(parseInt(curr, 16)), ''); + + let c = categories[category] === undefined ? 9 : categories[category]; + //obj[emoji] = '' + c + sort_order; + //obj[emoji] = +('' + (c * 1000 + sort_order)).replace(/0+/g, '0').replace(/^(\d)0(\d)/g, '$1$2'); + obj[emoji] = e.sort_order !== undefined ? +('' + c + sort_order) : 0; + }); + + console.log(obj); + + require('fs').writeFileSync('./emoji.json', JSON.stringify(obj)); +} + /* { let obj = {}; formatted.forEach(e => { @@ -89,7 +142,7 @@ require('fs').writeFileSync('./emoji.json', JSON.stringify(formatted)); */ }; arr.push(item); - console.log(item); + //console.log(item); }); require('fs').writeFileSync('./countries.json', JSON.stringify(arr)); diff --git a/src/lib/appManagers/apiUpdatesManager.ts b/src/lib/appManagers/apiUpdatesManager.ts index 9694b975..b355c05e 100644 --- a/src/lib/appManagers/apiUpdatesManager.ts +++ b/src/lib/appManagers/apiUpdatesManager.ts @@ -499,7 +499,7 @@ export class ApiUpdatesManager { this.attached = true; apiManager.setUpdatesProcessor(this.processUpdateMessage.bind(this)); - if(!state) { + if(!state || !state.pts || !state.date || !state.seq) { apiManager.invokeApi('updates.getState', {}, {noErrorBox: true}).then((stateResult: any) => { this.updatesState.seq = stateResult.seq; this.updatesState.pts = stateResult.pts; diff --git a/src/lib/appManagers/appDialogsManager.ts b/src/lib/appManagers/appDialogsManager.ts index 45be931b..6a3ecb17 100644 --- a/src/lib/appManagers/appDialogsManager.ts +++ b/src/lib/appManagers/appDialogsManager.ts @@ -1,4 +1,4 @@ -import { findUpClassName, $rootScope, escapeRegExp, whichChild, findUpTag } from "../utils"; +import { findUpClassName, $rootScope, escapeRegExp, whichChild, findUpTag, cancelEvent } from "../utils"; import appImManager, { AppImManager } from "./appImManager"; import appPeersManager from './appPeersManager'; import appMessagesManager, { AppMessagesManager, Dialog } from "./appMessagesManager"; @@ -401,30 +401,20 @@ export class AppDialogsManager { constructor() { this.chatsPreloader = putPreloader(null, true); - //this.chatsContainer.append(this.chatsPreloader); this.pinnedDelimiter = document.createElement('div'); this.pinnedDelimiter.classList.add('pinned-delimiter'); this.pinnedDelimiter.appendChild(document.createElement('span')); - //this.chatsLoadCount = Math.round(document.body.scrollHeight / 70 * 1.5); - - let splitOffset = 1110; - - this.scroll = new Scrollable(this.chatsContainer, 'y', splitOffset, 'CL', this.chatList, 500); + this.scroll = new Scrollable(this.chatsContainer, 'y', 'CL', this.chatList, 500); this.scroll.setVirtualContainer(this.chatList); this.scroll.onScrolledBottom = this.onChatsScroll.bind(this); - /* this.chatsHidden = this.scroll.hiddenElements; - this.chatsVisible = this.scroll.visibleElements; */ + this.scroll.attachSentinels(); - this.scrollArchived = new Scrollable(this.chatsArchivedContainer, 'y', splitOffset, 'CLA', this.chatListArchived, 500); + this.scrollArchived = new Scrollable(this.chatsArchivedContainer, 'y', 'CLA', this.chatListArchived, 500); this.scrollArchived.setVirtualContainer(this.chatListArchived); this.scrollArchived.onScrolledBottom = this.onChatsArchivedScroll.bind(this); - /* this.chatsArchivedHidden = this.scrollArchived.hiddenElements; - this.chatsArchivedVisible = this.scrollArchived.visibleElements; */ - //this.scrollArchived.container.addEventListener('scroll', this.onChatsArchivedScroll.bind(this)); - - //let chatClosedDiv = document.getElementById('chat-closed'); + this.scroll.attachSentinels(); this.setListClickListener(this.chatList); this.setListClickListener(this.chatListArchived); @@ -611,11 +601,6 @@ export class AppDialogsManager { else this.loadedAll = true; } - /* if(archived) { - let count = result.count; - this.archivedCount.innerText = '' + count; - } */ - this.log('getDialogs ' + loadCount + ' dialogs by offset:', offsetIndex, result, this.scroll.length, archived); this.scroll.onScroll(); } catch(err) { @@ -627,20 +612,21 @@ export class AppDialogsManager { } public onChatsScroll() { - if(this.loadedAll /* || this.scroll.hiddenElements.down.length > 0 */ || this.loadDialogsPromise/* || 1 == 1 */) return; + if(this.loadedAll || this.loadDialogsPromise) return; this.loadDialogs(); } public onChatsArchivedScroll() { - if(this.loadedArchivedAll /* || this.scrollArchived.hiddenElements.down.length > 0 */ || this.loadDialogsPromise/* || 1 == 1 */) return; + if(this.loadedArchivedAll || this.loadDialogsPromise) return; this.loadDialogs(true); } public setListClickListener(list: HTMLUListElement, onFound?: () => void) { list.addEventListener('click', (e: Event) => { - //return; + cancelEvent(e); + console.log('dialogs click list'); let target = e.target as HTMLElement; let elem = target.classList.contains('rp') ? target : findUpClassName(target, 'rp'); @@ -657,14 +643,9 @@ export class AppDialogsManager { this.lastActiveListElement.classList.remove('active'); } - let startTime = Date.now(); let result: ReturnType; //console.log('appDialogsManager: lock lazyLoadQueue'); if(elem) { - /* if(chatClosedDiv) { - chatClosedDiv.style.display = 'none'; - } */ - if(onFound) onFound(); let peerID = +elem.getAttribute('data-peerID'); @@ -677,38 +658,14 @@ export class AppDialogsManager { result = appImManager.setPeer(peerID, lastMsgID); - if(result instanceof Promise) { + /* if(result instanceof Promise) { this.lastGoodClickID = this.lastClickID; appImManager.lazyLoadQueue.lock(); - } - } else /* if(chatClosedDiv) */ { + } */ + } else { result = appImManager.setPeer(0); - //chatClosedDiv.style.display = ''; } - - /* if(!(result instanceof Promise)) { // if click on same dialog - this.rippleCallback(); - this.rippleCallback = null; - } */ - - /* promise.then(() => { - appImManager.lazyLoadQueue.unlock(); - }); */ - - /* promise.then(() => { - let length = appImManager.lazyLoadQueue.length(); - console.log('pre ripple callback', length); - - if(length) { - setTimeout(() => { - this.rippleCallback(); - }, length * 25); - } else { - let elapsedTime = Date.now() - startTime; - this.rippleCallback(elapsedTime > 200); - } - }); */ - }); + }, {capture: true}); } public setDialogPosition(dialog: Dialog) { @@ -1012,7 +969,8 @@ export class AppDialogsManager { paddingDiv.append(avatarEl, captionDiv); if(rippleEnabled) { - ripple(paddingDiv, (id) => { + ripple(paddingDiv); + /* ripple(paddingDiv, (id) => { this.log('dialogs click element'); this.lastClickID = id; @@ -1026,7 +984,7 @@ export class AppDialogsManager { if(id == this.lastGoodClickID) { appImManager.lazyLoadQueue.unlock(); } - }); + }); */ } diff --git a/src/lib/appManagers/appImManager.ts b/src/lib/appManagers/appImManager.ts index 30cc1e1c..563c7829 100644 --- a/src/lib/appManagers/appImManager.ts +++ b/src/lib/appManagers/appImManager.ts @@ -154,8 +154,15 @@ export class AppImManager { // will call when message is sent (only 1) $rootScope.$on('history_append', (e: CustomEvent) => { let details = e.detail; - - this.renderNewMessagesByIDs([details.messageID]); + + if(!this.scrolledAllDown) { + let dialog = appMessagesManager.getDialogByPeerID(this.peerID)[0]; + if(dialog) { + this.setPeer(this.peerID, dialog.top_message); + } + } else { + this.renderNewMessagesByIDs([details.messageID], true); + } }); // will call when sent for update pos @@ -411,7 +418,7 @@ export class AppImManager { if(['IMG', 'DIV'].indexOf(target.tagName) === -1) target = findUpTag(target, 'DIV'); if(target.tagName == 'DIV' || target.tagName == "AVATAR-ELEMENT") { - if(target.classList.contains('forward')) { + if(target.classList.contains('goto-original')) { let savedFrom = bubble.dataset.savedFrom; let splitted = savedFrom.split('_'); let peerID = +splitted[0]; @@ -685,7 +692,7 @@ export class AppImManager { } //appMessagesManager.readMessages(readed); - appMessagesManager.readHistory(this.peerID, max, min).catch((err: any) => { + false && appMessagesManager.readHistory(this.peerID, max, min).catch((err: any) => { this.log.error('readHistory err:', err); appMessagesManager.readHistory(this.peerID, max, min); }); @@ -793,7 +800,7 @@ export class AppImManager { if(this.isScrollingTimeout) { clearTimeout(this.isScrollingTimeout); - } else { + } else if(this.chatInner.classList.contains('is-scrolling')) { this.chatInner.classList.add('is-scrolling'); } @@ -815,14 +822,14 @@ export class AppImManager { } public setScroll() { - this.scrollable = new Scrollable(this.bubblesContainer, 'y', 750, 'IM', this.chatInner/* 1500 */, 300); + this.scrollable = new Scrollable(this.bubblesContainer, 'y', 'IM', this.chatInner); this.scroll = this.scrollable.container; - + this.bubblesContainer.append(this.goDownBtn); - //this.scrollable.setVirtualContainer(this.chatInner); this.scrollable.onScrolledTop = () => this.loadMoreHistory(true); this.scrollable.onScrolledBottom = () => this.loadMoreHistory(false); + this.scrollable.attachSentinels(undefined, 300); this.scroll.addEventListener('scroll', this.onScroll.bind(this)); this.scroll.parentElement.classList.add('scrolled-down'); @@ -943,8 +950,8 @@ export class AppImManager { this.peerChanged = false; this.firstUnreadBubble = null; - /* this.messagesQueue.length = 0; - this.messagesQueuePromise = null; */ + this.messagesQueue.length = 0; + this.messagesQueuePromise = null; lottieLoader.checkAnimations(false, 'chat', true); @@ -1028,10 +1035,14 @@ export class AppImManager { const maxBubbleID = samePeer && Math.max(...Object.keys(this.bubbles).map(mid => +mid)); + //let oldChatInner = this.chatInner; this.cleanup(); this.chatInner = document.createElement('div'); this.chatInner.id = 'bubbles-inner'; this.scrollable.appendTo = this.chatInner; + this.chatInner.classList.add('disable-hover', 'is-scrolling'); + + this.lazyLoadQueue.lock(); let {promise, cached} = this.getHistory(lastMsgID, true, isJump, additionMsgID); @@ -1040,6 +1051,7 @@ export class AppImManager { // clear if(!cached) { this.scrollable.container.innerHTML = ''; + //oldChatInner.remove(); this.finishPeerChange(); this.preloader.attach(this.bubblesContainer); } @@ -1052,12 +1064,17 @@ export class AppImManager { if(cached) { this.scrollable.container.innerHTML = ''; + //oldChatInner.remove(); this.finishPeerChange(); } else { this.preloader.detach(); } this.scrollable.container.append(this.chatInner); + this.scrollable.attachSentinels(); + //this.scrollable.container.insertBefore(this.chatInner, this.scrollable.container.lastElementChild); + + this.lazyLoadQueue.unlock(); if(dialog && lastMsgID && lastMsgID != dialog.top_message && (this.bubbles[lastMsgID] || this.firstUnreadBubble)) { if(this.scrollable.scrollLocked) { @@ -1086,35 +1103,7 @@ export class AppImManager { this.scrolledAllDown = true; } - //this.chatInner.style.visibility = ''; - - /* let promises: Promise[] = []; - for(let i in this.bubbles) { - (Array.from(this.bubbles[i].querySelectorAll('img, image, video')) as HTMLImageElement[]).forEach(el => { - promises.push(new Promise((resolve, reject) => { - if(el.tagName == 'VIDEO') { - el.onloadeddata = () => { - console.log('onloadeddata'); - resolve(); - }; - } else { - el.onload = resolve; - } - })); - }); - } - - Promise.all(promises).then(() => { - window.requestAnimationFrame(() => { - window.requestAnimationFrame(() => { - //this.chatInner.style.visibility = ''; - let parent = oldChatInner.parentElement; - oldChatInner.remove(); - parent.append(this.chatInner); - this.scrollable.scrollTop = this.scrollable.scrollHeight; - }); - }); - }); */ + this.log('scrolledAllDown:', this.scrolledAllDown); console.timeEnd('appImManager setPeer'); @@ -1126,6 +1115,7 @@ export class AppImManager { ]).catch(err => { this.log.error('setPeer promises error:', err); this.preloader.detach(); + //oldChatInner.remove(); return false; }).then(res => { if(this.peerID == peerID) { @@ -1162,7 +1152,7 @@ export class AppImManager { this.topbar.style.display = ''; - if(appPeersManager.isAnyGroup(peerID)) this.chatInner.classList.add('is-chat'); + if(appPeersManager.isAnyGroup(peerID) || peerID == this.myID) this.chatInner.classList.add('is-chat'); else this.chatInner.classList.remove('is-chat'); if(isChannel) this.chatInner.classList.add('is-channel'); else this.chatInner.classList.remove('is-channel'); @@ -1238,13 +1228,12 @@ export class AppImManager { this.deleteEmptyDateGroups(); } - public renderNewMessagesByIDs(msgIDs: number[]) { + public renderNewMessagesByIDs(msgIDs: number[], scrolledDown = this.scrolledDown) { if(!this.scrolledAllDown) { // seems search active or sliced - //////this.log('seems search is active, skipping render:', msgIDs); + this.log('seems search is active, skipping render:', msgIDs); return; } - let scrolledDown = this.scrolledDown; msgIDs.forEach((msgID: number) => { let message = appMessagesManager.getMessage(msgID); @@ -1256,8 +1245,14 @@ export class AppImManager { //if(scrolledDown) this.scrollable.scrollTop = this.scrollable.scrollHeight; if(this.messagesQueuePromise && scrolledDown) { + this.scrollable.scrollTo(this.scrollable.scrollHeight - 1, false, true); this.messagesQueuePromise.then(() => { - this.scrollable.scrollTo(this.scrollable.scrollHeight, false); + this.log('messagesQueuePromise after:', this.chatInner.childElementCount, this.scrollable.scrollHeight); + this.scrollable.scrollTo(this.scrollable.scrollHeight, true, true); + + setTimeout(() => { + this.log('messagesQueuePromise afterafter:', this.chatInner.childElementCount, this.scrollable.scrollHeight); + }, 10); }); } } @@ -1376,7 +1371,7 @@ export class AppImManager { this.messagesQueue.length = 0; let promises = queue.reduce((acc, {promises}) => acc.concat(promises), []); - console.log('promises to call', promises, queue); + //console.log('promises to call', promises, queue); Promise.all(promises).then(() => { if(this.chatInner != chatInner) { this.log.warn('chatInner changed!', this.chatInner, chatInner); @@ -2010,35 +2005,44 @@ export class AppImManager { let isHidden = message.fwd_from && !message.fwd_from.from_id && !message.fwd_from.channel_id; if(isHidden) { ///////this.log('message to render hidden', message); - title = message.fwd_from.from_name; + title = RichTextProcessor.wrapEmojiText(message.fwd_from.from_name); + //title = message.fwd_from.from_name; bubble.classList.add('hidden-profile'); } //this.log(title); - if(message.fwdFromID || message.fwd_from) { - bubble.classList.add('forwarded'); + if((message.fwdFromID || message.fwd_from)) { + if(this.peerID != this.myID) { + bubble.classList.add('forwarded'); + } if(message.savedFrom) { - let fwd = document.createElement('div'); - fwd.classList.add('forward'/* , 'tgico-forward' */); - fwd.innerHTML = ` + let goto = document.createElement('div'); + goto.classList.add('goto-original', 'tgico-next'); + /* fwd.innerHTML = ` - `; - bubbleContainer.append(fwd); + `; */ + bubbleContainer.append(goto); bubble.dataset.savedFrom = message.savedFrom; } if(!bubble.classList.contains('sticker')) { let nameDiv = document.createElement('div'); nameDiv.classList.add('name'); - nameDiv.innerHTML = 'Forwarded from ' + title; nameDiv.dataset.peerID = message.fwdFromID; - //nameDiv.style.color = appPeersManager.getPeerColorByID(message.fromID, false); + + if(this.peerID == this.myID) { + nameDiv.style.color = appPeersManager.getPeerColorByID(message.fwdFromID, false); + nameDiv.innerHTML = title; + } else { + nameDiv.innerHTML = 'Forwarded from ' + title; + } + bubbleContainer.append(nameDiv); } } else { @@ -2079,19 +2083,18 @@ export class AppImManager { } } - if(!our && this.peerID < 0 && (!appPeersManager.isChannel(this.peerID) || appPeersManager.isMegagroup(this.peerID))) { + if((!our && this.peerID < 0 && (!appPeersManager.isChannel(this.peerID) || appPeersManager.isMegagroup(this.peerID))) + || (this.peerID == this.myID && !message.reply_to_mid)) { let avatarElem = new AvatarElement(); avatarElem.classList.add('user-avatar'); - avatarElem.setAttribute('peer', '' + (message.fromID || 0)); + + if(!message.fromID && message.fwd_from && message.fwd_from.from_name) { + avatarElem.setAttribute('peer-title', message.fwd_from.from_name); + } + + avatarElem.setAttribute('peer', '' + ((message.fwd_from ? message.fwdFromID : message.fromID) || 0)); - /////////this.log('exec loadDialogPhoto', message); - /* if(message.fromID) { // if no - user hidden - appProfileManager.putPhoto(avatarDiv, message.fromID); - } else if(!title && message.fwd_from && message.fwd_from.from_name) { - title = message.fwd_from.from_name; - - appProfileManager.putPhoto(avatarDiv, 0, false); - } */ + this.log('exec loadDialogPhoto', message); bubbleContainer.append(avatarElem); } @@ -2099,7 +2102,7 @@ export class AppImManager { bubble.classList.add('hide-name'); } - bubble.classList.add(our ? 'is-out' : 'is-in'); + bubble.classList.add(our && (!message.fwd_from || this.peerID != this.myID) ? 'is-out' : 'is-in'); if(updatePosition) { this.bubbleGroups.addBubble(bubble, message, reverse); @@ -2136,6 +2139,16 @@ export class AppImManager { } } */ + let dialog = appMessagesManager.getDialogByPeerID(this.peerID)[0]; + if(dialog && dialog.top_message) { + for(let mid of history) { + if(mid == dialog.top_message) { + this.scrolledAllDown = true; + break; + } + } + } + console.time('appImManager render history'); let firstLoad = !!this.setPeerPromise && false; @@ -2199,7 +2212,7 @@ export class AppImManager { let loadCount = realLoadCount; if(testScroll) { - loadCount = 1; + //loadCount = 1; if(Object.keys(this.bubbles).length > 0) return {cached: false, promise: Promise.resolve(true)}; } @@ -2217,11 +2230,6 @@ export class AppImManager { } let result = appMessagesManager.getHistory(this.peerID, maxID, loadCount, backLimit); - /* if(!(result instanceof Promise)) { - let _result = result; - $rootScope.$broadcast('history_request'); // for ripple - result = new Promise((resolve, reject) => setTimeout(() => resolve(_result), 150)); - } */ let promise: Promise, cached: boolean; if(result instanceof Promise) { diff --git a/src/lib/appManagers/appMediaViewer.ts b/src/lib/appManagers/appMediaViewer.ts index d3de98e6..e6737529 100644 --- a/src/lib/appManagers/appMediaViewer.ts +++ b/src/lib/appManagers/appMediaViewer.ts @@ -362,6 +362,7 @@ export class AppMediaViewer { if(aspecter) { this.setFullAspect(aspecter, containerRect, rect); + aspecter.classList.add('disable-hover'); } setTimeout(() => { @@ -379,6 +380,8 @@ export class AppMediaViewer { mover.classList.remove('active'); aspecter.style.cssText = ''; void mover.offsetLeft; // reflow + + aspecter.classList.remove('disable-hover'); } mover.classList.add('active'); @@ -727,7 +730,11 @@ export class AppMediaViewer { } if(!video.parentElement) { - aspecter.prepend(video); + if(aspecter.classList.contains('media-viewer-aspecter')) { + aspecter.prepend(video); + } else { + mover.prepend(video); + } } } diff --git a/src/lib/appManagers/appMessagesManager.ts b/src/lib/appManagers/appMessagesManager.ts index a532e409..a55869ac 100644 --- a/src/lib/appManagers/appMessagesManager.ts +++ b/src/lib/appManagers/appMessagesManager.ts @@ -1,4 +1,4 @@ -import { $rootScope, copy, tsNow, safeReplaceObject, dT, _, listMergeSorted, deepEqual, langPack } from "../utils"; +import { $rootScope, copy, tsNow, safeReplaceObject, dT, listMergeSorted, deepEqual, langPack } from "../utils"; import appMessagesIDsManager from "./appMessagesIDsManager"; import appChatsManager from "./appChatsManager"; import appUsersManager from "./appUsersManager"; @@ -29,7 +29,10 @@ export type HistoryStorage = { count: number | null, history: number[], pending: number[], - readPromise?: any + + readPromise?: any, + maxOutID?: number, + reply_markup?: any }; export type HistoryResult = { @@ -189,6 +192,19 @@ export class AppMessagesManager { } if(messages) { + /* let tempID = this.tempID; + + for(let message of messages) { + if(message.id < tempID) { + tempID = message.id; + } + } + + if(tempID != this.tempID) { + console.log('Set tempID to:', tempID); + this.tempID = tempID; + } */ + this.saveMessages(messages); } @@ -208,7 +224,7 @@ export class AppMessagesManager { }).catch(resolve); }); - setInterval(() => this.saveState(), 10000); + //setInterval(() => this.saveState(), 10000); } public saveState() { @@ -218,15 +234,30 @@ export class AppMessagesManager { for(let folderID in this.dialogsStorage) { for(let dialog of this.dialogsStorage[folderID]) { - let message = this.getMessage(dialog.top_message); - if(message._ != 'messageEmpty' && message.id > 0) { - messages.push(message); + let historyStorage = this.historiesStorage[dialog.peerID]; + let history = [].concat(historyStorage?.pending ?? [], historyStorage?.history ?? []); + + dialog = copy(dialog); + let removeUnread = 0; + for(let mid of history) { + let message = this.getMessage(mid); + if(/* message._ != 'messageEmpty' && */message.id > 0) { + messages.push(message); + + if(message.fromID != dialog.peerID) { + peers[message.fromID] = appPeersManager.getPeer(message.fromID); + } + + dialog.top_message = message.mid; - if(message.fromID != dialog.peerID) { - peers[message.fromID] = appPeersManager.getPeer(message.fromID); + break; + } else if(message.pFlags && message.pFlags.unread) { + ++removeUnread; } } + if(removeUnread && dialog.unread_count) dialog.unread_count -= removeUnread; + dialogs.push(dialog); peers[dialog.peerID] = appPeersManager.getPeer(dialog.peerID); @@ -2137,13 +2168,13 @@ export class AppMessagesManager { else message.pFlags.unread = false; } - if(this.historiesStorage[peerID] === undefined && !message.deleted) { - var historyStorage: any = {count: null, history: [], pending: []}; - historyStorage[mid > 0 ? 'history' : 'pending'].push(mid) + if(this.historiesStorage[peerID] === undefined/* && !message.deleted */) { // warning + let historyStorage: HistoryStorage = {count: null, history: [], pending: []}; + historyStorage[mid > 0 ? 'history' : 'pending'].push(mid); if(mid < 0 && message.pFlags.unread) { dialog.unread_count++; } - this.historiesStorage[peerID] = historyStorage + this.historiesStorage[peerID] = historyStorage; if(this.mergeReplyKeyboard(historyStorage, message)) { $rootScope.$broadcast('history_reply_markup', {peerID: peerID}); } @@ -2154,7 +2185,7 @@ export class AppMessagesManager { } } - public mergeReplyKeyboard(historyStorage: any, message: any) { + public mergeReplyKeyboard(historyStorage: HistoryStorage, message: any) { // console.log('merge', message.mid, message.reply_markup, historyStorage.reply_markup) if(!message.reply_markup && !message.pFlags.out && @@ -3204,6 +3235,7 @@ export class AppMessagesManager { } case 'updateServiceNotification': { + console.log('updateServiceNotification', update); var fromID = 777000; var peerID = fromID; var messageID = this.tempID--; diff --git a/src/lib/appManagers/appSidebarLeft.ts b/src/lib/appManagers/appSidebarLeft.ts index c60baf9f..d96fc690 100644 --- a/src/lib/appManagers/appSidebarLeft.ts +++ b/src/lib/appManagers/appSidebarLeft.ts @@ -387,6 +387,9 @@ class AppEditProfileTab implements SliderTab { private avatarElem = document.createElement('avatar-element'); + private profileUrlContainer = this.container.querySelector('.profile-url-container') as HTMLDivElement; + private profileUrlAnchor = this.profileUrlContainer.lastElementChild as HTMLAnchorElement; + private originalValues = { firstName: '', lastName: '', @@ -411,21 +414,27 @@ class AppEditProfileTab implements SliderTab { this.lastNameInput.addEventListener('input', () => this.handleChange()); this.bioInput.addEventListener('input', () => this.handleChange()); this.userNameInput.addEventListener('input', () => { - this.handleChange(); let value = this.userNameInput.value; console.log('userNameInput:', value); - if(value == this.originalValues.userName) { + if(value == this.originalValues.userName || !value.length) { this.userNameInput.classList.remove('valid', 'error'); userNameLabel.innerText = 'Username (optional)'; + this.setProfileUrl(); + this.handleChange(); return; - } else if(value.length < 5 || value.length > 32 || !/^[a-zA-Z0-9_]+$/.test(value)) { // does not check the last underscore + } else if(!this.isUsernameValid(value)) { // does not check the last underscore this.userNameInput.classList.add('error'); this.userNameInput.classList.remove('valid'); userNameLabel.innerText = 'Username is invalid'; } else { - this.userNameInput.classList.remove('error'); - /* */ + this.userNameInput.classList.remove('valid', 'error'); + } + + if(this.userNameInput.classList.contains('error')) { + this.setProfileUrl(); + this.handleChange(); + return; } apiManager.invokeApi('account.checkUsername', { @@ -453,6 +462,9 @@ class AppEditProfileTab implements SliderTab { break; } } + }).then(() => { + this.handleChange(); + this.setProfileUrl(); }); }); @@ -509,16 +521,33 @@ class AppEditProfileTab implements SliderTab { } this.uploadAvatar = null; + + this.setProfileUrl(); + } + + public isUsernameValid(username: string) { + return ((username.length >= 5 && username.length <= 32) || !username.length) && /^[a-zA-Z0-9_]*$/.test(username); } private isChanged() { return !!this.uploadAvatar || this.firstNameInput.value != this.originalValues.firstName || this.lastNameInput.value != this.originalValues.lastName - || this.userNameInput.value != this.originalValues.userName + || (this.userNameInput.value != this.originalValues.userName && !this.userNameInput.classList.contains('error')) || this.bioInput.value != this.originalValues.bio; } + private setProfileUrl() { + if(this.userNameInput.classList.contains('error') || !this.userNameInput.value.length) { + this.profileUrlContainer.style.display = 'none'; + } else { + this.profileUrlContainer.style.display = ''; + let url = 'https://t.me/' + this.userNameInput.value; + this.profileUrlAnchor.innerText = url; + this.profileUrlAnchor.href = url; + } + } + private handleChange() { if(this.isChanged()) { this.nextBtn.classList.add('is-visible'); diff --git a/src/lib/appManagers/appSidebarRight.ts b/src/lib/appManagers/appSidebarRight.ts index 1a739150..51e639c2 100644 --- a/src/lib/appManagers/appSidebarRight.ts +++ b/src/lib/appManagers/appSidebarRight.ts @@ -29,8 +29,6 @@ let setText = (text: string, el: HTMLDivElement) => { el.prepend(p); el.style.display = ''; - - //this.scroll.getScrollTopOffset(); }); }; @@ -66,7 +64,8 @@ class AppSidebarRight { private loadedAllMedia: {[type: string]: boolean} = {}; public sharedMediaTypes = [ - 'inputMessagesFilterContacts', + 'members', + //'inputMessagesFilterContacts', 'inputMessagesFilterPhotoVideo', 'inputMessagesFilterDocument', 'inputMessagesFilterUrl', @@ -75,7 +74,7 @@ class AppSidebarRight { public sharedMediaType: AppSidebarRight['sharedMediaTypes'][number] = ''; private sharedMediaSelected: HTMLDivElement = null; - private lazyLoadQueueSidebar = new LazyLoadQueue(5); + private lazyLoadQueue = new LazyLoadQueue(5); public historiesStorage: { [peerID: number]: { @@ -114,15 +113,14 @@ class AppSidebarRight { let container = this.profileContentEl.querySelector('.content-container .tabs-container') as HTMLDivElement; this.profileTabs = this.profileContentEl.querySelector('.profile-tabs') as HTMLUListElement; - this.scroll = new Scrollable(this.profileContainer, 'y', 1200, 'SR', undefined, 400); - //this.scroll = new Scrollable(this.profileContentEl, 'y', 1200, 'SR', undefined, 400); - this.scroll.container.addEventListener('scroll', this.onSidebarScroll.bind(this)); + this.scroll = new Scrollable(this.profileContainer, 'y', 'SR'); this.scroll.onScrolledBottom = () => { if(this.sharedMediaSelected && this.sharedMediaSelected.childElementCount/* && false */) { this.log('onScrolledBottom will load media'); this.loadSidebarMedia(true); } }; + this.scroll.attachSentinels(undefined, 400); horizontalMenu(this.profileTabs, container, (id, tabContent) => { if(this.prevTabID == id) return; @@ -130,24 +128,19 @@ class AppSidebarRight { this.sharedMediaType = this.sharedMediaTypes[id]; this.sharedMediaSelected = tabContent.firstElementChild as HTMLDivElement; - if(this.profileTabs.offsetTop) { + if(this.prevTabID != -1 && this.profileTabs.offsetTop) { this.scroll.scrollTop -= this.profileTabs.offsetTop; } - this.log('setVirtualContainer', id, this.sharedMediaSelected, this.sharedMediaSelected.childElementCount); - this.scroll.setVirtualContainer(this.sharedMediaSelected); + /* this.log('setVirtualContainer', id, this.sharedMediaSelected, this.sharedMediaSelected.childElementCount); + this.scroll.setVirtualContainer(this.sharedMediaSelected); */ if(this.prevTabID != -1 && !this.sharedMediaSelected.childElementCount) { // quick brown fix - this.contentContainer.classList.remove('loaded'); + //this.contentContainer.classList.remove('loaded'); this.loadSidebarMedia(true); } this.prevTabID = id; - - this.scroll.onScroll(); - }, () => { - this.onSidebarScroll.bind(this); - this.scroll.onScroll(); }); let sidebarCloseBtn = this.sidebarEl.querySelector('.sidebar-close-button') as HTMLButtonElement; @@ -183,9 +176,7 @@ class AppSidebarRight { //let checked = this.profileElements.notificationsCheckbox.checked; appImManager.mutePeer(this.peerID); }); - - window.addEventListener('resize', this.onSidebarScroll.bind(this)); - + if(testScroll) { let div = document.createElement('div'); for(let i = 0; i < 500; ++i) { @@ -209,24 +200,77 @@ class AppSidebarRight { this.searchContainer.classList.add('active'); this.privateSearch.beginSearch(this.peerID); } - - public onSidebarScroll() { - this.lazyLoadQueueSidebar.check(); - } - + public toggleSidebar(enable?: boolean) { /////this.log('sidebarEl', this.sidebarEl, enable, isElementInViewport(this.sidebarEl)); + let active = this.sidebarEl.classList.contains('active'); + let willChange: boolean; if(enable !== undefined) { if(enable) { - setTimeout(() => this.lazyLoadQueueSidebar.check(), 200); - this.sidebarEl.classList.add('active'); - } else this.sidebarEl.classList.remove('active'); - - return; + if(!active) { + willChange = true; + } + } else if(active) { + willChange = true; + } + } else { + willChange = true; } - this.sidebarEl.classList.toggle('active'); + if(!willChange) return Promise.resolve(); + + let set = () => { + if(enable !== undefined) { + if(enable) this.sidebarEl.classList.add('active'); + else this.sidebarEl.classList.remove('active'); + } else { + this.sidebarEl.classList.toggle('active'); + } + }; + + return new Promise((resolve, reject) => { + let hidden: {element: HTMLDivElement, height: number}[] = []; + let observer = new IntersectionObserver((entries) => { + for(let entry of entries) { + let bubble = entry.target as HTMLDivElement; + if(!entry.isIntersecting) { + hidden.push({element: bubble, height: bubble.scrollHeight}); + } + } + + for(let item of hidden) { + item.element.style.minHeight = item.height + 'px'; + (item.element.firstElementChild as HTMLElement).style.display = 'none'; + item.element.style.width = '1px'; + } + + //console.log('hidden', hidden); + observer.disconnect(); + + set(); + + setTimeout(() => { + for(let item of hidden) { + item.element.style.minHeight = ''; + item.element.style.width = ''; + (item.element.firstElementChild as HTMLElement).style.display = ''; + } + + resolve(); + }, 200); + }); + + let length = Object.keys(appImManager.bubbles).length; + if(length) { + for(let i in appImManager.bubbles) { + observer.observe(appImManager.bubbles[i]); + } + } else { + set(); + setTimeout(resolve, 200); + } + }); } public filterMessagesByType(ids: number[], type: string) { @@ -396,7 +440,7 @@ class AppSidebarRight { appPhotosManager.setAttachmentPreview(sizes[0].bytes, img, false, false); } - this.lazyLoadQueueSidebar.push({div, load}); + this.lazyLoadQueue.push({div, load}); } this.lastSharedMediaDiv.append(div); @@ -451,10 +495,11 @@ class AppSidebarRight { previewDiv.classList.remove('empty'); + previewDiv.innerText = ''; renderImageFromUrl(previewDiv, webpage.photo.url); }); - this.lazyLoadQueueSidebar.push({div: previewDiv, load}); + this.lazyLoadQueue.push({div: previewDiv, load}); } let title = webpage.rTitle || ''; @@ -493,8 +538,8 @@ class AppSidebarRight { } default: - //console.warn('death is my friend', message); - break; + console.warn('death is my friend', messages); + break; } if(this.lastSharedMediaDiv.childElementCount && !this.scroll.contains(this.lastSharedMediaDiv)) { @@ -521,11 +566,9 @@ class AppSidebarRight { let parent = sharedMediaDiv.parentElement; if(parent.lastElementChild.classList.contains('preloader')) { parent.lastElementChild.remove(); - this.contentContainer.classList.add('loaded'); + //this.contentContainer.classList.add('loaded'); } } - - this.onSidebarScroll(); } public loadSidebarMedia(single = false) { @@ -626,11 +669,8 @@ class AppSidebarRight { this.lastSharedMediaDiv.classList.add('media-row'); this.prevTabID = -1; - this.scroll.setVirtualContainer(null); - this.mediaDivsByIDs = {}; - - this.lazyLoadQueueSidebar.clear(); + this.lazyLoadQueue.clear(); this.sharedMediaTypes.forEach(type => { this.usedFromHistory[type] = 0; @@ -640,9 +680,9 @@ class AppSidebarRight { } public cleanupHTML() { - this.contentContainer.classList.remove('loaded'); + //this.contentContainer.classList.remove('loaded'); - this.profileContentEl.parentElement.scrollTop = 0; + //this.profileContentEl.parentElement.scrollTop = 0; this.profileElements.bio.style.display = 'none'; this.profileElements.phone.style.display = 'none'; this.profileElements.username.style.display = 'none'; @@ -710,7 +750,10 @@ class AppSidebarRight { }); } + let membersLi = this.profileTabs.firstElementChild.children[0] as HTMLLIElement; if(peerID > 0) { + membersLi.style.display = 'none'; + let user = appUsersManager.getUser(peerID); if(user.phone && peerID != $rootScope.myID) { setText(user.rPhone, this.profileElements.phone); @@ -734,6 +777,7 @@ class AppSidebarRight { } }); } else { + membersLi.style.display = appPeersManager.isBroadcast(peerID) ? 'none' : ''; let chat = appPeersManager.getPeer(peerID); appProfileManager.getChatFull(chat.id).then((chatFull: any) => { diff --git a/src/lib/appManagers/appStickersManager.ts b/src/lib/appManagers/appStickersManager.ts index 2d0fc200..7bb783eb 100644 --- a/src/lib/appManagers/appStickersManager.ts +++ b/src/lib/appManagers/appStickersManager.ts @@ -118,7 +118,8 @@ class AppStickersManager { public getAnimatedEmojiSticker(emoji: string) { let stickerSet = this.stickerSets.emoji; - return stickerSet.documents.find(doc => doc.attributes.find(attribute => attribute.alt == emoji)); + emoji = emoji.replace(/\ufe0f/g, ''); + return stickerSet.documents.find(doc => doc.stickerEmojiRaw == emoji); } public async saveStickerSet(res: { diff --git a/src/lib/config.ts b/src/lib/config.ts index 76b36302..fc1da829 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -15,47 +15,7 @@ */ -{ - /* let img_size = 32; - let side = 52; - let sheetUrl = `assets/img/sheet_apple_${img_size}_`; // #.png - let multiplyX = 100 / 6; - let sheetSizeX = 6 * (img_size + 2); // size of image in pixels - let sheetSizeY = side * (img_size + 2); // size of image in pixels - let sizeX = 100 * (sheetSizeX / img_size); - let sizeY = 100 * (sheetSizeY / img_size); - let splitted = true; */ - - let img_size = 64; - let side = 56; - let sheetUrl = `assets/img/sheet_apple_${img_size}`; // #.png - let multiplyX = 100 / side; - let sheetSizeX = side * (img_size + 2); // size of image in pixels - let sheetSizeY = side * (img_size + 2); // size of image in pixels - let sizeX = 100 * (sheetSizeX / img_size); - let sizeY = 100 * (sheetSizeY / img_size); - let splitted = false; - - var Emoji = { - img_size, - sheetUrl, - multiplyX, - sheetSizeX, - sheetSizeY, - sizeX, - sizeY, - side, - splitted, - keyCategory: 'category', - keyX: 'sheet_x', - keyY: 'sheet_y', - /* keyCategory: '2', - keyX: '0', // 'sheet_x' - keyY: '1', // 'sheet_y' */ - - emoji: {"#️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":0,"sort_order":132},"*️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":1,"sort_order":133},"0️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":2,"sort_order":134},"1️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":3,"sort_order":135},"2️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":4,"sort_order":136},"3️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":5,"sort_order":137},"4️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":6,"sort_order":138},"5️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":7,"sort_order":139},"6️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":8,"sort_order":140},"7️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":9,"sort_order":141},"8️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":10,"sort_order":142},"9️⃣":{"category":"Symbols","sheet_x":0,"sheet_y":11,"sort_order":143},"©️":{"category":"Symbols","sheet_x":0,"sheet_y":12,"sort_order":129},"®️":{"category":"Symbols","sheet_x":0,"sheet_y":13,"sort_order":130},"🀄":{"category":"Activities","sheet_x":0,"sheet_y":14,"sort_order":73},"🃏":{"category":"Activities","sheet_x":0,"sheet_y":15,"sort_order":72},"🅰️":{"category":"Symbols","sheet_x":0,"sheet_y":16,"sort_order":150},"🅱️":{"category":"Symbols","sheet_x":0,"sheet_y":17,"sort_order":152},"🅾️":{"category":"Symbols","sheet_x":0,"sheet_y":18,"sort_order":161},"🅿️":{"category":"Symbols","sheet_x":0,"sheet_y":19,"sort_order":163},"🆎":{"category":"Symbols","sheet_x":0,"sheet_y":20,"sort_order":151},"🆑":{"category":"Symbols","sheet_x":0,"sheet_y":21,"sort_order":153},"🆒":{"category":"Symbols","sheet_x":0,"sheet_y":22,"sort_order":154},"🆓":{"category":"Symbols","sheet_x":0,"sheet_y":23,"sort_order":155},"🆔":{"category":"Symbols","sheet_x":0,"sheet_y":24,"sort_order":157},"🆕":{"category":"Symbols","sheet_x":0,"sheet_y":25,"sort_order":159},"🆖":{"category":"Symbols","sheet_x":0,"sheet_y":26,"sort_order":160},"🆗":{"category":"Symbols","sheet_x":0,"sheet_y":27,"sort_order":162},"🆘":{"category":"Symbols","sheet_x":0,"sheet_y":28,"sort_order":164},"🆙":{"category":"Symbols","sheet_x":0,"sheet_y":29,"sort_order":165},"🆚":{"category":"Symbols","sheet_x":0,"sheet_y":30,"sort_order":166},"🇦🇨":{"category":"Flags","sheet_x":0,"sheet_y":31,"sort_order":8},"🇦🇩":{"category":"Flags","sheet_x":0,"sheet_y":32,"sort_order":9},"🇦🇪":{"category":"Flags","sheet_x":0,"sheet_y":33,"sort_order":10},"🇦🇫":{"category":"Flags","sheet_x":0,"sheet_y":34,"sort_order":11},"🇦🇬":{"category":"Flags","sheet_x":0,"sheet_y":35,"sort_order":12},"🇦🇮":{"category":"Flags","sheet_x":0,"sheet_y":36,"sort_order":13},"🇦🇱":{"category":"Flags","sheet_x":0,"sheet_y":37,"sort_order":14},"🇦🇲":{"category":"Flags","sheet_x":0,"sheet_y":38,"sort_order":15},"🇦🇴":{"category":"Flags","sheet_x":0,"sheet_y":39,"sort_order":16},"🇦🇶":{"category":"Flags","sheet_x":0,"sheet_y":40,"sort_order":17},"🇦🇷":{"category":"Flags","sheet_x":0,"sheet_y":41,"sort_order":18},"🇦🇸":{"category":"Flags","sheet_x":0,"sheet_y":42,"sort_order":19},"🇦🇹":{"category":"Flags","sheet_x":0,"sheet_y":43,"sort_order":20},"🇦🇺":{"category":"Flags","sheet_x":0,"sheet_y":44,"sort_order":21},"🇦🇼":{"category":"Flags","sheet_x":0,"sheet_y":45,"sort_order":22},"🇦🇽":{"category":"Flags","sheet_x":0,"sheet_y":46,"sort_order":23},"🇦🇿":{"category":"Flags","sheet_x":0,"sheet_y":47,"sort_order":24},"🇧🇦":{"category":"Flags","sheet_x":0,"sheet_y":48,"sort_order":25},"🇧🇧":{"category":"Flags","sheet_x":0,"sheet_y":49,"sort_order":26},"🇧🇩":{"category":"Flags","sheet_x":0,"sheet_y":50,"sort_order":27},"🇧🇪":{"category":"Flags","sheet_x":0,"sheet_y":51,"sort_order":28},"🇧🇫":{"category":"Flags","sheet_x":0,"sheet_y":52,"sort_order":29},"🇧🇬":{"category":"Flags","sheet_x":0,"sheet_y":53,"sort_order":30},"🇧🇭":{"category":"Flags","sheet_x":0,"sheet_y":54,"sort_order":31},"🇧🇮":{"category":"Flags","sheet_x":0,"sheet_y":55,"sort_order":32},"🇧🇯":{"category":"Flags","sheet_x":0,"sheet_y":56,"sort_order":33},"🇧🇱":{"category":"Flags","sheet_x":1,"sheet_y":0,"sort_order":34},"🇧🇲":{"category":"Flags","sheet_x":1,"sheet_y":1,"sort_order":35},"🇧🇳":{"category":"Flags","sheet_x":1,"sheet_y":2,"sort_order":36},"🇧🇴":{"category":"Flags","sheet_x":1,"sheet_y":3,"sort_order":37},"🇧🇶":{"category":"Flags","sheet_x":1,"sheet_y":4,"sort_order":38},"🇧🇷":{"category":"Flags","sheet_x":1,"sheet_y":5,"sort_order":39},"🇧🇸":{"category":"Flags","sheet_x":1,"sheet_y":6,"sort_order":40},"🇧🇹":{"category":"Flags","sheet_x":1,"sheet_y":7,"sort_order":41},"🇧🇻":{"category":"Flags","sheet_x":1,"sheet_y":8,"sort_order":42},"🇧🇼":{"category":"Flags","sheet_x":1,"sheet_y":9,"sort_order":43},"🇧🇾":{"category":"Flags","sheet_x":1,"sheet_y":10,"sort_order":44},"🇧🇿":{"category":"Flags","sheet_x":1,"sheet_y":11,"sort_order":45},"🇨🇦":{"category":"Flags","sheet_x":1,"sheet_y":12,"sort_order":46},"🇨🇨":{"category":"Flags","sheet_x":1,"sheet_y":13,"sort_order":47},"🇨🇩":{"category":"Flags","sheet_x":1,"sheet_y":14,"sort_order":48},"🇨🇫":{"category":"Flags","sheet_x":1,"sheet_y":15,"sort_order":49},"🇨🇬":{"category":"Flags","sheet_x":1,"sheet_y":16,"sort_order":50},"🇨🇭":{"category":"Flags","sheet_x":1,"sheet_y":17,"sort_order":51},"🇨🇮":{"category":"Flags","sheet_x":1,"sheet_y":18,"sort_order":52},"🇨🇰":{"category":"Flags","sheet_x":1,"sheet_y":19,"sort_order":53},"🇨🇱":{"category":"Flags","sheet_x":1,"sheet_y":20,"sort_order":54},"🇨🇲":{"category":"Flags","sheet_x":1,"sheet_y":21,"sort_order":55},"🇨🇳":{"category":"Flags","sheet_x":1,"sheet_y":22,"sort_order":56},"🇨🇴":{"category":"Flags","sheet_x":1,"sheet_y":23,"sort_order":57},"🇨🇵":{"category":"Flags","sheet_x":1,"sheet_y":24,"sort_order":58},"🇨🇷":{"category":"Flags","sheet_x":1,"sheet_y":25,"sort_order":59},"🇨🇺":{"category":"Flags","sheet_x":1,"sheet_y":26,"sort_order":60},"🇨🇻":{"category":"Flags","sheet_x":1,"sheet_y":27,"sort_order":61},"🇨🇼":{"category":"Flags","sheet_x":1,"sheet_y":28,"sort_order":62},"🇨🇽":{"category":"Flags","sheet_x":1,"sheet_y":29,"sort_order":63},"🇨🇾":{"category":"Flags","sheet_x":1,"sheet_y":30,"sort_order":64},"🇨🇿":{"category":"Flags","sheet_x":1,"sheet_y":31,"sort_order":65},"🇩🇪":{"category":"Flags","sheet_x":1,"sheet_y":32,"sort_order":66},"🇩🇬":{"category":"Flags","sheet_x":1,"sheet_y":33,"sort_order":67},"🇩🇯":{"category":"Flags","sheet_x":1,"sheet_y":34,"sort_order":68},"🇩🇰":{"category":"Flags","sheet_x":1,"sheet_y":35,"sort_order":69},"🇩🇲":{"category":"Flags","sheet_x":1,"sheet_y":36,"sort_order":70},"🇩🇴":{"category":"Flags","sheet_x":1,"sheet_y":37,"sort_order":71},"🇩🇿":{"category":"Flags","sheet_x":1,"sheet_y":38,"sort_order":72},"🇪🇦":{"category":"Flags","sheet_x":1,"sheet_y":39,"sort_order":73},"🇪🇨":{"category":"Flags","sheet_x":1,"sheet_y":40,"sort_order":74},"🇪🇪":{"category":"Flags","sheet_x":1,"sheet_y":41,"sort_order":75},"🇪🇬":{"category":"Flags","sheet_x":1,"sheet_y":42,"sort_order":76},"🇪🇭":{"category":"Flags","sheet_x":1,"sheet_y":43,"sort_order":77},"🇪🇷":{"category":"Flags","sheet_x":1,"sheet_y":44,"sort_order":78},"🇪🇸":{"category":"Flags","sheet_x":1,"sheet_y":45,"sort_order":79},"🇪🇹":{"category":"Flags","sheet_x":1,"sheet_y":46,"sort_order":80},"🇪🇺":{"category":"Flags","sheet_x":1,"sheet_y":47,"sort_order":81},"🇫🇮":{"category":"Flags","sheet_x":1,"sheet_y":48,"sort_order":82},"🇫🇯":{"category":"Flags","sheet_x":1,"sheet_y":49,"sort_order":83},"🇫🇰":{"category":"Flags","sheet_x":1,"sheet_y":50,"sort_order":84},"🇫🇲":{"category":"Flags","sheet_x":1,"sheet_y":51,"sort_order":85},"🇫🇴":{"category":"Flags","sheet_x":1,"sheet_y":52,"sort_order":86},"🇫🇷":{"category":"Flags","sheet_x":1,"sheet_y":53,"sort_order":87},"🇬🇦":{"category":"Flags","sheet_x":1,"sheet_y":54,"sort_order":88},"🇬🇧":{"category":"Flags","sheet_x":1,"sheet_y":55,"sort_order":89},"🇬🇩":{"category":"Flags","sheet_x":1,"sheet_y":56,"sort_order":90},"🇬🇪":{"category":"Flags","sheet_x":2,"sheet_y":0,"sort_order":91},"🇬🇫":{"category":"Flags","sheet_x":2,"sheet_y":1,"sort_order":92},"🇬🇬":{"category":"Flags","sheet_x":2,"sheet_y":2,"sort_order":93},"🇬🇭":{"category":"Flags","sheet_x":2,"sheet_y":3,"sort_order":94},"🇬🇮":{"category":"Flags","sheet_x":2,"sheet_y":4,"sort_order":95},"🇬🇱":{"category":"Flags","sheet_x":2,"sheet_y":5,"sort_order":96},"🇬🇲":{"category":"Flags","sheet_x":2,"sheet_y":6,"sort_order":97},"🇬🇳":{"category":"Flags","sheet_x":2,"sheet_y":7,"sort_order":98},"🇬🇵":{"category":"Flags","sheet_x":2,"sheet_y":8,"sort_order":99},"🇬🇶":{"category":"Flags","sheet_x":2,"sheet_y":9,"sort_order":100},"🇬🇷":{"category":"Flags","sheet_x":2,"sheet_y":10,"sort_order":101},"🇬🇸":{"category":"Flags","sheet_x":2,"sheet_y":11,"sort_order":102},"🇬🇹":{"category":"Flags","sheet_x":2,"sheet_y":12,"sort_order":103},"🇬🇺":{"category":"Flags","sheet_x":2,"sheet_y":13,"sort_order":104},"🇬🇼":{"category":"Flags","sheet_x":2,"sheet_y":14,"sort_order":105},"🇬🇾":{"category":"Flags","sheet_x":2,"sheet_y":15,"sort_order":106},"🇭🇰":{"category":"Flags","sheet_x":2,"sheet_y":16,"sort_order":107},"🇭🇲":{"category":"Flags","sheet_x":2,"sheet_y":17,"sort_order":108},"🇭🇳":{"category":"Flags","sheet_x":2,"sheet_y":18,"sort_order":109},"🇭🇷":{"category":"Flags","sheet_x":2,"sheet_y":19,"sort_order":110},"🇭🇹":{"category":"Flags","sheet_x":2,"sheet_y":20,"sort_order":111},"🇭🇺":{"category":"Flags","sheet_x":2,"sheet_y":21,"sort_order":112},"🇮🇨":{"category":"Flags","sheet_x":2,"sheet_y":22,"sort_order":113},"🇮🇩":{"category":"Flags","sheet_x":2,"sheet_y":23,"sort_order":114},"🇮🇪":{"category":"Flags","sheet_x":2,"sheet_y":24,"sort_order":115},"🇮🇱":{"category":"Flags","sheet_x":2,"sheet_y":25,"sort_order":116},"🇮🇲":{"category":"Flags","sheet_x":2,"sheet_y":26,"sort_order":117},"🇮🇳":{"category":"Flags","sheet_x":2,"sheet_y":27,"sort_order":118},"🇮🇴":{"category":"Flags","sheet_x":2,"sheet_y":28,"sort_order":119},"🇮🇶":{"category":"Flags","sheet_x":2,"sheet_y":29,"sort_order":120},"🇮🇷":{"category":"Flags","sheet_x":2,"sheet_y":30,"sort_order":121},"🇮🇸":{"category":"Flags","sheet_x":2,"sheet_y":31,"sort_order":122},"🇮🇹":{"category":"Flags","sheet_x":2,"sheet_y":32,"sort_order":123},"🇯🇪":{"category":"Flags","sheet_x":2,"sheet_y":33,"sort_order":124},"🇯🇲":{"category":"Flags","sheet_x":2,"sheet_y":34,"sort_order":125},"🇯🇴":{"category":"Flags","sheet_x":2,"sheet_y":35,"sort_order":126},"🇯🇵":{"category":"Flags","sheet_x":2,"sheet_y":36,"sort_order":127},"🇰🇪":{"category":"Flags","sheet_x":2,"sheet_y":37,"sort_order":128},"🇰🇬":{"category":"Flags","sheet_x":2,"sheet_y":38,"sort_order":129},"🇰🇭":{"category":"Flags","sheet_x":2,"sheet_y":39,"sort_order":130},"🇰🇮":{"category":"Flags","sheet_x":2,"sheet_y":40,"sort_order":131},"🇰🇲":{"category":"Flags","sheet_x":2,"sheet_y":41,"sort_order":132},"🇰🇳":{"category":"Flags","sheet_x":2,"sheet_y":42,"sort_order":133},"🇰🇵":{"category":"Flags","sheet_x":2,"sheet_y":43,"sort_order":134},"🇰🇷":{"category":"Flags","sheet_x":2,"sheet_y":44,"sort_order":135},"🇰🇼":{"category":"Flags","sheet_x":2,"sheet_y":45,"sort_order":136},"🇰🇾":{"category":"Flags","sheet_x":2,"sheet_y":46,"sort_order":137},"🇰🇿":{"category":"Flags","sheet_x":2,"sheet_y":47,"sort_order":138},"🇱🇦":{"category":"Flags","sheet_x":2,"sheet_y":48,"sort_order":139},"🇱🇧":{"category":"Flags","sheet_x":2,"sheet_y":49,"sort_order":140},"🇱🇨":{"category":"Flags","sheet_x":2,"sheet_y":50,"sort_order":141},"🇱🇮":{"category":"Flags","sheet_x":2,"sheet_y":51,"sort_order":142},"🇱🇰":{"category":"Flags","sheet_x":2,"sheet_y":52,"sort_order":143},"🇱🇷":{"category":"Flags","sheet_x":2,"sheet_y":53,"sort_order":144},"🇱🇸":{"category":"Flags","sheet_x":2,"sheet_y":54,"sort_order":145},"🇱🇹":{"category":"Flags","sheet_x":2,"sheet_y":55,"sort_order":146},"🇱🇺":{"category":"Flags","sheet_x":2,"sheet_y":56,"sort_order":147},"🇱🇻":{"category":"Flags","sheet_x":3,"sheet_y":0,"sort_order":148},"🇱🇾":{"category":"Flags","sheet_x":3,"sheet_y":1,"sort_order":149},"🇲🇦":{"category":"Flags","sheet_x":3,"sheet_y":2,"sort_order":150},"🇲🇨":{"category":"Flags","sheet_x":3,"sheet_y":3,"sort_order":151},"🇲🇩":{"category":"Flags","sheet_x":3,"sheet_y":4,"sort_order":152},"🇲🇪":{"category":"Flags","sheet_x":3,"sheet_y":5,"sort_order":153},"🇲🇫":{"category":"Flags","sheet_x":3,"sheet_y":6,"sort_order":154},"🇲🇬":{"category":"Flags","sheet_x":3,"sheet_y":7,"sort_order":155},"🇲🇭":{"category":"Flags","sheet_x":3,"sheet_y":8,"sort_order":156},"🇲🇰":{"category":"Flags","sheet_x":3,"sheet_y":9,"sort_order":157},"🇲🇱":{"category":"Flags","sheet_x":3,"sheet_y":10,"sort_order":158},"🇲🇲":{"category":"Flags","sheet_x":3,"sheet_y":11,"sort_order":159},"🇲🇳":{"category":"Flags","sheet_x":3,"sheet_y":12,"sort_order":160},"🇲🇴":{"category":"Flags","sheet_x":3,"sheet_y":13,"sort_order":161},"🇲🇵":{"category":"Flags","sheet_x":3,"sheet_y":14,"sort_order":162},"🇲🇶":{"category":"Flags","sheet_x":3,"sheet_y":15,"sort_order":163},"🇲🇷":{"category":"Flags","sheet_x":3,"sheet_y":16,"sort_order":164},"🇲🇸":{"category":"Flags","sheet_x":3,"sheet_y":17,"sort_order":165},"🇲🇹":{"category":"Flags","sheet_x":3,"sheet_y":18,"sort_order":166},"🇲🇺":{"category":"Flags","sheet_x":3,"sheet_y":19,"sort_order":167},"🇲🇻":{"category":"Flags","sheet_x":3,"sheet_y":20,"sort_order":168},"🇲🇼":{"category":"Flags","sheet_x":3,"sheet_y":21,"sort_order":169},"🇲🇽":{"category":"Flags","sheet_x":3,"sheet_y":22,"sort_order":170},"🇲🇾":{"category":"Flags","sheet_x":3,"sheet_y":23,"sort_order":171},"🇲🇿":{"category":"Flags","sheet_x":3,"sheet_y":24,"sort_order":172},"🇳🇦":{"category":"Flags","sheet_x":3,"sheet_y":25,"sort_order":173},"🇳🇨":{"category":"Flags","sheet_x":3,"sheet_y":26,"sort_order":174},"🇳🇪":{"category":"Flags","sheet_x":3,"sheet_y":27,"sort_order":175},"🇳🇫":{"category":"Flags","sheet_x":3,"sheet_y":28,"sort_order":176},"🇳🇬":{"category":"Flags","sheet_x":3,"sheet_y":29,"sort_order":177},"🇳🇮":{"category":"Flags","sheet_x":3,"sheet_y":30,"sort_order":178},"🇳🇱":{"category":"Flags","sheet_x":3,"sheet_y":31,"sort_order":179},"🇳🇴":{"category":"Flags","sheet_x":3,"sheet_y":32,"sort_order":180},"🇳🇵":{"category":"Flags","sheet_x":3,"sheet_y":33,"sort_order":181},"🇳🇷":{"category":"Flags","sheet_x":3,"sheet_y":34,"sort_order":182},"🇳🇺":{"category":"Flags","sheet_x":3,"sheet_y":35,"sort_order":183},"🇳🇿":{"category":"Flags","sheet_x":3,"sheet_y":36,"sort_order":184},"🇴🇲":{"category":"Flags","sheet_x":3,"sheet_y":37,"sort_order":185},"🇵🇦":{"category":"Flags","sheet_x":3,"sheet_y":38,"sort_order":186},"🇵🇪":{"category":"Flags","sheet_x":3,"sheet_y":39,"sort_order":187},"🇵🇫":{"category":"Flags","sheet_x":3,"sheet_y":40,"sort_order":188},"🇵🇬":{"category":"Flags","sheet_x":3,"sheet_y":41,"sort_order":189},"🇵🇭":{"category":"Flags","sheet_x":3,"sheet_y":42,"sort_order":190},"🇵🇰":{"category":"Flags","sheet_x":3,"sheet_y":43,"sort_order":191},"🇵🇱":{"category":"Flags","sheet_x":3,"sheet_y":44,"sort_order":192},"🇵🇲":{"category":"Flags","sheet_x":3,"sheet_y":45,"sort_order":193},"🇵🇳":{"category":"Flags","sheet_x":3,"sheet_y":46,"sort_order":194},"🇵🇷":{"category":"Flags","sheet_x":3,"sheet_y":47,"sort_order":195},"🇵🇸":{"category":"Flags","sheet_x":3,"sheet_y":48,"sort_order":196},"🇵🇹":{"category":"Flags","sheet_x":3,"sheet_y":49,"sort_order":197},"🇵🇼":{"category":"Flags","sheet_x":3,"sheet_y":50,"sort_order":198},"🇵🇾":{"category":"Flags","sheet_x":3,"sheet_y":51,"sort_order":199},"🇶🇦":{"category":"Flags","sheet_x":3,"sheet_y":52,"sort_order":200},"🇷🇪":{"category":"Flags","sheet_x":3,"sheet_y":53,"sort_order":201},"🇷🇴":{"category":"Flags","sheet_x":3,"sheet_y":54,"sort_order":202},"🇷🇸":{"category":"Flags","sheet_x":3,"sheet_y":55,"sort_order":203},"🇷🇺":{"category":"Flags","sheet_x":3,"sheet_y":56,"sort_order":204},"🇷🇼":{"category":"Flags","sheet_x":4,"sheet_y":0,"sort_order":205},"🇸🇦":{"category":"Flags","sheet_x":4,"sheet_y":1,"sort_order":206},"🇸🇧":{"category":"Flags","sheet_x":4,"sheet_y":2,"sort_order":207},"🇸🇨":{"category":"Flags","sheet_x":4,"sheet_y":3,"sort_order":208},"🇸🇩":{"category":"Flags","sheet_x":4,"sheet_y":4,"sort_order":209},"🇸🇪":{"category":"Flags","sheet_x":4,"sheet_y":5,"sort_order":210},"🇸🇬":{"category":"Flags","sheet_x":4,"sheet_y":6,"sort_order":211},"🇸🇭":{"category":"Flags","sheet_x":4,"sheet_y":7,"sort_order":212},"🇸🇮":{"category":"Flags","sheet_x":4,"sheet_y":8,"sort_order":213},"🇸🇯":{"category":"Flags","sheet_x":4,"sheet_y":9,"sort_order":214},"🇸🇰":{"category":"Flags","sheet_x":4,"sheet_y":10,"sort_order":215},"🇸🇱":{"category":"Flags","sheet_x":4,"sheet_y":11,"sort_order":216},"🇸🇲":{"category":"Flags","sheet_x":4,"sheet_y":12,"sort_order":217},"🇸🇳":{"category":"Flags","sheet_x":4,"sheet_y":13,"sort_order":218},"🇸🇴":{"category":"Flags","sheet_x":4,"sheet_y":14,"sort_order":219},"🇸🇷":{"category":"Flags","sheet_x":4,"sheet_y":15,"sort_order":220},"🇸🇸":{"category":"Flags","sheet_x":4,"sheet_y":16,"sort_order":221},"🇸🇹":{"category":"Flags","sheet_x":4,"sheet_y":17,"sort_order":222},"🇸🇻":{"category":"Flags","sheet_x":4,"sheet_y":18,"sort_order":223},"🇸🇽":{"category":"Flags","sheet_x":4,"sheet_y":19,"sort_order":224},"🇸🇾":{"category":"Flags","sheet_x":4,"sheet_y":20,"sort_order":225},"🇸🇿":{"category":"Flags","sheet_x":4,"sheet_y":21,"sort_order":226},"🇹🇦":{"category":"Flags","sheet_x":4,"sheet_y":22,"sort_order":227},"🇹🇨":{"category":"Flags","sheet_x":4,"sheet_y":23,"sort_order":228},"🇹🇩":{"category":"Flags","sheet_x":4,"sheet_y":24,"sort_order":229},"🇹🇫":{"category":"Flags","sheet_x":4,"sheet_y":25,"sort_order":230},"🇹🇬":{"category":"Flags","sheet_x":4,"sheet_y":26,"sort_order":231},"🇹🇭":{"category":"Flags","sheet_x":4,"sheet_y":27,"sort_order":232},"🇹🇯":{"category":"Flags","sheet_x":4,"sheet_y":28,"sort_order":233},"🇹🇰":{"category":"Flags","sheet_x":4,"sheet_y":29,"sort_order":234},"🇹🇱":{"category":"Flags","sheet_x":4,"sheet_y":30,"sort_order":235},"🇹🇲":{"category":"Flags","sheet_x":4,"sheet_y":31,"sort_order":236},"🇹🇳":{"category":"Flags","sheet_x":4,"sheet_y":32,"sort_order":237},"🇹🇴":{"category":"Flags","sheet_x":4,"sheet_y":33,"sort_order":238},"🇹🇷":{"category":"Flags","sheet_x":4,"sheet_y":34,"sort_order":239},"🇹🇹":{"category":"Flags","sheet_x":4,"sheet_y":35,"sort_order":240},"🇹🇻":{"category":"Flags","sheet_x":4,"sheet_y":36,"sort_order":241},"🇹🇼":{"category":"Flags","sheet_x":4,"sheet_y":37,"sort_order":242},"🇹🇿":{"category":"Flags","sheet_x":4,"sheet_y":38,"sort_order":243},"🇺🇦":{"category":"Flags","sheet_x":4,"sheet_y":39,"sort_order":244},"🇺🇬":{"category":"Flags","sheet_x":4,"sheet_y":40,"sort_order":245},"🇺🇲":{"category":"Flags","sheet_x":4,"sheet_y":41,"sort_order":246},"🇺🇳":{"category":"Flags","sheet_x":4,"sheet_y":42,"sort_order":247},"🇺🇸":{"category":"Flags","sheet_x":4,"sheet_y":43,"sort_order":248},"🇺🇾":{"category":"Flags","sheet_x":4,"sheet_y":44,"sort_order":249},"🇺🇿":{"category":"Flags","sheet_x":4,"sheet_y":45,"sort_order":250},"🇻🇦":{"category":"Flags","sheet_x":4,"sheet_y":46,"sort_order":251},"🇻🇨":{"category":"Flags","sheet_x":4,"sheet_y":47,"sort_order":252},"🇻🇪":{"category":"Flags","sheet_x":4,"sheet_y":48,"sort_order":253},"🇻🇬":{"category":"Flags","sheet_x":4,"sheet_y":49,"sort_order":254},"🇻🇮":{"category":"Flags","sheet_x":4,"sheet_y":50,"sort_order":255},"🇻🇳":{"category":"Flags","sheet_x":4,"sheet_y":51,"sort_order":256},"🇻🇺":{"category":"Flags","sheet_x":4,"sheet_y":52,"sort_order":257},"🇼🇫":{"category":"Flags","sheet_x":4,"sheet_y":53,"sort_order":258},"🇼🇸":{"category":"Flags","sheet_x":4,"sheet_y":54,"sort_order":259},"🇽🇰":{"category":"Flags","sheet_x":4,"sheet_y":55,"sort_order":260},"🇾🇪":{"category":"Flags","sheet_x":4,"sheet_y":56,"sort_order":261},"🇾🇹":{"category":"Flags","sheet_x":5,"sheet_y":0,"sort_order":262},"🇿🇦":{"category":"Flags","sheet_x":5,"sheet_y":1,"sort_order":263},"🇿🇲":{"category":"Flags","sheet_x":5,"sheet_y":2,"sort_order":264},"🇿🇼":{"category":"Flags","sheet_x":5,"sheet_y":3,"sort_order":265},"🈁":{"category":"Symbols","sheet_x":5,"sheet_y":4,"sort_order":167},"🈂️":{"category":"Symbols","sheet_x":5,"sheet_y":5,"sort_order":168},"🈚":{"category":"Symbols","sheet_x":5,"sheet_y":6,"sort_order":174},"🈯":{"category":"Symbols","sheet_x":5,"sheet_y":7,"sort_order":171},"🈲":{"category":"Symbols","sheet_x":5,"sheet_y":8,"sort_order":175},"🈳":{"category":"Symbols","sheet_x":5,"sheet_y":9,"sort_order":179},"🈴":{"category":"Symbols","sheet_x":5,"sheet_y":10,"sort_order":178},"🈵":{"category":"Symbols","sheet_x":5,"sheet_y":11,"sort_order":183},"🈶":{"category":"Symbols","sheet_x":5,"sheet_y":12,"sort_order":170},"🈷️":{"category":"Symbols","sheet_x":5,"sheet_y":13,"sort_order":169},"🈸":{"category":"Symbols","sheet_x":5,"sheet_y":14,"sort_order":177},"🈹":{"category":"Symbols","sheet_x":5,"sheet_y":15,"sort_order":173},"🈺":{"category":"Symbols","sheet_x":5,"sheet_y":16,"sort_order":182},"🉐":{"category":"Symbols","sheet_x":5,"sheet_y":17,"sort_order":172},"🉑":{"category":"Symbols","sheet_x":5,"sheet_y":18,"sort_order":176},"🌀":{"category":"Travel & Places","sheet_x":5,"sheet_y":19,"sort_order":197},"🌁":{"category":"Travel & Places","sheet_x":5,"sheet_y":20,"sort_order":49},"🌂":{"category":"Travel & Places","sheet_x":5,"sheet_y":21,"sort_order":199},"🌃":{"category":"Travel & Places","sheet_x":5,"sheet_y":22,"sort_order":50},"🌄":{"category":"Travel & Places","sheet_x":5,"sheet_y":23,"sort_order":52},"🌅":{"category":"Travel & Places","sheet_x":5,"sheet_y":24,"sort_order":53},"🌆":{"category":"Travel & Places","sheet_x":5,"sheet_y":25,"sort_order":54},"🌇":{"category":"Travel & Places","sheet_x":5,"sheet_y":26,"sort_order":55},"🌈":{"category":"Travel & Places","sheet_x":5,"sheet_y":27,"sort_order":198},"🌉":{"category":"Travel & Places","sheet_x":5,"sheet_y":28,"sort_order":56},"🌊":{"category":"Travel & Places","sheet_x":5,"sheet_y":29,"sort_order":210},"🌋":{"category":"Travel & Places","sheet_x":5,"sheet_y":30,"sort_order":10},"🌌":{"category":"Travel & Places","sheet_x":5,"sheet_y":31,"sort_order":184},"🌍":{"category":"Travel & Places","sheet_x":5,"sheet_y":32,"sort_order":1},"🌎":{"category":"Travel & Places","sheet_x":5,"sheet_y":33,"sort_order":2},"🌏":{"category":"Travel & Places","sheet_x":5,"sheet_y":34,"sort_order":3},"🌐":{"category":"Travel & Places","sheet_x":5,"sheet_y":35,"sort_order":4},"🌑":{"category":"Travel & Places","sheet_x":5,"sheet_y":36,"sort_order":164},"🌒":{"category":"Travel & Places","sheet_x":5,"sheet_y":37,"sort_order":165},"🌓":{"category":"Travel & Places","sheet_x":5,"sheet_y":38,"sort_order":166},"🌔":{"category":"Travel & Places","sheet_x":5,"sheet_y":39,"sort_order":167},"🌕":{"category":"Travel & Places","sheet_x":5,"sheet_y":40,"sort_order":168},"🌖":{"category":"Travel & Places","sheet_x":5,"sheet_y":41,"sort_order":169},"🌗":{"category":"Travel & Places","sheet_x":5,"sheet_y":42,"sort_order":170},"🌘":{"category":"Travel & Places","sheet_x":5,"sheet_y":43,"sort_order":171},"🌙":{"category":"Travel & Places","sheet_x":5,"sheet_y":44,"sort_order":172},"🌚":{"category":"Travel & Places","sheet_x":5,"sheet_y":45,"sort_order":173},"🌛":{"category":"Travel & Places","sheet_x":5,"sheet_y":46,"sort_order":174},"🌜":{"category":"Travel & Places","sheet_x":5,"sheet_y":47,"sort_order":175},"🌝":{"category":"Travel & Places","sheet_x":5,"sheet_y":48,"sort_order":178},"🌞":{"category":"Travel & Places","sheet_x":5,"sheet_y":49,"sort_order":179},"🌟":{"category":"Travel & Places","sheet_x":5,"sheet_y":50,"sort_order":182},"🌠":{"category":"Travel & Places","sheet_x":5,"sheet_y":51,"sort_order":183},"🌡️":{"category":"Travel & Places","sheet_x":5,"sheet_y":52,"sort_order":176},"🌤️":{"category":"Travel & Places","sheet_x":5,"sheet_y":53,"sort_order":188},"🌥️":{"category":"Travel & Places","sheet_x":5,"sheet_y":54,"sort_order":189},"🌦️":{"category":"Travel & Places","sheet_x":5,"sheet_y":55,"sort_order":190},"🌧️":{"category":"Travel & Places","sheet_x":5,"sheet_y":56,"sort_order":191},"🌨️":{"category":"Travel & Places","sheet_x":6,"sheet_y":0,"sort_order":192},"🌩️":{"category":"Travel & Places","sheet_x":6,"sheet_y":1,"sort_order":193},"🌪️":{"category":"Travel & Places","sheet_x":6,"sheet_y":2,"sort_order":194},"🌫️":{"category":"Travel & Places","sheet_x":6,"sheet_y":3,"sort_order":195},"🌬️":{"category":"Travel & Places","sheet_x":6,"sheet_y":4,"sort_order":196},"🌭":{"category":"Food & Drink","sheet_x":6,"sheet_y":5,"sort_order":47},"🌮":{"category":"Food & Drink","sheet_x":6,"sheet_y":6,"sort_order":49},"🌯":{"category":"Food & Drink","sheet_x":6,"sheet_y":7,"sort_order":50},"🌰":{"category":"Food & Drink","sheet_x":6,"sheet_y":8,"sort_order":31},"🌱":{"category":"Animals & Nature","sheet_x":6,"sheet_y":9,"sort_order":116},"🌲":{"category":"Animals & Nature","sheet_x":6,"sheet_y":10,"sort_order":117},"🌳":{"category":"Animals & Nature","sheet_x":6,"sheet_y":11,"sort_order":118},"🌴":{"category":"Animals & Nature","sheet_x":6,"sheet_y":12,"sort_order":119},"🌵":{"category":"Animals & Nature","sheet_x":6,"sheet_y":13,"sort_order":120},"🌶️":{"category":"Food & Drink","sheet_x":6,"sheet_y":14,"sort_order":23},"🌷":{"category":"Animals & Nature","sheet_x":6,"sheet_y":15,"sort_order":115},"🌸":{"category":"Animals & Nature","sheet_x":6,"sheet_y":16,"sort_order":107},"🌹":{"category":"Animals & Nature","sheet_x":6,"sheet_y":17,"sort_order":110},"🌺":{"category":"Animals & Nature","sheet_x":6,"sheet_y":18,"sort_order":112},"🌻":{"category":"Animals & Nature","sheet_x":6,"sheet_y":19,"sort_order":113},"🌼":{"category":"Animals & Nature","sheet_x":6,"sheet_y":20,"sort_order":114},"🌽":{"category":"Food & Drink","sheet_x":6,"sheet_y":21,"sort_order":22},"🌾":{"category":"Animals & Nature","sheet_x":6,"sheet_y":22,"sort_order":121},"🌿":{"category":"Animals & Nature","sheet_x":6,"sheet_y":23,"sort_order":122},"🍀":{"category":"Animals & Nature","sheet_x":6,"sheet_y":24,"sort_order":124},"🍁":{"category":"Animals & Nature","sheet_x":6,"sheet_y":25,"sort_order":125},"🍂":{"category":"Animals & Nature","sheet_x":6,"sheet_y":26,"sort_order":126},"🍃":{"category":"Animals & Nature","sheet_x":6,"sheet_y":27,"sort_order":127},"🍄":{"category":"Food & Drink","sheet_x":6,"sheet_y":28,"sort_order":29},"🍅":{"category":"Food & Drink","sheet_x":6,"sheet_y":29,"sort_order":16},"🍆":{"category":"Food & Drink","sheet_x":6,"sheet_y":30,"sort_order":19},"🍇":{"category":"Food & Drink","sheet_x":6,"sheet_y":31,"sort_order":1},"🍈":{"category":"Food & Drink","sheet_x":6,"sheet_y":32,"sort_order":2},"🍉":{"category":"Food & Drink","sheet_x":6,"sheet_y":33,"sort_order":3},"🍊":{"category":"Food & Drink","sheet_x":6,"sheet_y":34,"sort_order":4},"🍋":{"category":"Food & Drink","sheet_x":6,"sheet_y":35,"sort_order":5},"🍌":{"category":"Food & Drink","sheet_x":6,"sheet_y":36,"sort_order":6},"🍍":{"category":"Food & Drink","sheet_x":6,"sheet_y":37,"sort_order":7},"🍎":{"category":"Food & Drink","sheet_x":6,"sheet_y":38,"sort_order":9},"🍏":{"category":"Food & Drink","sheet_x":6,"sheet_y":39,"sort_order":10},"🍐":{"category":"Food & Drink","sheet_x":6,"sheet_y":40,"sort_order":11},"🍑":{"category":"Food & Drink","sheet_x":6,"sheet_y":41,"sort_order":12},"🍒":{"category":"Food & Drink","sheet_x":6,"sheet_y":42,"sort_order":13},"🍓":{"category":"Food & Drink","sheet_x":6,"sheet_y":43,"sort_order":14},"🍔":{"category":"Food & Drink","sheet_x":6,"sheet_y":44,"sort_order":44},"🍕":{"category":"Food & Drink","sheet_x":6,"sheet_y":45,"sort_order":46},"🍖":{"category":"Food & Drink","sheet_x":6,"sheet_y":46,"sort_order":40},"🍗":{"category":"Food & Drink","sheet_x":6,"sheet_y":47,"sort_order":41},"🍘":{"category":"Food & Drink","sheet_x":6,"sheet_y":48,"sort_order":64},"🍙":{"category":"Food & Drink","sheet_x":6,"sheet_y":49,"sort_order":65},"🍚":{"category":"Food & Drink","sheet_x":6,"sheet_y":50,"sort_order":66},"🍛":{"category":"Food & Drink","sheet_x":6,"sheet_y":51,"sort_order":67},"🍜":{"category":"Food & Drink","sheet_x":6,"sheet_y":52,"sort_order":68},"🍝":{"category":"Food & Drink","sheet_x":6,"sheet_y":53,"sort_order":69},"🍞":{"category":"Food & Drink","sheet_x":6,"sheet_y":54,"sort_order":32},"🍟":{"category":"Food & Drink","sheet_x":6,"sheet_y":55,"sort_order":45},"🍠":{"category":"Food & Drink","sheet_x":6,"sheet_y":56,"sort_order":70},"🍡":{"category":"Food & Drink","sheet_x":7,"sheet_y":0,"sort_order":76},"🍢":{"category":"Food & Drink","sheet_x":7,"sheet_y":1,"sort_order":71},"🍣":{"category":"Food & Drink","sheet_x":7,"sheet_y":2,"sort_order":72},"🍤":{"category":"Food & Drink","sheet_x":7,"sheet_y":3,"sort_order":73},"🍥":{"category":"Food & Drink","sheet_x":7,"sheet_y":4,"sort_order":74},"🍦":{"category":"Food & Drink","sheet_x":7,"sheet_y":5,"sort_order":85},"🍧":{"category":"Food & Drink","sheet_x":7,"sheet_y":6,"sort_order":86},"🍨":{"category":"Food & Drink","sheet_x":7,"sheet_y":7,"sort_order":87},"🍩":{"category":"Food & Drink","sheet_x":7,"sheet_y":8,"sort_order":88},"🍪":{"category":"Food & Drink","sheet_x":7,"sheet_y":9,"sort_order":89},"🍫":{"category":"Food & Drink","sheet_x":7,"sheet_y":10,"sort_order":94},"🍬":{"category":"Food & Drink","sheet_x":7,"sheet_y":11,"sort_order":95},"🍭":{"category":"Food & Drink","sheet_x":7,"sheet_y":12,"sort_order":96},"🍮":{"category":"Food & Drink","sheet_x":7,"sheet_y":13,"sort_order":97},"🍯":{"category":"Food & Drink","sheet_x":7,"sheet_y":14,"sort_order":98},"🍰":{"category":"Food & Drink","sheet_x":7,"sheet_y":15,"sort_order":91},"🍱":{"category":"Food & Drink","sheet_x":7,"sheet_y":16,"sort_order":63},"🍲":{"category":"Food & Drink","sheet_x":7,"sheet_y":17,"sort_order":56},"🍳":{"category":"Food & Drink","sheet_x":7,"sheet_y":18,"sort_order":54},"🍴":{"category":"Food & Drink","sheet_x":7,"sheet_y":19,"sort_order":118},"🍵":{"category":"Food & Drink","sheet_x":7,"sheet_y":20,"sort_order":102},"🍶":{"category":"Food & Drink","sheet_x":7,"sheet_y":21,"sort_order":103},"🍷":{"category":"Food & Drink","sheet_x":7,"sheet_y":22,"sort_order":105},"🍸":{"category":"Food & Drink","sheet_x":7,"sheet_y":23,"sort_order":106},"🍹":{"category":"Food & Drink","sheet_x":7,"sheet_y":24,"sort_order":107},"🍺":{"category":"Food & Drink","sheet_x":7,"sheet_y":25,"sort_order":108},"🍻":{"category":"Food & Drink","sheet_x":7,"sheet_y":26,"sort_order":109},"🍼":{"category":"Food & Drink","sheet_x":7,"sheet_y":27,"sort_order":99},"🍽️":{"category":"Food & Drink","sheet_x":7,"sheet_y":28,"sort_order":117},"🍾":{"category":"Food & Drink","sheet_x":7,"sheet_y":29,"sort_order":104},"🍿":{"category":"Food & Drink","sheet_x":7,"sheet_y":30,"sort_order":59},"🎀":{"category":"Activities","sheet_x":7,"sheet_y":31,"sort_order":17},"🎁":{"category":"Activities","sheet_x":7,"sheet_y":32,"sort_order":18},"🎂":{"category":"Food & Drink","sheet_x":7,"sheet_y":33,"sort_order":90},"🎃":{"category":"Activities","sheet_x":7,"sheet_y":34,"sort_order":1},"🎄":{"category":"Activities","sheet_x":7,"sheet_y":35,"sort_order":2},"🎅":{"category":"People & Body","sheet_x":7,"sheet_y":36,"sort_order":177},"🎆":{"category":"Activities","sheet_x":7,"sheet_y":42,"sort_order":3},"🎇":{"category":"Activities","sheet_x":7,"sheet_y":43,"sort_order":4},"🎈":{"category":"Activities","sheet_x":7,"sheet_y":44,"sort_order":7},"🎉":{"category":"Activities","sheet_x":7,"sheet_y":45,"sort_order":8},"🎊":{"category":"Activities","sheet_x":7,"sheet_y":46,"sort_order":9},"🎋":{"category":"Activities","sheet_x":7,"sheet_y":47,"sort_order":10},"🎌":{"category":"Flags","sheet_x":7,"sheet_y":48,"sort_order":3},"🎍":{"category":"Activities","sheet_x":7,"sheet_y":49,"sort_order":11},"🎎":{"category":"Activities","sheet_x":7,"sheet_y":50,"sort_order":12},"🎏":{"category":"Activities","sheet_x":7,"sheet_y":51,"sort_order":13},"🎐":{"category":"Activities","sheet_x":7,"sheet_y":52,"sort_order":14},"🎑":{"category":"Activities","sheet_x":7,"sheet_y":53,"sort_order":15},"🎒":{"category":"Objects","sheet_x":7,"sheet_y":54,"sort_order":25},"🎓":{"category":"Objects","sheet_x":7,"sheet_y":55,"sort_order":37},"🎖️":{"category":"Activities","sheet_x":7,"sheet_y":56,"sort_order":22},"🎗️":{"category":"Activities","sheet_x":8,"sheet_y":0,"sort_order":19},"🎙️":{"category":"Objects","sheet_x":8,"sheet_y":1,"sort_order":56},"🎚️":{"category":"Objects","sheet_x":8,"sheet_y":2,"sort_order":57},"🎛️":{"category":"Objects","sheet_x":8,"sheet_y":3,"sort_order":58},"🎞️":{"category":"Objects","sheet_x":8,"sheet_y":4,"sort_order":89},"🎟️":{"category":"Activities","sheet_x":8,"sheet_y":5,"sort_order":20},"🎠":{"category":"Travel & Places","sheet_x":8,"sheet_y":6,"sort_order":58},"🎡":{"category":"Travel & Places","sheet_x":8,"sheet_y":7,"sort_order":59},"🎢":{"category":"Travel & Places","sheet_x":8,"sheet_y":8,"sort_order":60},"🎣":{"category":"Activities","sheet_x":8,"sheet_y":9,"sort_order":49},"🎤":{"category":"Objects","sheet_x":8,"sheet_y":10,"sort_order":59},"🎥":{"category":"Objects","sheet_x":8,"sheet_y":11,"sort_order":88},"🎦":{"category":"Symbols","sheet_x":8,"sheet_y":12,"sort_order":91},"🎧":{"category":"Objects","sheet_x":8,"sheet_y":13,"sort_order":60},"🎨":{"category":"Activities","sheet_x":8,"sheet_y":14,"sort_order":77},"🎩":{"category":"Objects","sheet_x":8,"sheet_y":15,"sort_order":36},"🎪":{"category":"Travel & Places","sheet_x":8,"sheet_y":16,"sort_order":62},"🎫":{"category":"Activities","sheet_x":8,"sheet_y":17,"sort_order":21},"🎬":{"category":"Objects","sheet_x":8,"sheet_y":18,"sort_order":91},"🎭":{"category":"Activities","sheet_x":8,"sheet_y":19,"sort_order":75},"🎮":{"category":"Activities","sheet_x":8,"sheet_y":20,"sort_order":61},"🎯":{"category":"Activities","sheet_x":8,"sheet_y":21,"sort_order":55},"🎰":{"category":"Activities","sheet_x":8,"sheet_y":22,"sort_order":63},"🎱":{"category":"Activities","sheet_x":8,"sheet_y":23,"sort_order":58},"🎲":{"category":"Activities","sheet_x":8,"sheet_y":24,"sort_order":64},"🎳":{"category":"Activities","sheet_x":8,"sheet_y":25,"sort_order":37},"🎴":{"category":"Activities","sheet_x":8,"sheet_y":26,"sort_order":74},"🎵":{"category":"Objects","sheet_x":8,"sheet_y":27,"sort_order":54},"🎶":{"category":"Objects","sheet_x":8,"sheet_y":28,"sort_order":55},"🎷":{"category":"Objects","sheet_x":8,"sheet_y":29,"sort_order":62},"🎸":{"category":"Objects","sheet_x":8,"sheet_y":30,"sort_order":63},"🎹":{"category":"Objects","sheet_x":8,"sheet_y":31,"sort_order":64},"🎺":{"category":"Objects","sheet_x":8,"sheet_y":32,"sort_order":65},"🎻":{"category":"Objects","sheet_x":8,"sheet_y":33,"sort_order":66},"🎼":{"category":"Objects","sheet_x":8,"sheet_y":34,"sort_order":53},"🎽":{"category":"Activities","sheet_x":8,"sheet_y":35,"sort_order":51},"🎾":{"category":"Activities","sheet_x":8,"sheet_y":36,"sort_order":35},"🎿":{"category":"Activities","sheet_x":8,"sheet_y":37,"sort_order":52},"🏀":{"category":"Activities","sheet_x":8,"sheet_y":38,"sort_order":31},"🏁":{"category":"Flags","sheet_x":8,"sheet_y":39,"sort_order":1},"🏂":{"category":"People & Body","sheet_x":8,"sheet_y":40,"sort_order":248},"🏃‍♀️":{"category":"People & Body","sheet_x":8,"sheet_y":46,"sort_order":232},"🏃‍♂️":{"category":"People & Body","sheet_x":8,"sheet_y":52,"sort_order":231},"🏃":{"category":"People & Body","sheet_x":9,"sheet_y":1,"sort_order":230},"🏄‍♀️":{"category":"People & Body","sheet_x":9,"sheet_y":7,"sort_order":254},"🏄‍♂️":{"category":"People & Body","sheet_x":9,"sheet_y":13,"sort_order":253},"🏄":{"category":"People & Body","sheet_x":9,"sheet_y":19,"sort_order":252},"🏅":{"category":"Activities","sheet_x":9,"sheet_y":25,"sort_order":24},"🏆":{"category":"Activities","sheet_x":9,"sheet_y":26,"sort_order":23},"🏇":{"category":"People & Body","sheet_x":9,"sheet_y":27,"sort_order":246},"🏈":{"category":"Activities","sheet_x":9,"sheet_y":33,"sort_order":33},"🏉":{"category":"Activities","sheet_x":9,"sheet_y":34,"sort_order":34},"🏊‍♀️":{"category":"People & Body","sheet_x":9,"sheet_y":35,"sort_order":260},"🏊‍♂️":{"category":"People & Body","sheet_x":9,"sheet_y":41,"sort_order":259},"🏊":{"category":"People & Body","sheet_x":9,"sheet_y":47,"sort_order":258},"🏋️‍♀️":{"category":"People & Body","sheet_x":9,"sheet_y":53,"sort_order":266},"🏋️‍♂️":{"category":"People & Body","sheet_x":10,"sheet_y":2,"sort_order":265},"🏋️":{"category":"People & Body","sheet_x":10,"sheet_y":8,"sort_order":264},"🏌️‍♀️":{"category":"People & Body","sheet_x":10,"sheet_y":14,"sort_order":251},"🏌️‍♂️":{"category":"People & Body","sheet_x":10,"sheet_y":20,"sort_order":250},"🏌️":{"category":"People & Body","sheet_x":10,"sheet_y":26,"sort_order":249},"🏍️":{"category":"Travel & Places","sheet_x":10,"sheet_y":32,"sort_order":92},"🏎️":{"category":"Travel & Places","sheet_x":10,"sheet_y":33,"sort_order":91},"🏏":{"category":"Activities","sheet_x":10,"sheet_y":34,"sort_order":38},"🏐":{"category":"Activities","sheet_x":10,"sheet_y":35,"sort_order":32},"🏑":{"category":"Activities","sheet_x":10,"sheet_y":36,"sort_order":39},"🏒":{"category":"Activities","sheet_x":10,"sheet_y":37,"sort_order":40},"🏓":{"category":"Activities","sheet_x":10,"sheet_y":38,"sort_order":42},"🏔️":{"category":"Travel & Places","sheet_x":10,"sheet_y":39,"sort_order":8},"🏕️":{"category":"Travel & Places","sheet_x":10,"sheet_y":40,"sort_order":12},"🏖️":{"category":"Travel & Places","sheet_x":10,"sheet_y":41,"sort_order":13},"🏗️":{"category":"Travel & Places","sheet_x":10,"sheet_y":42,"sort_order":19},"🏘️":{"category":"Travel & Places","sheet_x":10,"sheet_y":43,"sort_order":21},"🏙️":{"category":"Travel & Places","sheet_x":10,"sheet_y":44,"sort_order":51},"🏚️":{"category":"Travel & Places","sheet_x":10,"sheet_y":45,"sort_order":22},"🏛️":{"category":"Travel & Places","sheet_x":10,"sheet_y":46,"sort_order":18},"🏜️":{"category":"Travel & Places","sheet_x":10,"sheet_y":47,"sort_order":14},"🏝️":{"category":"Travel & Places","sheet_x":10,"sheet_y":48,"sort_order":15},"🏞️":{"category":"Travel & Places","sheet_x":10,"sheet_y":49,"sort_order":16},"🏟️":{"category":"Travel & Places","sheet_x":10,"sheet_y":50,"sort_order":17},"🏠":{"category":"Travel & Places","sheet_x":10,"sheet_y":51,"sort_order":23},"🏡":{"category":"Travel & Places","sheet_x":10,"sheet_y":52,"sort_order":24},"🏢":{"category":"Travel & Places","sheet_x":10,"sheet_y":53,"sort_order":25},"🏣":{"category":"Travel & Places","sheet_x":10,"sheet_y":54,"sort_order":26},"🏤":{"category":"Travel & Places","sheet_x":10,"sheet_y":55,"sort_order":27},"🏥":{"category":"Travel & Places","sheet_x":10,"sheet_y":56,"sort_order":28},"🏦":{"category":"Travel & Places","sheet_x":11,"sheet_y":0,"sort_order":29},"🏧":{"category":"Symbols","sheet_x":11,"sheet_y":1,"sort_order":1},"🏨":{"category":"Travel & Places","sheet_x":11,"sheet_y":2,"sort_order":30},"🏩":{"category":"Travel & Places","sheet_x":11,"sheet_y":3,"sort_order":31},"🏪":{"category":"Travel & Places","sheet_x":11,"sheet_y":4,"sort_order":32},"🏫":{"category":"Travel & Places","sheet_x":11,"sheet_y":5,"sort_order":33},"🏬":{"category":"Travel & Places","sheet_x":11,"sheet_y":6,"sort_order":34},"🏭":{"category":"Travel & Places","sheet_x":11,"sheet_y":7,"sort_order":35},"🏮":{"category":"Objects","sheet_x":11,"sheet_y":8,"sort_order":102},"🏯":{"category":"Travel & Places","sheet_x":11,"sheet_y":9,"sort_order":36},"🏰":{"category":"Travel & Places","sheet_x":11,"sheet_y":10,"sort_order":37},"🏳️‍🌈":{"category":"Flags","sheet_x":11,"sheet_y":11,"sort_order":6},"🏳️":{"category":"Flags","sheet_x":11,"sheet_y":12,"sort_order":5},"🏴‍☠️":{"category":"Flags","sheet_x":11,"sheet_y":13,"sort_order":7},"🏴󠁧󠁢󠁥󠁮󠁧󠁿":{"category":"Flags","sheet_x":11,"sheet_y":14,"sort_order":266},"🏴󠁧󠁢󠁳󠁣󠁴󠁿":{"category":"Flags","sheet_x":11,"sheet_y":15,"sort_order":267},"🏴󠁧󠁢󠁷󠁬󠁳󠁿":{"category":"Flags","sheet_x":11,"sheet_y":16,"sort_order":268},"🏴":{"category":"Flags","sheet_x":11,"sheet_y":17,"sort_order":4},"🏵️":{"category":"Animals & Nature","sheet_x":11,"sheet_y":18,"sort_order":109},"🏷️":{"category":"Objects","sheet_x":11,"sheet_y":19,"sort_order":120},"🏸":{"category":"Activities","sheet_x":11,"sheet_y":20,"sort_order":43},"🏹":{"category":"Objects","sheet_x":11,"sheet_y":21,"sort_order":189},"🏺":{"category":"Food & Drink","sheet_x":11,"sheet_y":22,"sort_order":121},"🏻":{"category":"Skin Tones","sheet_x":11,"sheet_y":23,"sort_order":1},"🏼":{"category":"Skin Tones","sheet_x":11,"sheet_y":24,"sort_order":2},"🏽":{"category":"Skin Tones","sheet_x":11,"sheet_y":25,"sort_order":3},"🏾":{"category":"Skin Tones","sheet_x":11,"sheet_y":26,"sort_order":4},"🏿":{"category":"Skin Tones","sheet_x":11,"sheet_y":27,"sort_order":5},"🐀":{"category":"Animals & Nature","sheet_x":11,"sheet_y":28,"sort_order":44},"🐁":{"category":"Animals & Nature","sheet_x":11,"sheet_y":29,"sort_order":43},"🐂":{"category":"Animals & Nature","sheet_x":11,"sheet_y":30,"sort_order":25},"🐃":{"category":"Animals & Nature","sheet_x":11,"sheet_y":31,"sort_order":26},"🐄":{"category":"Animals & Nature","sheet_x":11,"sheet_y":32,"sort_order":27},"🐅":{"category":"Animals & Nature","sheet_x":11,"sheet_y":33,"sort_order":17},"🐆":{"category":"Animals & Nature","sheet_x":11,"sheet_y":34,"sort_order":18},"🐇":{"category":"Animals & Nature","sheet_x":11,"sheet_y":35,"sort_order":47},"🐈":{"category":"Animals & Nature","sheet_x":11,"sheet_y":36,"sort_order":14},"🐉":{"category":"Animals & Nature","sheet_x":11,"sheet_y":37,"sort_order":82},"🐊":{"category":"Animals & Nature","sheet_x":11,"sheet_y":38,"sort_order":77},"🐋":{"category":"Animals & Nature","sheet_x":11,"sheet_y":39,"sort_order":86},"🐌":{"category":"Animals & Nature","sheet_x":11,"sheet_y":40,"sort_order":94},"🐍":{"category":"Animals & Nature","sheet_x":11,"sheet_y":41,"sort_order":80},"🐎":{"category":"Animals & Nature","sheet_x":11,"sheet_y":42,"sort_order":20},"🐏":{"category":"Animals & Nature","sheet_x":11,"sheet_y":43,"sort_order":32},"🐐":{"category":"Animals & Nature","sheet_x":11,"sheet_y":44,"sort_order":34},"🐑":{"category":"Animals & Nature","sheet_x":11,"sheet_y":45,"sort_order":33},"🐒":{"category":"Animals & Nature","sheet_x":11,"sheet_y":46,"sort_order":2},"🐓":{"category":"Animals & Nature","sheet_x":11,"sheet_y":47,"sort_order":62},"🐔":{"category":"Animals & Nature","sheet_x":11,"sheet_y":48,"sort_order":61},"🐕‍🦺":{"category":"Animals & Nature","sheet_x":11,"sheet_y":49,"sort_order":8},"🐕":{"category":"Animals & Nature","sheet_x":11,"sheet_y":50,"sort_order":6},"🐖":{"category":"Animals & Nature","sheet_x":11,"sheet_y":51,"sort_order":29},"🐗":{"category":"Animals & Nature","sheet_x":11,"sheet_y":52,"sort_order":30},"🐘":{"category":"Animals & Nature","sheet_x":11,"sheet_y":53,"sort_order":39},"🐙":{"category":"Animals & Nature","sheet_x":11,"sheet_y":54,"sort_order":92},"🐚":{"category":"Animals & Nature","sheet_x":11,"sheet_y":55,"sort_order":93},"🐛":{"category":"Animals & Nature","sheet_x":11,"sheet_y":56,"sort_order":96},"🐜":{"category":"Animals & Nature","sheet_x":12,"sheet_y":0,"sort_order":97},"🐝":{"category":"Animals & Nature","sheet_x":12,"sheet_y":1,"sort_order":98},"🐞":{"category":"Animals & Nature","sheet_x":12,"sheet_y":2,"sort_order":99},"🐟":{"category":"Animals & Nature","sheet_x":12,"sheet_y":3,"sort_order":88},"🐠":{"category":"Animals & Nature","sheet_x":12,"sheet_y":4,"sort_order":89},"🐡":{"category":"Animals & Nature","sheet_x":12,"sheet_y":5,"sort_order":90},"🐢":{"category":"Animals & Nature","sheet_x":12,"sheet_y":6,"sort_order":78},"🐣":{"category":"Animals & Nature","sheet_x":12,"sheet_y":7,"sort_order":63},"🐤":{"category":"Animals & Nature","sheet_x":12,"sheet_y":8,"sort_order":64},"🐥":{"category":"Animals & Nature","sheet_x":12,"sheet_y":9,"sort_order":65},"🐦":{"category":"Animals & Nature","sheet_x":12,"sheet_y":10,"sort_order":66},"🐧":{"category":"Animals & Nature","sheet_x":12,"sheet_y":11,"sort_order":67},"🐨":{"category":"Animals & Nature","sheet_x":12,"sheet_y":12,"sort_order":52},"🐩":{"category":"Animals & Nature","sheet_x":12,"sheet_y":13,"sort_order":9},"🐪":{"category":"Animals & Nature","sheet_x":12,"sheet_y":14,"sort_order":35},"🐫":{"category":"Animals & Nature","sheet_x":12,"sheet_y":15,"sort_order":36},"🐬":{"category":"Animals & Nature","sheet_x":12,"sheet_y":16,"sort_order":87},"🐭":{"category":"Animals & Nature","sheet_x":12,"sheet_y":17,"sort_order":42},"🐮":{"category":"Animals & Nature","sheet_x":12,"sheet_y":18,"sort_order":24},"🐯":{"category":"Animals & Nature","sheet_x":12,"sheet_y":19,"sort_order":16},"🐰":{"category":"Animals & Nature","sheet_x":12,"sheet_y":20,"sort_order":46},"🐱":{"category":"Animals & Nature","sheet_x":12,"sheet_y":21,"sort_order":13},"🐲":{"category":"Animals & Nature","sheet_x":12,"sheet_y":22,"sort_order":81},"🐳":{"category":"Animals & Nature","sheet_x":12,"sheet_y":23,"sort_order":85},"🐴":{"category":"Animals & Nature","sheet_x":12,"sheet_y":24,"sort_order":19},"🐵":{"category":"Animals & Nature","sheet_x":12,"sheet_y":25,"sort_order":1},"🐶":{"category":"Animals & Nature","sheet_x":12,"sheet_y":26,"sort_order":5},"🐷":{"category":"Animals & Nature","sheet_x":12,"sheet_y":27,"sort_order":28},"🐸":{"category":"Animals & Nature","sheet_x":12,"sheet_y":28,"sort_order":76},"🐹":{"category":"Animals & Nature","sheet_x":12,"sheet_y":29,"sort_order":45},"🐺":{"category":"Animals & Nature","sheet_x":12,"sheet_y":30,"sort_order":10},"🐻":{"category":"Animals & Nature","sheet_x":12,"sheet_y":31,"sort_order":51},"🐼":{"category":"Animals & Nature","sheet_x":12,"sheet_y":32,"sort_order":53},"🐽":{"category":"Animals & Nature","sheet_x":12,"sheet_y":33,"sort_order":31},"🐾":{"category":"Animals & Nature","sheet_x":12,"sheet_y":34,"sort_order":59},"🐿️":{"category":"Animals & Nature","sheet_x":12,"sheet_y":35,"sort_order":48},"👀":{"category":"People & Body","sheet_x":12,"sheet_y":36,"sort_order":45},"👁️‍🗨️":{"category":"Smileys & Emotion","sheet_x":12,"sheet_y":37,"sort_order":145},"👁️":{"category":"People & Body","sheet_x":12,"sheet_y":38,"sort_order":46},"👂":{"category":"People & Body","sheet_x":12,"sheet_y":39,"sort_order":39},"👃":{"category":"People & Body","sheet_x":12,"sheet_y":45,"sort_order":41},"👄":{"category":"People & Body","sheet_x":12,"sheet_y":51,"sort_order":48},"👅":{"category":"People & Body","sheet_x":12,"sheet_y":52,"sort_order":47},"👆":{"category":"People & Body","sheet_x":12,"sheet_y":53,"sort_order":15},"👇":{"category":"People & Body","sheet_x":13,"sheet_y":2,"sort_order":17},"👈":{"category":"People & Body","sheet_x":13,"sheet_y":8,"sort_order":13},"👉":{"category":"People & Body","sheet_x":13,"sheet_y":14,"sort_order":14},"👊":{"category":"People & Body","sheet_x":13,"sheet_y":20,"sort_order":22},"👋":{"category":"People & Body","sheet_x":13,"sheet_y":26,"sort_order":1},"👌":{"category":"People & Body","sheet_x":13,"sheet_y":32,"sort_order":6},"👍":{"category":"People & Body","sheet_x":13,"sheet_y":38,"sort_order":19},"👎":{"category":"People & Body","sheet_x":13,"sheet_y":44,"sort_order":20},"👏":{"category":"People & Body","sheet_x":13,"sheet_y":50,"sort_order":25},"👐":{"category":"People & Body","sheet_x":13,"sheet_y":56,"sort_order":27},"👑":{"category":"Objects","sheet_x":14,"sheet_y":5,"sort_order":34},"👒":{"category":"Objects","sheet_x":14,"sheet_y":6,"sort_order":35},"👓":{"category":"Objects","sheet_x":14,"sheet_y":7,"sort_order":1},"👔":{"category":"Objects","sheet_x":14,"sheet_y":8,"sort_order":6},"👕":{"category":"Objects","sheet_x":14,"sheet_y":9,"sort_order":7},"👖":{"category":"Objects","sheet_x":14,"sheet_y":10,"sort_order":8},"👗":{"category":"Objects","sheet_x":14,"sheet_y":11,"sort_order":13},"👘":{"category":"Objects","sheet_x":14,"sheet_y":12,"sort_order":14},"👙":{"category":"Objects","sheet_x":14,"sheet_y":13,"sort_order":19},"👚":{"category":"Objects","sheet_x":14,"sheet_y":14,"sort_order":20},"👛":{"category":"Objects","sheet_x":14,"sheet_y":15,"sort_order":21},"👜":{"category":"Objects","sheet_x":14,"sheet_y":16,"sort_order":22},"👝":{"category":"Objects","sheet_x":14,"sheet_y":17,"sort_order":23},"👞":{"category":"Objects","sheet_x":14,"sheet_y":18,"sort_order":26},"👟":{"category":"Objects","sheet_x":14,"sheet_y":19,"sort_order":27},"👠":{"category":"Objects","sheet_x":14,"sheet_y":20,"sort_order":30},"👡":{"category":"Objects","sheet_x":14,"sheet_y":21,"sort_order":31},"👢":{"category":"Objects","sheet_x":14,"sheet_y":22,"sort_order":33},"👣":{"category":"People & Body","sheet_x":14,"sheet_y":23,"sort_order":334},"👤":{"category":"People & Body","sheet_x":14,"sheet_y":24,"sort_order":332},"👥":{"category":"People & Body","sheet_x":14,"sheet_y":25,"sort_order":333},"👦":{"category":"People & Body","sheet_x":14,"sheet_y":26,"sort_order":51},"👧":{"category":"People & Body","sheet_x":14,"sheet_y":32,"sort_order":52},"👨‍🌾":{"category":"People & Body","sheet_x":14,"sheet_y":38,"sort_order":118},"👨‍🍳":{"category":"People & Body","sheet_x":14,"sheet_y":44,"sort_order":121},"👨‍🎓":{"category":"People & Body","sheet_x":14,"sheet_y":50,"sort_order":109},"👨‍🎤":{"category":"People & Body","sheet_x":14,"sheet_y":56,"sort_order":139},"👨‍🎨":{"category":"People & Body","sheet_x":15,"sheet_y":5,"sort_order":142},"👨‍🏫":{"category":"People & Body","sheet_x":15,"sheet_y":11,"sort_order":112},"👨‍🏭":{"category":"People & Body","sheet_x":15,"sheet_y":17,"sort_order":127},"👨‍👦‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":23,"sort_order":322},"👨‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":24,"sort_order":321},"👨‍👧‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":25,"sort_order":324},"👨‍👧‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":26,"sort_order":325},"👨‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":27,"sort_order":323},"👨‍👨‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":28,"sort_order":311},"👨‍👨‍👦‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":29,"sort_order":314},"👨‍👨‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":30,"sort_order":312},"👨‍👨‍👧‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":31,"sort_order":313},"👨‍👨‍👧‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":32,"sort_order":315},"👨‍👩‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":33,"sort_order":306},"👨‍👩‍👦‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":34,"sort_order":309},"👨‍👩‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":35,"sort_order":307},"👨‍👩‍👧‍👦":{"category":"People & Body","sheet_x":15,"sheet_y":36,"sort_order":308},"👨‍👩‍👧‍👧":{"category":"People & Body","sheet_x":15,"sheet_y":37,"sort_order":310},"👨‍💻":{"category":"People & Body","sheet_x":15,"sheet_y":38,"sort_order":136},"👨‍💼":{"category":"People & Body","sheet_x":15,"sheet_y":44,"sort_order":130},"👨‍🔧":{"category":"People & Body","sheet_x":15,"sheet_y":50,"sort_order":124},"👨‍🔬":{"category":"People & Body","sheet_x":15,"sheet_y":56,"sort_order":133},"👨‍🚀":{"category":"People & Body","sheet_x":16,"sheet_y":5,"sort_order":148},"👨‍🚒":{"category":"People & Body","sheet_x":16,"sheet_y":11,"sort_order":151},"👨‍🦯":{"category":"People & Body","sheet_x":16,"sheet_y":17,"sort_order":222},"👨‍🦰":{"category":"People & Body","sheet_x":16,"sheet_y":23,"sort_order":57},"👨‍🦱":{"category":"People & Body","sheet_x":16,"sheet_y":29,"sort_order":58},"👨‍🦲":{"category":"People & Body","sheet_x":16,"sheet_y":35,"sort_order":60},"👨‍🦳":{"category":"People & Body","sheet_x":16,"sheet_y":41,"sort_order":59},"👨‍🦼":{"category":"People & Body","sheet_x":16,"sheet_y":47,"sort_order":225},"👨‍🦽":{"category":"People & Body","sheet_x":16,"sheet_y":53,"sort_order":228},"👨‍⚕️":{"category":"People & Body","sheet_x":17,"sheet_y":2,"sort_order":106},"👨‍⚖️":{"category":"People & Body","sheet_x":17,"sheet_y":8,"sort_order":115},"👨‍✈️":{"category":"People & Body","sheet_x":17,"sheet_y":14,"sort_order":145},"👨‍❤️‍👨":{"category":"People & Body","sheet_x":17,"sheet_y":20,"sort_order":303},"👨‍❤️‍💋‍👨":{"category":"People & Body","sheet_x":17,"sheet_y":21,"sort_order":299},"👨":{"category":"People & Body","sheet_x":17,"sheet_y":22,"sort_order":55},"👩‍🌾":{"category":"People & Body","sheet_x":17,"sheet_y":28,"sort_order":119},"👩‍🍳":{"category":"People & Body","sheet_x":17,"sheet_y":34,"sort_order":122},"👩‍🎓":{"category":"People & Body","sheet_x":17,"sheet_y":40,"sort_order":110},"👩‍🎤":{"category":"People & Body","sheet_x":17,"sheet_y":46,"sort_order":140},"👩‍🎨":{"category":"People & Body","sheet_x":17,"sheet_y":52,"sort_order":143},"👩‍🏫":{"category":"People & Body","sheet_x":18,"sheet_y":1,"sort_order":113},"👩‍🏭":{"category":"People & Body","sheet_x":18,"sheet_y":7,"sort_order":128},"👩‍👦‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":13,"sort_order":327},"👩‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":14,"sort_order":326},"👩‍👧‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":15,"sort_order":329},"👩‍👧‍👧":{"category":"People & Body","sheet_x":18,"sheet_y":16,"sort_order":330},"👩‍👧":{"category":"People & Body","sheet_x":18,"sheet_y":17,"sort_order":328},"👩‍👩‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":18,"sort_order":316},"👩‍👩‍👦‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":19,"sort_order":319},"👩‍👩‍👧":{"category":"People & Body","sheet_x":18,"sheet_y":20,"sort_order":317},"👩‍👩‍👧‍👦":{"category":"People & Body","sheet_x":18,"sheet_y":21,"sort_order":318},"👩‍👩‍👧‍👧":{"category":"People & Body","sheet_x":18,"sheet_y":22,"sort_order":320},"👩‍💻":{"category":"People & Body","sheet_x":18,"sheet_y":23,"sort_order":137},"👩‍💼":{"category":"People & Body","sheet_x":18,"sheet_y":29,"sort_order":131},"👩‍🔧":{"category":"People & Body","sheet_x":18,"sheet_y":35,"sort_order":125},"👩‍🔬":{"category":"People & Body","sheet_x":18,"sheet_y":41,"sort_order":134},"👩‍🚀":{"category":"People & Body","sheet_x":18,"sheet_y":47,"sort_order":149},"👩‍🚒":{"category":"People & Body","sheet_x":18,"sheet_y":53,"sort_order":152},"👩‍🦯":{"category":"People & Body","sheet_x":19,"sheet_y":2,"sort_order":223},"👩‍🦰":{"category":"People & Body","sheet_x":19,"sheet_y":8,"sort_order":62},"👩‍🦱":{"category":"People & Body","sheet_x":19,"sheet_y":14,"sort_order":64},"👩‍🦲":{"category":"People & Body","sheet_x":19,"sheet_y":20,"sort_order":68},"👩‍🦳":{"category":"People & Body","sheet_x":19,"sheet_y":26,"sort_order":66},"👩‍🦼":{"category":"People & Body","sheet_x":19,"sheet_y":32,"sort_order":226},"👩‍🦽":{"category":"People & Body","sheet_x":19,"sheet_y":38,"sort_order":229},"👩‍⚕️":{"category":"People & Body","sheet_x":19,"sheet_y":44,"sort_order":107},"👩‍⚖️":{"category":"People & Body","sheet_x":19,"sheet_y":50,"sort_order":116},"👩‍✈️":{"category":"People & Body","sheet_x":19,"sheet_y":56,"sort_order":146},"👩‍❤️‍👨":{"category":"People & Body","sheet_x":20,"sheet_y":5,"sort_order":302},"👩‍❤️‍👩":{"category":"People & Body","sheet_x":20,"sheet_y":6,"sort_order":304},"👩‍❤️‍💋‍👨":{"category":"People & Body","sheet_x":20,"sheet_y":7,"sort_order":298},"👩‍❤️‍💋‍👩":{"category":"People & Body","sheet_x":20,"sheet_y":8,"sort_order":300},"👩":{"category":"People & Body","sheet_x":20,"sheet_y":9,"sort_order":61},"👪":{"category":"People & Body","sheet_x":20,"sheet_y":15,"sort_order":305},"👫":{"category":"People & Body","sheet_x":20,"sheet_y":16,"sort_order":295},"👬":{"category":"People & Body","sheet_x":20,"sheet_y":42,"sort_order":296},"👭":{"category":"People & Body","sheet_x":21,"sheet_y":11,"sort_order":294},"👮‍♀️":{"category":"People & Body","sheet_x":21,"sheet_y":37,"sort_order":155},"👮‍♂️":{"category":"People & Body","sheet_x":21,"sheet_y":43,"sort_order":154},"👮":{"category":"People & Body","sheet_x":21,"sheet_y":49,"sort_order":153},"👯‍♀️":{"category":"People & Body","sheet_x":21,"sheet_y":55,"sort_order":238},"👯‍♂️":{"category":"People & Body","sheet_x":21,"sheet_y":56,"sort_order":237},"👯":{"category":"People & Body","sheet_x":22,"sheet_y":0,"sort_order":236},"👰":{"category":"People & Body","sheet_x":22,"sheet_y":1,"sort_order":173},"👱‍♀️":{"category":"People & Body","sheet_x":22,"sheet_y":7,"sort_order":70},"👱‍♂️":{"category":"People & Body","sheet_x":22,"sheet_y":13,"sort_order":71},"👱":{"category":"People & Body","sheet_x":22,"sheet_y":19,"sort_order":54},"👲":{"category":"People & Body","sheet_x":22,"sheet_y":25,"sort_order":170},"👳‍♀️":{"category":"People & Body","sheet_x":22,"sheet_y":31,"sort_order":169},"👳‍♂️":{"category":"People & Body","sheet_x":22,"sheet_y":37,"sort_order":168},"👳":{"category":"People & Body","sheet_x":22,"sheet_y":43,"sort_order":167},"👴":{"category":"People & Body","sheet_x":22,"sheet_y":49,"sort_order":73},"👵":{"category":"People & Body","sheet_x":22,"sheet_y":55,"sort_order":74},"👶":{"category":"People & Body","sheet_x":23,"sheet_y":4,"sort_order":49},"👷‍♀️":{"category":"People & Body","sheet_x":23,"sheet_y":10,"sort_order":164},"👷‍♂️":{"category":"People & Body","sheet_x":23,"sheet_y":16,"sort_order":163},"👷":{"category":"People & Body","sheet_x":23,"sheet_y":22,"sort_order":162},"👸":{"category":"People & Body","sheet_x":23,"sheet_y":28,"sort_order":166},"👹":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":34,"sort_order":97},"👺":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":35,"sort_order":98},"👻":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":36,"sort_order":99},"👼":{"category":"People & Body","sheet_x":23,"sheet_y":37,"sort_order":176},"👽":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":43,"sort_order":100},"👾":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":44,"sort_order":101},"👿":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":45,"sort_order":92},"💀":{"category":"Smileys & Emotion","sheet_x":23,"sheet_y":46,"sort_order":93},"💁‍♀️":{"category":"People & Body","sheet_x":23,"sheet_y":47,"sort_order":89},"💁‍♂️":{"category":"People & Body","sheet_x":23,"sheet_y":53,"sort_order":88},"💁":{"category":"People & Body","sheet_x":24,"sheet_y":2,"sort_order":87},"💂‍♀️":{"category":"People & Body","sheet_x":24,"sheet_y":8,"sort_order":161},"💂‍♂️":{"category":"People & Body","sheet_x":24,"sheet_y":14,"sort_order":160},"💂":{"category":"People & Body","sheet_x":24,"sheet_y":20,"sort_order":159},"💃":{"category":"People & Body","sheet_x":24,"sheet_y":26,"sort_order":233},"💄":{"category":"Objects","sheet_x":24,"sheet_y":32,"sort_order":41},"💅":{"category":"People & Body","sheet_x":24,"sheet_y":33,"sort_order":32},"💆‍♀️":{"category":"People & Body","sheet_x":24,"sheet_y":39,"sort_order":208},"💆‍♂️":{"category":"People & Body","sheet_x":24,"sheet_y":45,"sort_order":207},"💆":{"category":"People & Body","sheet_x":24,"sheet_y":51,"sort_order":206},"💇‍♀️":{"category":"People & Body","sheet_x":25,"sheet_y":0,"sort_order":211},"💇‍♂️":{"category":"People & Body","sheet_x":25,"sheet_y":6,"sort_order":210},"💇":{"category":"People & Body","sheet_x":25,"sheet_y":12,"sort_order":209},"💈":{"category":"Travel & Places","sheet_x":25,"sheet_y":18,"sort_order":61},"💉":{"category":"Objects","sheet_x":25,"sheet_y":19,"sort_order":208},"💊":{"category":"Objects","sheet_x":25,"sheet_y":20,"sort_order":210},"💋":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":21,"sort_order":115},"💌":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":22,"sort_order":116},"💍":{"category":"Objects","sheet_x":25,"sheet_y":23,"sort_order":42},"💎":{"category":"Objects","sheet_x":25,"sheet_y":24,"sort_order":43},"💏":{"category":"People & Body","sheet_x":25,"sheet_y":25,"sort_order":297},"💐":{"category":"Animals & Nature","sheet_x":25,"sheet_y":26,"sort_order":106},"💑":{"category":"People & Body","sheet_x":25,"sheet_y":27,"sort_order":301},"💒":{"category":"Travel & Places","sheet_x":25,"sheet_y":28,"sort_order":38},"💓":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":29,"sort_order":121},"💔":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":30,"sort_order":126},"💕":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":31,"sort_order":123},"💖":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":32,"sort_order":119},"💗":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":33,"sort_order":120},"💘":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":34,"sort_order":117},"💙":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":35,"sort_order":131},"💚":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":36,"sort_order":130},"💛":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":37,"sort_order":129},"💜":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":38,"sort_order":132},"💝":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":39,"sort_order":118},"💞":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":40,"sort_order":122},"💟":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":41,"sort_order":124},"💠":{"category":"Symbols","sheet_x":25,"sheet_y":42,"sort_order":214},"💡":{"category":"Objects","sheet_x":25,"sheet_y":43,"sort_order":100},"💢":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":44,"sort_order":137},"💣":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":45,"sort_order":143},"💤":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":46,"sort_order":149},"💥":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":47,"sort_order":138},"💦":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":48,"sort_order":140},"💧":{"category":"Travel & Places","sheet_x":25,"sheet_y":49,"sort_order":209},"💨":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":50,"sort_order":141},"💩":{"category":"Smileys & Emotion","sheet_x":25,"sheet_y":51,"sort_order":95},"💪":{"category":"People & Body","sheet_x":25,"sheet_y":52,"sort_order":34},"💫":{"category":"Smileys & Emotion","sheet_x":26,"sheet_y":1,"sort_order":139},"💬":{"category":"Smileys & Emotion","sheet_x":26,"sheet_y":2,"sort_order":144},"💭":{"category":"Smileys & Emotion","sheet_x":26,"sheet_y":3,"sort_order":148},"💮":{"category":"Animals & Nature","sheet_x":26,"sheet_y":4,"sort_order":108},"💯":{"category":"Smileys & Emotion","sheet_x":26,"sheet_y":5,"sort_order":136},"💰":{"category":"Objects","sheet_x":26,"sheet_y":6,"sort_order":121},"💱":{"category":"Objects","sheet_x":26,"sheet_y":7,"sort_order":130},"💲":{"category":"Objects","sheet_x":26,"sheet_y":8,"sort_order":131},"💳":{"category":"Objects","sheet_x":26,"sheet_y":9,"sort_order":127},"💴":{"category":"Objects","sheet_x":26,"sheet_y":10,"sort_order":122},"💵":{"category":"Objects","sheet_x":26,"sheet_y":11,"sort_order":123},"💶":{"category":"Objects","sheet_x":26,"sheet_y":12,"sort_order":124},"💷":{"category":"Objects","sheet_x":26,"sheet_y":13,"sort_order":125},"💸":{"category":"Objects","sheet_x":26,"sheet_y":14,"sort_order":126},"💹":{"category":"Objects","sheet_x":26,"sheet_y":15,"sort_order":129},"💺":{"category":"Travel & Places","sheet_x":26,"sheet_y":16,"sort_order":123},"💻":{"category":"Objects","sheet_x":26,"sheet_y":17,"sort_order":77},"💼":{"category":"Objects","sheet_x":26,"sheet_y":18,"sort_order":152},"💽":{"category":"Objects","sheet_x":26,"sheet_y":19,"sort_order":83},"💾":{"category":"Objects","sheet_x":26,"sheet_y":20,"sort_order":84},"💿":{"category":"Objects","sheet_x":26,"sheet_y":21,"sort_order":85},"📀":{"category":"Objects","sheet_x":26,"sheet_y":22,"sort_order":86},"📁":{"category":"Objects","sheet_x":26,"sheet_y":23,"sort_order":153},"📂":{"category":"Objects","sheet_x":26,"sheet_y":24,"sort_order":154},"📃":{"category":"Objects","sheet_x":26,"sheet_y":25,"sort_order":113},"📄":{"category":"Objects","sheet_x":26,"sheet_y":26,"sort_order":115},"📅":{"category":"Objects","sheet_x":26,"sheet_y":27,"sort_order":156},"📆":{"category":"Objects","sheet_x":26,"sheet_y":28,"sort_order":157},"📇":{"category":"Objects","sheet_x":26,"sheet_y":29,"sort_order":160},"📈":{"category":"Objects","sheet_x":26,"sheet_y":30,"sort_order":161},"📉":{"category":"Objects","sheet_x":26,"sheet_y":31,"sort_order":162},"📊":{"category":"Objects","sheet_x":26,"sheet_y":32,"sort_order":163},"📋":{"category":"Objects","sheet_x":26,"sheet_y":33,"sort_order":164},"📌":{"category":"Objects","sheet_x":26,"sheet_y":34,"sort_order":165},"📍":{"category":"Objects","sheet_x":26,"sheet_y":35,"sort_order":166},"📎":{"category":"Objects","sheet_x":26,"sheet_y":36,"sort_order":167},"📏":{"category":"Objects","sheet_x":26,"sheet_y":37,"sort_order":169},"📐":{"category":"Objects","sheet_x":26,"sheet_y":38,"sort_order":170},"📑":{"category":"Objects","sheet_x":26,"sheet_y":39,"sort_order":118},"📒":{"category":"Objects","sheet_x":26,"sheet_y":40,"sort_order":112},"📓":{"category":"Objects","sheet_x":26,"sheet_y":41,"sort_order":111},"📔":{"category":"Objects","sheet_x":26,"sheet_y":42,"sort_order":104},"📕":{"category":"Objects","sheet_x":26,"sheet_y":43,"sort_order":105},"📖":{"category":"Objects","sheet_x":26,"sheet_y":44,"sort_order":106},"📗":{"category":"Objects","sheet_x":26,"sheet_y":45,"sort_order":107},"📘":{"category":"Objects","sheet_x":26,"sheet_y":46,"sort_order":108},"📙":{"category":"Objects","sheet_x":26,"sheet_y":47,"sort_order":109},"📚":{"category":"Objects","sheet_x":26,"sheet_y":48,"sort_order":110},"📛":{"category":"Symbols","sheet_x":26,"sheet_y":49,"sort_order":104},"📜":{"category":"Objects","sheet_x":26,"sheet_y":50,"sort_order":114},"📝":{"category":"Objects","sheet_x":26,"sheet_y":51,"sort_order":151},"📞":{"category":"Objects","sheet_x":26,"sheet_y":52,"sort_order":72},"📟":{"category":"Objects","sheet_x":26,"sheet_y":53,"sort_order":73},"📠":{"category":"Objects","sheet_x":26,"sheet_y":54,"sort_order":74},"📡":{"category":"Objects","sheet_x":26,"sheet_y":55,"sort_order":207},"📢":{"category":"Objects","sheet_x":26,"sheet_y":56,"sort_order":48},"📣":{"category":"Objects","sheet_x":27,"sheet_y":0,"sort_order":49},"📤":{"category":"Objects","sheet_x":27,"sheet_y":1,"sort_order":136},"📥":{"category":"Objects","sheet_x":27,"sheet_y":2,"sort_order":137},"📦":{"category":"Objects","sheet_x":27,"sheet_y":3,"sort_order":138},"📧":{"category":"Objects","sheet_x":27,"sheet_y":4,"sort_order":133},"📨":{"category":"Objects","sheet_x":27,"sheet_y":5,"sort_order":134},"📩":{"category":"Objects","sheet_x":27,"sheet_y":6,"sort_order":135},"📪":{"category":"Objects","sheet_x":27,"sheet_y":7,"sort_order":140},"📫":{"category":"Objects","sheet_x":27,"sheet_y":8,"sort_order":139},"📬":{"category":"Objects","sheet_x":27,"sheet_y":9,"sort_order":141},"📭":{"category":"Objects","sheet_x":27,"sheet_y":10,"sort_order":142},"📮":{"category":"Objects","sheet_x":27,"sheet_y":11,"sort_order":143},"📯":{"category":"Objects","sheet_x":27,"sheet_y":12,"sort_order":50},"📰":{"category":"Objects","sheet_x":27,"sheet_y":13,"sort_order":116},"📱":{"category":"Objects","sheet_x":27,"sheet_y":14,"sort_order":69},"📲":{"category":"Objects","sheet_x":27,"sheet_y":15,"sort_order":70},"📳":{"category":"Symbols","sheet_x":27,"sheet_y":16,"sort_order":95},"📴":{"category":"Symbols","sheet_x":27,"sheet_y":17,"sort_order":96},"📵":{"category":"Symbols","sheet_x":27,"sheet_y":18,"sort_order":23},"📶":{"category":"Symbols","sheet_x":27,"sheet_y":19,"sort_order":94},"📷":{"category":"Objects","sheet_x":27,"sheet_y":20,"sort_order":93},"📸":{"category":"Objects","sheet_x":27,"sheet_y":21,"sort_order":94},"📹":{"category":"Objects","sheet_x":27,"sheet_y":22,"sort_order":95},"📺":{"category":"Objects","sheet_x":27,"sheet_y":23,"sort_order":92},"📻":{"category":"Objects","sheet_x":27,"sheet_y":24,"sort_order":61},"📼":{"category":"Objects","sheet_x":27,"sheet_y":25,"sort_order":96},"📽️":{"category":"Objects","sheet_x":27,"sheet_y":26,"sort_order":90},"📿":{"category":"Objects","sheet_x":27,"sheet_y":27,"sort_order":40},"🔀":{"category":"Symbols","sheet_x":27,"sheet_y":28,"sort_order":73},"🔁":{"category":"Symbols","sheet_x":27,"sheet_y":29,"sort_order":74},"🔂":{"category":"Symbols","sheet_x":27,"sheet_y":30,"sort_order":75},"🔃":{"category":"Symbols","sheet_x":27,"sheet_y":31,"sort_order":41},"🔄":{"category":"Symbols","sheet_x":27,"sheet_y":32,"sort_order":42},"🔅":{"category":"Symbols","sheet_x":27,"sheet_y":33,"sort_order":92},"🔆":{"category":"Symbols","sheet_x":27,"sheet_y":34,"sort_order":93},"🔇":{"category":"Objects","sheet_x":27,"sheet_y":35,"sort_order":44},"🔈":{"category":"Objects","sheet_x":27,"sheet_y":36,"sort_order":45},"🔉":{"category":"Objects","sheet_x":27,"sheet_y":37,"sort_order":46},"🔊":{"category":"Objects","sheet_x":27,"sheet_y":38,"sort_order":47},"🔋":{"category":"Objects","sheet_x":27,"sheet_y":39,"sort_order":75},"🔌":{"category":"Objects","sheet_x":27,"sheet_y":40,"sort_order":76},"🔍":{"category":"Objects","sheet_x":27,"sheet_y":41,"sort_order":97},"🔎":{"category":"Objects","sheet_x":27,"sheet_y":42,"sort_order":98},"🔏":{"category":"Objects","sheet_x":27,"sheet_y":43,"sort_order":177},"🔐":{"category":"Objects","sheet_x":27,"sheet_y":44,"sort_order":178},"🔑":{"category":"Objects","sheet_x":27,"sheet_y":45,"sort_order":179},"🔒":{"category":"Objects","sheet_x":27,"sheet_y":46,"sort_order":175},"🔓":{"category":"Objects","sheet_x":27,"sheet_y":47,"sort_order":176},"🔔":{"category":"Objects","sheet_x":27,"sheet_y":48,"sort_order":51},"🔕":{"category":"Objects","sheet_x":27,"sheet_y":49,"sort_order":52},"🔖":{"category":"Objects","sheet_x":27,"sheet_y":50,"sort_order":119},"🔗":{"category":"Objects","sheet_x":27,"sheet_y":51,"sort_order":197},"🔘":{"category":"Symbols","sheet_x":27,"sheet_y":52,"sort_order":215},"🔙":{"category":"Symbols","sheet_x":27,"sheet_y":53,"sort_order":43},"🔚":{"category":"Symbols","sheet_x":27,"sheet_y":54,"sort_order":44},"🔛":{"category":"Symbols","sheet_x":27,"sheet_y":55,"sort_order":45},"🔜":{"category":"Symbols","sheet_x":27,"sheet_y":56,"sort_order":46},"🔝":{"category":"Symbols","sheet_x":28,"sheet_y":0,"sort_order":47},"🔞":{"category":"Symbols","sheet_x":28,"sheet_y":1,"sort_order":24},"🔟":{"category":"Symbols","sheet_x":28,"sheet_y":2,"sort_order":144},"🔠":{"category":"Symbols","sheet_x":28,"sheet_y":3,"sort_order":145},"🔡":{"category":"Symbols","sheet_x":28,"sheet_y":4,"sort_order":146},"🔢":{"category":"Symbols","sheet_x":28,"sheet_y":5,"sort_order":147},"🔣":{"category":"Symbols","sheet_x":28,"sheet_y":6,"sort_order":148},"🔤":{"category":"Symbols","sheet_x":28,"sheet_y":7,"sort_order":149},"🔥":{"category":"Travel & Places","sheet_x":28,"sheet_y":8,"sort_order":208},"🔦":{"category":"Objects","sheet_x":28,"sheet_y":9,"sort_order":101},"🔧":{"category":"Objects","sheet_x":28,"sheet_y":10,"sort_order":191},"🔨":{"category":"Objects","sheet_x":28,"sheet_y":11,"sort_order":181},"🔩":{"category":"Objects","sheet_x":28,"sheet_y":12,"sort_order":192},"🔪":{"category":"Food & Drink","sheet_x":28,"sheet_y":13,"sort_order":120},"🔫":{"category":"Objects","sheet_x":28,"sheet_y":14,"sort_order":188},"🔬":{"category":"Objects","sheet_x":28,"sheet_y":15,"sort_order":205},"🔭":{"category":"Objects","sheet_x":28,"sheet_y":16,"sort_order":206},"🔮":{"category":"Activities","sheet_x":28,"sheet_y":17,"sort_order":59},"🔯":{"category":"Symbols","sheet_x":28,"sheet_y":18,"sort_order":59},"🔰":{"category":"Symbols","sheet_x":28,"sheet_y":19,"sort_order":105},"🔱":{"category":"Symbols","sheet_x":28,"sheet_y":20,"sort_order":103},"🔲":{"category":"Symbols","sheet_x":28,"sheet_y":21,"sort_order":217},"🔳":{"category":"Symbols","sheet_x":28,"sheet_y":22,"sort_order":216},"🔴":{"category":"Symbols","sheet_x":28,"sheet_y":23,"sort_order":184},"🔵":{"category":"Symbols","sheet_x":28,"sheet_y":24,"sort_order":188},"🔶":{"category":"Symbols","sheet_x":28,"sheet_y":25,"sort_order":208},"🔷":{"category":"Symbols","sheet_x":28,"sheet_y":26,"sort_order":209},"🔸":{"category":"Symbols","sheet_x":28,"sheet_y":27,"sort_order":210},"🔹":{"category":"Symbols","sheet_x":28,"sheet_y":28,"sort_order":211},"🔺":{"category":"Symbols","sheet_x":28,"sheet_y":29,"sort_order":212},"🔻":{"category":"Symbols","sheet_x":28,"sheet_y":30,"sort_order":213},"🔼":{"category":"Symbols","sheet_x":28,"sheet_y":31,"sort_order":83},"🔽":{"category":"Symbols","sheet_x":28,"sheet_y":32,"sort_order":85},"🕉️":{"category":"Symbols","sheet_x":28,"sheet_y":33,"sort_order":50},"🕊️":{"category":"Animals & Nature","sheet_x":28,"sheet_y":34,"sort_order":68},"🕋":{"category":"Travel & Places","sheet_x":28,"sheet_y":35,"sort_order":46},"🕌":{"category":"Travel & Places","sheet_x":28,"sheet_y":36,"sort_order":42},"🕍":{"category":"Travel & Places","sheet_x":28,"sheet_y":37,"sort_order":44},"🕎":{"category":"Symbols","sheet_x":28,"sheet_y":38,"sort_order":58},"🕐":{"category":"Travel & Places","sheet_x":28,"sheet_y":39,"sort_order":142},"🕑":{"category":"Travel & Places","sheet_x":28,"sheet_y":40,"sort_order":144},"🕒":{"category":"Travel & Places","sheet_x":28,"sheet_y":41,"sort_order":146},"🕓":{"category":"Travel & Places","sheet_x":28,"sheet_y":42,"sort_order":148},"🕔":{"category":"Travel & Places","sheet_x":28,"sheet_y":43,"sort_order":150},"🕕":{"category":"Travel & Places","sheet_x":28,"sheet_y":44,"sort_order":152},"🕖":{"category":"Travel & Places","sheet_x":28,"sheet_y":45,"sort_order":154},"🕗":{"category":"Travel & Places","sheet_x":28,"sheet_y":46,"sort_order":156},"🕘":{"category":"Travel & Places","sheet_x":28,"sheet_y":47,"sort_order":158},"🕙":{"category":"Travel & Places","sheet_x":28,"sheet_y":48,"sort_order":160},"🕚":{"category":"Travel & Places","sheet_x":28,"sheet_y":49,"sort_order":162},"🕛":{"category":"Travel & Places","sheet_x":28,"sheet_y":50,"sort_order":140},"🕜":{"category":"Travel & Places","sheet_x":28,"sheet_y":51,"sort_order":143},"🕝":{"category":"Travel & Places","sheet_x":28,"sheet_y":52,"sort_order":145},"🕞":{"category":"Travel & Places","sheet_x":28,"sheet_y":53,"sort_order":147},"🕟":{"category":"Travel & Places","sheet_x":28,"sheet_y":54,"sort_order":149},"🕠":{"category":"Travel & Places","sheet_x":28,"sheet_y":55,"sort_order":151},"🕡":{"category":"Travel & Places","sheet_x":28,"sheet_y":56,"sort_order":153},"🕢":{"category":"Travel & Places","sheet_x":29,"sheet_y":0,"sort_order":155},"🕣":{"category":"Travel & Places","sheet_x":29,"sheet_y":1,"sort_order":157},"🕤":{"category":"Travel & Places","sheet_x":29,"sheet_y":2,"sort_order":159},"🕥":{"category":"Travel & Places","sheet_x":29,"sheet_y":3,"sort_order":161},"🕦":{"category":"Travel & Places","sheet_x":29,"sheet_y":4,"sort_order":163},"🕧":{"category":"Travel & Places","sheet_x":29,"sheet_y":5,"sort_order":141},"🕯️":{"category":"Objects","sheet_x":29,"sheet_y":6,"sort_order":99},"🕰️":{"category":"Travel & Places","sheet_x":29,"sheet_y":7,"sort_order":139},"🕳️":{"category":"Smileys & Emotion","sheet_x":29,"sheet_y":8,"sort_order":142},"🕴️":{"category":"People & Body","sheet_x":29,"sheet_y":9,"sort_order":235},"🕵️‍♀️":{"category":"People & Body","sheet_x":29,"sheet_y":15,"sort_order":158},"🕵️‍♂️":{"category":"People & Body","sheet_x":29,"sheet_y":21,"sort_order":157},"🕵️":{"category":"People & Body","sheet_x":29,"sheet_y":27,"sort_order":156},"🕶️":{"category":"Objects","sheet_x":29,"sheet_y":33,"sort_order":2},"🕷️":{"category":"Animals & Nature","sheet_x":29,"sheet_y":34,"sort_order":101},"🕸️":{"category":"Animals & Nature","sheet_x":29,"sheet_y":35,"sort_order":102},"🕹️":{"category":"Activities","sheet_x":29,"sheet_y":36,"sort_order":62},"🕺":{"category":"People & Body","sheet_x":29,"sheet_y":37,"sort_order":234},"🖇️":{"category":"Objects","sheet_x":29,"sheet_y":43,"sort_order":168},"🖊️":{"category":"Objects","sheet_x":29,"sheet_y":44,"sort_order":148},"🖋️":{"category":"Objects","sheet_x":29,"sheet_y":45,"sort_order":147},"🖌️":{"category":"Objects","sheet_x":29,"sheet_y":46,"sort_order":149},"🖍️":{"category":"Objects","sheet_x":29,"sheet_y":47,"sort_order":150},"🖐️":{"category":"People & Body","sheet_x":29,"sheet_y":48,"sort_order":3},"🖕":{"category":"People & Body","sheet_x":29,"sheet_y":54,"sort_order":16},"🖖":{"category":"People & Body","sheet_x":30,"sheet_y":3,"sort_order":5},"🖤":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":9,"sort_order":134},"🖥️":{"category":"Objects","sheet_x":30,"sheet_y":10,"sort_order":78},"🖨️":{"category":"Objects","sheet_x":30,"sheet_y":11,"sort_order":79},"🖱️":{"category":"Objects","sheet_x":30,"sheet_y":12,"sort_order":81},"🖲️":{"category":"Objects","sheet_x":30,"sheet_y":13,"sort_order":82},"🖼️":{"category":"Activities","sheet_x":30,"sheet_y":14,"sort_order":76},"🗂️":{"category":"Objects","sheet_x":30,"sheet_y":15,"sort_order":155},"🗃️":{"category":"Objects","sheet_x":30,"sheet_y":16,"sort_order":172},"🗄️":{"category":"Objects","sheet_x":30,"sheet_y":17,"sort_order":173},"🗑️":{"category":"Objects","sheet_x":30,"sheet_y":18,"sort_order":174},"🗒️":{"category":"Objects","sheet_x":30,"sheet_y":19,"sort_order":158},"🗓️":{"category":"Objects","sheet_x":30,"sheet_y":20,"sort_order":159},"🗜️":{"category":"Objects","sheet_x":30,"sheet_y":21,"sort_order":194},"🗝️":{"category":"Objects","sheet_x":30,"sheet_y":22,"sort_order":180},"🗞️":{"category":"Objects","sheet_x":30,"sheet_y":23,"sort_order":117},"🗡️":{"category":"Objects","sheet_x":30,"sheet_y":24,"sort_order":186},"🗣️":{"category":"People & Body","sheet_x":30,"sheet_y":25,"sort_order":331},"🗨️":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":26,"sort_order":146},"🗯️":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":27,"sort_order":147},"🗳️":{"category":"Objects","sheet_x":30,"sheet_y":28,"sort_order":144},"🗺️":{"category":"Travel & Places","sheet_x":30,"sheet_y":29,"sort_order":5},"🗻":{"category":"Travel & Places","sheet_x":30,"sheet_y":30,"sort_order":11},"🗼":{"category":"Travel & Places","sheet_x":30,"sheet_y":31,"sort_order":39},"🗽":{"category":"Travel & Places","sheet_x":30,"sheet_y":32,"sort_order":40},"🗾":{"category":"Travel & Places","sheet_x":30,"sheet_y":33,"sort_order":6},"🗿":{"category":"Objects","sheet_x":30,"sheet_y":34,"sort_order":233},"😀":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":35,"sort_order":1},"😁":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":36,"sort_order":4},"😂":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":37,"sort_order":8},"😃":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":38,"sort_order":2},"😄":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":39,"sort_order":3},"😅":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":40,"sort_order":6},"😆":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":41,"sort_order":5},"😇":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":42,"sort_order":13},"😈":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":43,"sort_order":91},"😉":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":44,"sort_order":11},"😊":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":45,"sort_order":12},"😋":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":46,"sort_order":22},"😌":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":47,"sort_order":42},"😍":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":48,"sort_order":15},"😎":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":49,"sort_order":60},"😏":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":50,"sort_order":37},"😐":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":51,"sort_order":34},"😑":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":52,"sort_order":35},"😒":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":53,"sort_order":38},"😓":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":54,"sort_order":83},"😔":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":55,"sort_order":43},"😕":{"category":"Smileys & Emotion","sheet_x":30,"sheet_y":56,"sort_order":63},"😖":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":0,"sort_order":80},"😗":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":1,"sort_order":18},"😘":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":2,"sort_order":17},"😙":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":3,"sort_order":21},"😚":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":4,"sort_order":20},"😛":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":5,"sort_order":23},"😜":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":6,"sort_order":24},"😝":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":7,"sort_order":26},"😞":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":8,"sort_order":82},"😟":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":9,"sort_order":64},"😠":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":10,"sort_order":89},"😡":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":11,"sort_order":88},"😢":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":12,"sort_order":77},"😣":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":13,"sort_order":81},"😤":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":14,"sort_order":87},"😥":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":15,"sort_order":76},"😦":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":16,"sort_order":72},"😧":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":17,"sort_order":73},"😨":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":18,"sort_order":74},"😩":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":19,"sort_order":84},"😪":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":20,"sort_order":44},"😫":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":21,"sort_order":85},"😬":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":22,"sort_order":40},"😭":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":23,"sort_order":78},"😮":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":24,"sort_order":67},"😯":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":25,"sort_order":68},"😰":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":26,"sort_order":75},"😱":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":27,"sort_order":79},"😲":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":28,"sort_order":69},"😳":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":29,"sort_order":70},"😴":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":30,"sort_order":46},"😵":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":31,"sort_order":56},"😶":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":32,"sort_order":36},"😷":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":33,"sort_order":47},"😸":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":34,"sort_order":104},"😹":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":35,"sort_order":105},"😺":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":36,"sort_order":103},"😻":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":37,"sort_order":106},"😼":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":38,"sort_order":107},"😽":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":39,"sort_order":108},"😾":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":40,"sort_order":111},"😿":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":41,"sort_order":110},"🙀":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":42,"sort_order":109},"🙁":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":43,"sort_order":65},"🙂":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":44,"sort_order":9},"🙃":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":45,"sort_order":10},"🙄":{"category":"Smileys & Emotion","sheet_x":31,"sheet_y":46,"sort_order":39},"🙅‍♀️":{"category":"People & Body","sheet_x":31,"sheet_y":47,"sort_order":83},"🙅‍♂️":{"category":"People & Body","sheet_x":31,"sheet_y":53,"sort_order":82},"🙅":{"category":"People & Body","sheet_x":32,"sheet_y":2,"sort_order":81},"🙆‍♀️":{"category":"People & Body","sheet_x":32,"sheet_y":8,"sort_order":86},"🙆‍♂️":{"category":"People & Body","sheet_x":32,"sheet_y":14,"sort_order":85},"🙆":{"category":"People & Body","sheet_x":32,"sheet_y":20,"sort_order":84},"🙇‍♀️":{"category":"People & Body","sheet_x":32,"sheet_y":26,"sort_order":98},"🙇‍♂️":{"category":"People & Body","sheet_x":32,"sheet_y":32,"sort_order":97},"🙇":{"category":"People & Body","sheet_x":32,"sheet_y":38,"sort_order":96},"🙈":{"category":"Smileys & Emotion","sheet_x":32,"sheet_y":44,"sort_order":112},"🙉":{"category":"Smileys & Emotion","sheet_x":32,"sheet_y":45,"sort_order":113},"🙊":{"category":"Smileys & Emotion","sheet_x":32,"sheet_y":46,"sort_order":114},"🙋‍♀️":{"category":"People & Body","sheet_x":32,"sheet_y":47,"sort_order":92},"🙋‍♂️":{"category":"People & Body","sheet_x":32,"sheet_y":53,"sort_order":91},"🙋":{"category":"People & Body","sheet_x":33,"sheet_y":2,"sort_order":90},"🙌":{"category":"People & Body","sheet_x":33,"sheet_y":8,"sort_order":26},"🙍‍♀️":{"category":"People & Body","sheet_x":33,"sheet_y":14,"sort_order":77},"🙍‍♂️":{"category":"People & Body","sheet_x":33,"sheet_y":20,"sort_order":76},"🙍":{"category":"People & Body","sheet_x":33,"sheet_y":26,"sort_order":75},"🙎‍♀️":{"category":"People & Body","sheet_x":33,"sheet_y":32,"sort_order":80},"🙎‍♂️":{"category":"People & Body","sheet_x":33,"sheet_y":38,"sort_order":79},"🙎":{"category":"People & Body","sheet_x":33,"sheet_y":44,"sort_order":78},"🙏":{"category":"People & Body","sheet_x":33,"sheet_y":50,"sort_order":30},"🚀":{"category":"Travel & Places","sheet_x":33,"sheet_y":56,"sort_order":129},"🚁":{"category":"Travel & Places","sheet_x":34,"sheet_y":0,"sort_order":124},"🚂":{"category":"Travel & Places","sheet_x":34,"sheet_y":1,"sort_order":63},"🚃":{"category":"Travel & Places","sheet_x":34,"sheet_y":2,"sort_order":64},"🚄":{"category":"Travel & Places","sheet_x":34,"sheet_y":3,"sort_order":65},"🚅":{"category":"Travel & Places","sheet_x":34,"sheet_y":4,"sort_order":66},"🚆":{"category":"Travel & Places","sheet_x":34,"sheet_y":5,"sort_order":67},"🚇":{"category":"Travel & Places","sheet_x":34,"sheet_y":6,"sort_order":68},"🚈":{"category":"Travel & Places","sheet_x":34,"sheet_y":7,"sort_order":69},"🚉":{"category":"Travel & Places","sheet_x":34,"sheet_y":8,"sort_order":70},"🚊":{"category":"Travel & Places","sheet_x":34,"sheet_y":9,"sort_order":71},"🚋":{"category":"Travel & Places","sheet_x":34,"sheet_y":10,"sort_order":74},"🚌":{"category":"Travel & Places","sheet_x":34,"sheet_y":11,"sort_order":75},"🚍":{"category":"Travel & Places","sheet_x":34,"sheet_y":12,"sort_order":76},"🚎":{"category":"Travel & Places","sheet_x":34,"sheet_y":13,"sort_order":77},"🚏":{"category":"Travel & Places","sheet_x":34,"sheet_y":14,"sort_order":100},"🚐":{"category":"Travel & Places","sheet_x":34,"sheet_y":15,"sort_order":78},"🚑":{"category":"Travel & Places","sheet_x":34,"sheet_y":16,"sort_order":79},"🚒":{"category":"Travel & Places","sheet_x":34,"sheet_y":17,"sort_order":80},"🚓":{"category":"Travel & Places","sheet_x":34,"sheet_y":18,"sort_order":81},"🚔":{"category":"Travel & Places","sheet_x":34,"sheet_y":19,"sort_order":82},"🚕":{"category":"Travel & Places","sheet_x":34,"sheet_y":20,"sort_order":83},"🚖":{"category":"Travel & Places","sheet_x":34,"sheet_y":21,"sort_order":84},"🚗":{"category":"Travel & Places","sheet_x":34,"sheet_y":22,"sort_order":85},"🚘":{"category":"Travel & Places","sheet_x":34,"sheet_y":23,"sort_order":86},"🚙":{"category":"Travel & Places","sheet_x":34,"sheet_y":24,"sort_order":87},"🚚":{"category":"Travel & Places","sheet_x":34,"sheet_y":25,"sort_order":88},"🚛":{"category":"Travel & Places","sheet_x":34,"sheet_y":26,"sort_order":89},"🚜":{"category":"Travel & Places","sheet_x":34,"sheet_y":27,"sort_order":90},"🚝":{"category":"Travel & Places","sheet_x":34,"sheet_y":28,"sort_order":72},"🚞":{"category":"Travel & Places","sheet_x":34,"sheet_y":29,"sort_order":73},"🚟":{"category":"Travel & Places","sheet_x":34,"sheet_y":30,"sort_order":125},"🚠":{"category":"Travel & Places","sheet_x":34,"sheet_y":31,"sort_order":126},"🚡":{"category":"Travel & Places","sheet_x":34,"sheet_y":32,"sort_order":127},"🚢":{"category":"Travel & Places","sheet_x":34,"sheet_y":33,"sort_order":117},"🚣‍♀️":{"category":"People & Body","sheet_x":34,"sheet_y":34,"sort_order":257},"🚣‍♂️":{"category":"People & Body","sheet_x":34,"sheet_y":40,"sort_order":256},"🚣":{"category":"People & Body","sheet_x":34,"sheet_y":46,"sort_order":255},"🚤":{"category":"Travel & Places","sheet_x":34,"sheet_y":52,"sort_order":113},"🚥":{"category":"Travel & Places","sheet_x":34,"sheet_y":53,"sort_order":106},"🚦":{"category":"Travel & Places","sheet_x":34,"sheet_y":54,"sort_order":107},"🚧":{"category":"Travel & Places","sheet_x":34,"sheet_y":55,"sort_order":109},"🚨":{"category":"Travel & Places","sheet_x":34,"sheet_y":56,"sort_order":105},"🚩":{"category":"Flags","sheet_x":35,"sheet_y":0,"sort_order":2},"🚪":{"category":"Objects","sheet_x":35,"sheet_y":1,"sort_order":213},"🚫":{"category":"Symbols","sheet_x":35,"sheet_y":2,"sort_order":17},"🚬":{"category":"Objects","sheet_x":35,"sheet_y":3,"sort_order":230},"🚭":{"category":"Symbols","sheet_x":35,"sheet_y":4,"sort_order":19},"🚮":{"category":"Symbols","sheet_x":35,"sheet_y":5,"sort_order":2},"🚯":{"category":"Symbols","sheet_x":35,"sheet_y":6,"sort_order":20},"🚰":{"category":"Symbols","sheet_x":35,"sheet_y":7,"sort_order":3},"🚱":{"category":"Symbols","sheet_x":35,"sheet_y":8,"sort_order":21},"🚲":{"category":"Travel & Places","sheet_x":35,"sheet_y":9,"sort_order":97},"🚳":{"category":"Symbols","sheet_x":35,"sheet_y":10,"sort_order":18},"🚴‍♀️":{"category":"People & Body","sheet_x":35,"sheet_y":11,"sort_order":269},"🚴‍♂️":{"category":"People & Body","sheet_x":35,"sheet_y":17,"sort_order":268},"🚴":{"category":"People & Body","sheet_x":35,"sheet_y":23,"sort_order":267},"🚵‍♀️":{"category":"People & Body","sheet_x":35,"sheet_y":29,"sort_order":272},"🚵‍♂️":{"category":"People & Body","sheet_x":35,"sheet_y":35,"sort_order":271},"🚵":{"category":"People & Body","sheet_x":35,"sheet_y":41,"sort_order":270},"🚶‍♀️":{"category":"People & Body","sheet_x":35,"sheet_y":47,"sort_order":214},"🚶‍♂️":{"category":"People & Body","sheet_x":35,"sheet_y":53,"sort_order":213},"🚶":{"category":"People & Body","sheet_x":36,"sheet_y":2,"sort_order":212},"🚷":{"category":"Symbols","sheet_x":36,"sheet_y":8,"sort_order":22},"🚸":{"category":"Symbols","sheet_x":36,"sheet_y":9,"sort_order":15},"🚹":{"category":"Symbols","sheet_x":36,"sheet_y":10,"sort_order":5},"🚺":{"category":"Symbols","sheet_x":36,"sheet_y":11,"sort_order":6},"🚻":{"category":"Symbols","sheet_x":36,"sheet_y":12,"sort_order":7},"🚼":{"category":"Symbols","sheet_x":36,"sheet_y":13,"sort_order":8},"🚽":{"category":"Objects","sheet_x":36,"sheet_y":14,"sort_order":217},"🚾":{"category":"Symbols","sheet_x":36,"sheet_y":15,"sort_order":9},"🚿":{"category":"Objects","sheet_x":36,"sheet_y":16,"sort_order":218},"🛀":{"category":"People & Body","sheet_x":36,"sheet_y":17,"sort_order":291},"🛁":{"category":"Objects","sheet_x":36,"sheet_y":23,"sort_order":219},"🛂":{"category":"Symbols","sheet_x":36,"sheet_y":24,"sort_order":10},"🛃":{"category":"Symbols","sheet_x":36,"sheet_y":25,"sort_order":11},"🛄":{"category":"Symbols","sheet_x":36,"sheet_y":26,"sort_order":12},"🛅":{"category":"Symbols","sheet_x":36,"sheet_y":27,"sort_order":13},"🛋️":{"category":"Objects","sheet_x":36,"sheet_y":28,"sort_order":215},"🛌":{"category":"People & Body","sheet_x":36,"sheet_y":29,"sort_order":292},"🛍️":{"category":"Objects","sheet_x":36,"sheet_y":35,"sort_order":24},"🛎️":{"category":"Travel & Places","sheet_x":36,"sheet_y":36,"sort_order":131},"🛏️":{"category":"Objects","sheet_x":36,"sheet_y":37,"sort_order":214},"🛐":{"category":"Symbols","sheet_x":36,"sheet_y":38,"sort_order":48},"🛑":{"category":"Travel & Places","sheet_x":36,"sheet_y":39,"sort_order":108},"🛒":{"category":"Objects","sheet_x":36,"sheet_y":40,"sort_order":229},"🛕":{"category":"Travel & Places","sheet_x":36,"sheet_y":41,"sort_order":43},"🛠️":{"category":"Objects","sheet_x":36,"sheet_y":42,"sort_order":185},"🛡️":{"category":"Objects","sheet_x":36,"sheet_y":43,"sort_order":190},"🛢️":{"category":"Travel & Places","sheet_x":36,"sheet_y":44,"sort_order":103},"🛣️":{"category":"Travel & Places","sheet_x":36,"sheet_y":45,"sort_order":101},"🛤️":{"category":"Travel & Places","sheet_x":36,"sheet_y":46,"sort_order":102},"🛥️":{"category":"Travel & Places","sheet_x":36,"sheet_y":47,"sort_order":116},"🛩️":{"category":"Travel & Places","sheet_x":36,"sheet_y":48,"sort_order":119},"🛫":{"category":"Travel & Places","sheet_x":36,"sheet_y":49,"sort_order":120},"🛬":{"category":"Travel & Places","sheet_x":36,"sheet_y":50,"sort_order":121},"🛰️":{"category":"Travel & Places","sheet_x":36,"sheet_y":51,"sort_order":128},"🛳️":{"category":"Travel & Places","sheet_x":36,"sheet_y":52,"sort_order":114},"🛴":{"category":"Travel & Places","sheet_x":36,"sheet_y":53,"sort_order":98},"🛵":{"category":"Travel & Places","sheet_x":36,"sheet_y":54,"sort_order":93},"🛶":{"category":"Travel & Places","sheet_x":36,"sheet_y":55,"sort_order":112},"🛷":{"category":"Activities","sheet_x":36,"sheet_y":56,"sort_order":53},"🛸":{"category":"Travel & Places","sheet_x":37,"sheet_y":0,"sort_order":130},"🛹":{"category":"Travel & Places","sheet_x":37,"sheet_y":1,"sort_order":99},"🛺":{"category":"Travel & Places","sheet_x":37,"sheet_y":2,"sort_order":96},"🟠":{"category":"Symbols","sheet_x":37,"sheet_y":3,"sort_order":185},"🟡":{"category":"Symbols","sheet_x":37,"sheet_y":4,"sort_order":186},"🟢":{"category":"Symbols","sheet_x":37,"sheet_y":5,"sort_order":187},"🟣":{"category":"Symbols","sheet_x":37,"sheet_y":6,"sort_order":189},"🟤":{"category":"Symbols","sheet_x":37,"sheet_y":7,"sort_order":190},"🟥":{"category":"Symbols","sheet_x":37,"sheet_y":8,"sort_order":193},"🟦":{"category":"Symbols","sheet_x":37,"sheet_y":9,"sort_order":197},"🟧":{"category":"Symbols","sheet_x":37,"sheet_y":10,"sort_order":194},"🟨":{"category":"Symbols","sheet_x":37,"sheet_y":11,"sort_order":195},"🟩":{"category":"Symbols","sheet_x":37,"sheet_y":12,"sort_order":196},"🟪":{"category":"Symbols","sheet_x":37,"sheet_y":13,"sort_order":198},"🟫":{"category":"Symbols","sheet_x":37,"sheet_y":14,"sort_order":199},"🤍":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":15,"sort_order":135},"🤎":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":16,"sort_order":133},"🤏":{"category":"People & Body","sheet_x":37,"sheet_y":17,"sort_order":7},"🤐":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":23,"sort_order":32},"🤑":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":24,"sort_order":27},"🤒":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":25,"sort_order":48},"🤓":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":26,"sort_order":61},"🤔":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":27,"sort_order":31},"🤕":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":28,"sort_order":49},"🤖":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":29,"sort_order":102},"🤗":{"category":"Smileys & Emotion","sheet_x":37,"sheet_y":30,"sort_order":28},"🤘":{"category":"People & Body","sheet_x":37,"sheet_y":31,"sort_order":11},"🤙":{"category":"People & Body","sheet_x":37,"sheet_y":37,"sort_order":12},"🤚":{"category":"People & Body","sheet_x":37,"sheet_y":43,"sort_order":2},"🤛":{"category":"People & Body","sheet_x":37,"sheet_y":49,"sort_order":23},"🤜":{"category":"People & Body","sheet_x":37,"sheet_y":55,"sort_order":24},"🤝":{"category":"People & Body","sheet_x":38,"sheet_y":4,"sort_order":29},"🤞":{"category":"People & Body","sheet_x":38,"sheet_y":5,"sort_order":9},"🤟":{"category":"People & Body","sheet_x":38,"sheet_y":11,"sort_order":10},"🤠":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":17,"sort_order":58},"🤡":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":18,"sort_order":96},"🤢":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":19,"sort_order":50},"🤣":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":20,"sort_order":7},"🤤":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":21,"sort_order":45},"🤥":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":22,"sort_order":41},"🤦‍♀️":{"category":"People & Body","sheet_x":38,"sheet_y":23,"sort_order":101},"🤦‍♂️":{"category":"People & Body","sheet_x":38,"sheet_y":29,"sort_order":100},"🤦":{"category":"People & Body","sheet_x":38,"sheet_y":35,"sort_order":99},"🤧":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":41,"sort_order":52},"🤨":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":42,"sort_order":33},"🤩":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":43,"sort_order":16},"🤪":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":44,"sort_order":25},"🤫":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":45,"sort_order":30},"🤬":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":46,"sort_order":90},"🤭":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":47,"sort_order":29},"🤮":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":48,"sort_order":51},"🤯":{"category":"Smileys & Emotion","sheet_x":38,"sheet_y":49,"sort_order":57},"🤰":{"category":"People & Body","sheet_x":38,"sheet_y":50,"sort_order":174},"🤱":{"category":"People & Body","sheet_x":38,"sheet_y":56,"sort_order":175},"🤲":{"category":"People & Body","sheet_x":39,"sheet_y":5,"sort_order":28},"🤳":{"category":"People & Body","sheet_x":39,"sheet_y":11,"sort_order":33},"🤴":{"category":"People & Body","sheet_x":39,"sheet_y":17,"sort_order":165},"🤵":{"category":"People & Body","sheet_x":39,"sheet_y":23,"sort_order":172},"🤶":{"category":"People & Body","sheet_x":39,"sheet_y":29,"sort_order":178},"🤷‍♀️":{"category":"People & Body","sheet_x":39,"sheet_y":35,"sort_order":104},"🤷‍♂️":{"category":"People & Body","sheet_x":39,"sheet_y":41,"sort_order":103},"🤷":{"category":"People & Body","sheet_x":39,"sheet_y":47,"sort_order":102},"🤸‍♀️":{"category":"People & Body","sheet_x":39,"sheet_y":53,"sort_order":275},"🤸‍♂️":{"category":"People & Body","sheet_x":40,"sheet_y":2,"sort_order":274},"🤸":{"category":"People & Body","sheet_x":40,"sheet_y":8,"sort_order":273},"🤹‍♀️":{"category":"People & Body","sheet_x":40,"sheet_y":14,"sort_order":287},"🤹‍♂️":{"category":"People & Body","sheet_x":40,"sheet_y":20,"sort_order":286},"🤹":{"category":"People & Body","sheet_x":40,"sheet_y":26,"sort_order":285},"🤺":{"category":"People & Body","sheet_x":40,"sheet_y":32,"sort_order":245},"🤼‍♀️":{"category":"People & Body","sheet_x":40,"sheet_y":33,"sort_order":278},"🤼‍♂️":{"category":"People & Body","sheet_x":40,"sheet_y":34,"sort_order":277},"🤼":{"category":"People & Body","sheet_x":40,"sheet_y":35,"sort_order":276},"🤽‍♀️":{"category":"People & Body","sheet_x":40,"sheet_y":36,"sort_order":281},"🤽‍♂️":{"category":"People & Body","sheet_x":40,"sheet_y":42,"sort_order":280},"🤽":{"category":"People & Body","sheet_x":40,"sheet_y":48,"sort_order":279},"🤾‍♀️":{"category":"People & Body","sheet_x":40,"sheet_y":54,"sort_order":284},"🤾‍♂️":{"category":"People & Body","sheet_x":41,"sheet_y":3,"sort_order":283},"🤾":{"category":"People & Body","sheet_x":41,"sheet_y":9,"sort_order":282},"🤿":{"category":"Activities","sheet_x":41,"sheet_y":15,"sort_order":50},"🥀":{"category":"Animals & Nature","sheet_x":41,"sheet_y":16,"sort_order":111},"🥁":{"category":"Objects","sheet_x":41,"sheet_y":17,"sort_order":68},"🥂":{"category":"Food & Drink","sheet_x":41,"sheet_y":18,"sort_order":110},"🥃":{"category":"Food & Drink","sheet_x":41,"sheet_y":19,"sort_order":111},"🥄":{"category":"Food & Drink","sheet_x":41,"sheet_y":20,"sort_order":119},"🥅":{"category":"Activities","sheet_x":41,"sheet_y":21,"sort_order":46},"🥇":{"category":"Activities","sheet_x":41,"sheet_y":22,"sort_order":25},"🥈":{"category":"Activities","sheet_x":41,"sheet_y":23,"sort_order":26},"🥉":{"category":"Activities","sheet_x":41,"sheet_y":24,"sort_order":27},"🥊":{"category":"Activities","sheet_x":41,"sheet_y":25,"sort_order":44},"🥋":{"category":"Activities","sheet_x":41,"sheet_y":26,"sort_order":45},"🥌":{"category":"Activities","sheet_x":41,"sheet_y":27,"sort_order":54},"🥍":{"category":"Activities","sheet_x":41,"sheet_y":28,"sort_order":41},"🥎":{"category":"Activities","sheet_x":41,"sheet_y":29,"sort_order":30},"🥏":{"category":"Activities","sheet_x":41,"sheet_y":30,"sort_order":36},"🥐":{"category":"Food & Drink","sheet_x":41,"sheet_y":31,"sort_order":33},"🥑":{"category":"Food & Drink","sheet_x":41,"sheet_y":32,"sort_order":18},"🥒":{"category":"Food & Drink","sheet_x":41,"sheet_y":33,"sort_order":24},"🥓":{"category":"Food & Drink","sheet_x":41,"sheet_y":34,"sort_order":43},"🥔":{"category":"Food & Drink","sheet_x":41,"sheet_y":35,"sort_order":20},"🥕":{"category":"Food & Drink","sheet_x":41,"sheet_y":36,"sort_order":21},"🥖":{"category":"Food & Drink","sheet_x":41,"sheet_y":37,"sort_order":34},"🥗":{"category":"Food & Drink","sheet_x":41,"sheet_y":38,"sort_order":58},"🥘":{"category":"Food & Drink","sheet_x":41,"sheet_y":39,"sort_order":55},"🥙":{"category":"Food & Drink","sheet_x":41,"sheet_y":40,"sort_order":51},"🥚":{"category":"Food & Drink","sheet_x":41,"sheet_y":41,"sort_order":53},"🥛":{"category":"Food & Drink","sheet_x":41,"sheet_y":42,"sort_order":100},"🥜":{"category":"Food & Drink","sheet_x":41,"sheet_y":43,"sort_order":30},"🥝":{"category":"Food & Drink","sheet_x":41,"sheet_y":44,"sort_order":15},"🥞":{"category":"Food & Drink","sheet_x":41,"sheet_y":45,"sort_order":37},"🥟":{"category":"Food & Drink","sheet_x":41,"sheet_y":46,"sort_order":77},"🥠":{"category":"Food & Drink","sheet_x":41,"sheet_y":47,"sort_order":78},"🥡":{"category":"Food & Drink","sheet_x":41,"sheet_y":48,"sort_order":79},"🥢":{"category":"Food & Drink","sheet_x":41,"sheet_y":49,"sort_order":116},"🥣":{"category":"Food & Drink","sheet_x":41,"sheet_y":50,"sort_order":57},"🥤":{"category":"Food & Drink","sheet_x":41,"sheet_y":51,"sort_order":112},"🥥":{"category":"Food & Drink","sheet_x":41,"sheet_y":52,"sort_order":17},"🥦":{"category":"Food & Drink","sheet_x":41,"sheet_y":53,"sort_order":26},"🥧":{"category":"Food & Drink","sheet_x":41,"sheet_y":54,"sort_order":93},"🥨":{"category":"Food & Drink","sheet_x":41,"sheet_y":55,"sort_order":35},"🥩":{"category":"Food & Drink","sheet_x":41,"sheet_y":56,"sort_order":42},"🥪":{"category":"Food & Drink","sheet_x":42,"sheet_y":0,"sort_order":48},"🥫":{"category":"Food & Drink","sheet_x":42,"sheet_y":1,"sort_order":62},"🥬":{"category":"Food & Drink","sheet_x":42,"sheet_y":2,"sort_order":25},"🥭":{"category":"Food & Drink","sheet_x":42,"sheet_y":3,"sort_order":8},"🥮":{"category":"Food & Drink","sheet_x":42,"sheet_y":4,"sort_order":75},"🥯":{"category":"Food & Drink","sheet_x":42,"sheet_y":5,"sort_order":36},"🥰":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":6,"sort_order":14},"🥱":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":7,"sort_order":86},"🥳":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":8,"sort_order":59},"🥴":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":9,"sort_order":55},"🥵":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":10,"sort_order":53},"🥶":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":11,"sort_order":54},"🥺":{"category":"Smileys & Emotion","sheet_x":42,"sheet_y":12,"sort_order":71},"🥻":{"category":"Objects","sheet_x":42,"sheet_y":13,"sort_order":15},"🥼":{"category":"Objects","sheet_x":42,"sheet_y":14,"sort_order":4},"🥽":{"category":"Objects","sheet_x":42,"sheet_y":15,"sort_order":3},"🥾":{"category":"Objects","sheet_x":42,"sheet_y":16,"sort_order":28},"🥿":{"category":"Objects","sheet_x":42,"sheet_y":17,"sort_order":29},"🦀":{"category":"Food & Drink","sheet_x":42,"sheet_y":18,"sort_order":80},"🦁":{"category":"Animals & Nature","sheet_x":42,"sheet_y":19,"sort_order":15},"🦂":{"category":"Animals & Nature","sheet_x":42,"sheet_y":20,"sort_order":103},"🦃":{"category":"Animals & Nature","sheet_x":42,"sheet_y":21,"sort_order":60},"🦄":{"category":"Animals & Nature","sheet_x":42,"sheet_y":22,"sort_order":21},"🦅":{"category":"Animals & Nature","sheet_x":42,"sheet_y":23,"sort_order":69},"🦆":{"category":"Animals & Nature","sheet_x":42,"sheet_y":24,"sort_order":70},"🦇":{"category":"Animals & Nature","sheet_x":42,"sheet_y":25,"sort_order":50},"🦈":{"category":"Animals & Nature","sheet_x":42,"sheet_y":26,"sort_order":91},"🦉":{"category":"Animals & Nature","sheet_x":42,"sheet_y":27,"sort_order":72},"🦊":{"category":"Animals & Nature","sheet_x":42,"sheet_y":28,"sort_order":11},"🦋":{"category":"Animals & Nature","sheet_x":42,"sheet_y":29,"sort_order":95},"🦌":{"category":"Animals & Nature","sheet_x":42,"sheet_y":30,"sort_order":23},"🦍":{"category":"Animals & Nature","sheet_x":42,"sheet_y":31,"sort_order":3},"🦎":{"category":"Animals & Nature","sheet_x":42,"sheet_y":32,"sort_order":79},"🦏":{"category":"Animals & Nature","sheet_x":42,"sheet_y":33,"sort_order":40},"🦐":{"category":"Food & Drink","sheet_x":42,"sheet_y":34,"sort_order":82},"🦑":{"category":"Food & Drink","sheet_x":42,"sheet_y":35,"sort_order":83},"🦒":{"category":"Animals & Nature","sheet_x":42,"sheet_y":36,"sort_order":38},"🦓":{"category":"Animals & Nature","sheet_x":42,"sheet_y":37,"sort_order":22},"🦔":{"category":"Animals & Nature","sheet_x":42,"sheet_y":38,"sort_order":49},"🦕":{"category":"Animals & Nature","sheet_x":42,"sheet_y":39,"sort_order":83},"🦖":{"category":"Animals & Nature","sheet_x":42,"sheet_y":40,"sort_order":84},"🦗":{"category":"Animals & Nature","sheet_x":42,"sheet_y":41,"sort_order":100},"🦘":{"category":"Animals & Nature","sheet_x":42,"sheet_y":42,"sort_order":57},"🦙":{"category":"Animals & Nature","sheet_x":42,"sheet_y":43,"sort_order":37},"🦚":{"category":"Animals & Nature","sheet_x":42,"sheet_y":44,"sort_order":74},"🦛":{"category":"Animals & Nature","sheet_x":42,"sheet_y":45,"sort_order":41},"🦜":{"category":"Animals & Nature","sheet_x":42,"sheet_y":46,"sort_order":75},"🦝":{"category":"Animals & Nature","sheet_x":42,"sheet_y":47,"sort_order":12},"🦞":{"category":"Food & Drink","sheet_x":42,"sheet_y":48,"sort_order":81},"🦟":{"category":"Animals & Nature","sheet_x":42,"sheet_y":49,"sort_order":104},"🦠":{"category":"Animals & Nature","sheet_x":42,"sheet_y":50,"sort_order":105},"🦡":{"category":"Animals & Nature","sheet_x":42,"sheet_y":51,"sort_order":58},"🦢":{"category":"Animals & Nature","sheet_x":42,"sheet_y":52,"sort_order":71},"🦥":{"category":"Animals & Nature","sheet_x":42,"sheet_y":53,"sort_order":54},"🦦":{"category":"Animals & Nature","sheet_x":42,"sheet_y":54,"sort_order":55},"🦧":{"category":"Animals & Nature","sheet_x":42,"sheet_y":55,"sort_order":4},"🦨":{"category":"Animals & Nature","sheet_x":42,"sheet_y":56,"sort_order":56},"🦩":{"category":"Animals & Nature","sheet_x":43,"sheet_y":0,"sort_order":73},"🦪":{"category":"Food & Drink","sheet_x":43,"sheet_y":1,"sort_order":84},"🦮":{"category":"Animals & Nature","sheet_x":43,"sheet_y":2,"sort_order":7},"🦯":{"category":"Objects","sheet_x":43,"sheet_y":3,"sort_order":196},"🦴":{"category":"People & Body","sheet_x":43,"sheet_y":4,"sort_order":44},"🦵":{"category":"People & Body","sheet_x":43,"sheet_y":5,"sort_order":37},"🦶":{"category":"People & Body","sheet_x":43,"sheet_y":11,"sort_order":38},"🦷":{"category":"People & Body","sheet_x":43,"sheet_y":17,"sort_order":43},"🦸‍♀️":{"category":"People & Body","sheet_x":43,"sheet_y":18,"sort_order":181},"🦸‍♂️":{"category":"People & Body","sheet_x":43,"sheet_y":24,"sort_order":180},"🦸":{"category":"People & Body","sheet_x":43,"sheet_y":30,"sort_order":179},"🦹‍♀️":{"category":"People & Body","sheet_x":43,"sheet_y":36,"sort_order":184},"🦹‍♂️":{"category":"People & Body","sheet_x":43,"sheet_y":42,"sort_order":183},"🦹":{"category":"People & Body","sheet_x":43,"sheet_y":48,"sort_order":182},"🦺":{"category":"Objects","sheet_x":43,"sheet_y":54,"sort_order":5},"🦻":{"category":"People & Body","sheet_x":43,"sheet_y":55,"sort_order":40},"🦼":{"category":"Travel & Places","sheet_x":44,"sheet_y":4,"sort_order":95},"🦽":{"category":"Travel & Places","sheet_x":44,"sheet_y":5,"sort_order":94},"🦾":{"category":"People & Body","sheet_x":44,"sheet_y":6,"sort_order":35},"🦿":{"category":"People & Body","sheet_x":44,"sheet_y":7,"sort_order":36},"🧀":{"category":"Food & Drink","sheet_x":44,"sheet_y":8,"sort_order":39},"🧁":{"category":"Food & Drink","sheet_x":44,"sheet_y":9,"sort_order":92},"🧂":{"category":"Food & Drink","sheet_x":44,"sheet_y":10,"sort_order":61},"🧃":{"category":"Food & Drink","sheet_x":44,"sheet_y":11,"sort_order":113},"🧄":{"category":"Food & Drink","sheet_x":44,"sheet_y":12,"sort_order":27},"🧅":{"category":"Food & Drink","sheet_x":44,"sheet_y":13,"sort_order":28},"🧆":{"category":"Food & Drink","sheet_x":44,"sheet_y":14,"sort_order":52},"🧇":{"category":"Food & Drink","sheet_x":44,"sheet_y":15,"sort_order":38},"🧈":{"category":"Food & Drink","sheet_x":44,"sheet_y":16,"sort_order":60},"🧉":{"category":"Food & Drink","sheet_x":44,"sheet_y":17,"sort_order":114},"🧊":{"category":"Food & Drink","sheet_x":44,"sheet_y":18,"sort_order":115},"🧍‍♀️":{"category":"People & Body","sheet_x":44,"sheet_y":19,"sort_order":217},"🧍‍♂️":{"category":"People & Body","sheet_x":44,"sheet_y":25,"sort_order":216},"🧍":{"category":"People & Body","sheet_x":44,"sheet_y":31,"sort_order":215},"🧎‍♀️":{"category":"People & Body","sheet_x":44,"sheet_y":37,"sort_order":220},"🧎‍♂️":{"category":"People & Body","sheet_x":44,"sheet_y":43,"sort_order":219},"🧎":{"category":"People & Body","sheet_x":44,"sheet_y":49,"sort_order":218},"🧏‍♀️":{"category":"People & Body","sheet_x":44,"sheet_y":55,"sort_order":95},"🧏‍♂️":{"category":"People & Body","sheet_x":45,"sheet_y":4,"sort_order":94},"🧏":{"category":"People & Body","sheet_x":45,"sheet_y":10,"sort_order":93},"🧐":{"category":"Smileys & Emotion","sheet_x":45,"sheet_y":16,"sort_order":62},"🧑‍🌾":{"category":"People & Body","sheet_x":45,"sheet_y":17,"sort_order":117},"🧑‍🍳":{"category":"People & Body","sheet_x":45,"sheet_y":23,"sort_order":120},"🧑‍🎓":{"category":"People & Body","sheet_x":45,"sheet_y":29,"sort_order":108},"🧑‍🎤":{"category":"People & Body","sheet_x":45,"sheet_y":35,"sort_order":138},"🧑‍🎨":{"category":"People & Body","sheet_x":45,"sheet_y":41,"sort_order":141},"🧑‍🏫":{"category":"People & Body","sheet_x":45,"sheet_y":47,"sort_order":111},"🧑‍🏭":{"category":"People & Body","sheet_x":45,"sheet_y":53,"sort_order":126},"🧑‍💻":{"category":"People & Body","sheet_x":46,"sheet_y":2,"sort_order":135},"🧑‍💼":{"category":"People & Body","sheet_x":46,"sheet_y":8,"sort_order":129},"🧑‍🔧":{"category":"People & Body","sheet_x":46,"sheet_y":14,"sort_order":123},"🧑‍🔬":{"category":"People & Body","sheet_x":46,"sheet_y":20,"sort_order":132},"🧑‍🚀":{"category":"People & Body","sheet_x":46,"sheet_y":26,"sort_order":147},"🧑‍🚒":{"category":"People & Body","sheet_x":46,"sheet_y":32,"sort_order":150},"🧑‍🤝‍🧑":{"category":"People & Body","sheet_x":46,"sheet_y":38,"sort_order":293},"🧑‍🦯":{"category":"People & Body","sheet_x":47,"sheet_y":7,"sort_order":221},"🧑‍🦰":{"category":"People & Body","sheet_x":47,"sheet_y":13,"sort_order":63},"🧑‍🦱":{"category":"People & Body","sheet_x":47,"sheet_y":19,"sort_order":65},"🧑‍🦲":{"category":"People & Body","sheet_x":47,"sheet_y":25,"sort_order":69},"🧑‍🦳":{"category":"People & Body","sheet_x":47,"sheet_y":31,"sort_order":67},"🧑‍🦼":{"category":"People & Body","sheet_x":47,"sheet_y":37,"sort_order":224},"🧑‍🦽":{"category":"People & Body","sheet_x":47,"sheet_y":43,"sort_order":227},"🧑‍⚕️":{"category":"People & Body","sheet_x":47,"sheet_y":49,"sort_order":105},"🧑‍⚖️":{"category":"People & Body","sheet_x":47,"sheet_y":55,"sort_order":114},"🧑‍✈️":{"category":"People & Body","sheet_x":48,"sheet_y":4,"sort_order":144},"🧑":{"category":"People & Body","sheet_x":48,"sheet_y":10,"sort_order":53},"🧒":{"category":"People & Body","sheet_x":48,"sheet_y":16,"sort_order":50},"🧓":{"category":"People & Body","sheet_x":48,"sheet_y":22,"sort_order":72},"🧔":{"category":"People & Body","sheet_x":48,"sheet_y":28,"sort_order":56},"🧕":{"category":"People & Body","sheet_x":48,"sheet_y":34,"sort_order":171},"🧖‍♀️":{"category":"People & Body","sheet_x":48,"sheet_y":40,"sort_order":241},"🧖‍♂️":{"category":"People & Body","sheet_x":48,"sheet_y":46,"sort_order":240},"🧖":{"category":"People & Body","sheet_x":48,"sheet_y":52,"sort_order":239},"🧗‍♀️":{"category":"People & Body","sheet_x":49,"sheet_y":1,"sort_order":244},"🧗‍♂️":{"category":"People & Body","sheet_x":49,"sheet_y":7,"sort_order":243},"🧗":{"category":"People & Body","sheet_x":49,"sheet_y":13,"sort_order":242},"🧘‍♀️":{"category":"People & Body","sheet_x":49,"sheet_y":19,"sort_order":290},"🧘‍♂️":{"category":"People & Body","sheet_x":49,"sheet_y":25,"sort_order":289},"🧘":{"category":"People & Body","sheet_x":49,"sheet_y":31,"sort_order":288},"🧙‍♀️":{"category":"People & Body","sheet_x":49,"sheet_y":37,"sort_order":187},"🧙‍♂️":{"category":"People & Body","sheet_x":49,"sheet_y":43,"sort_order":186},"🧙":{"category":"People & Body","sheet_x":49,"sheet_y":49,"sort_order":185},"🧚‍♀️":{"category":"People & Body","sheet_x":49,"sheet_y":55,"sort_order":190},"🧚‍♂️":{"category":"People & Body","sheet_x":50,"sheet_y":4,"sort_order":189},"🧚":{"category":"People & Body","sheet_x":50,"sheet_y":10,"sort_order":188},"🧛‍♀️":{"category":"People & Body","sheet_x":50,"sheet_y":16,"sort_order":193},"🧛‍♂️":{"category":"People & Body","sheet_x":50,"sheet_y":22,"sort_order":192},"🧛":{"category":"People & Body","sheet_x":50,"sheet_y":28,"sort_order":191},"🧜‍♀️":{"category":"People & Body","sheet_x":50,"sheet_y":34,"sort_order":196},"🧜‍♂️":{"category":"People & Body","sheet_x":50,"sheet_y":40,"sort_order":195},"🧜":{"category":"People & Body","sheet_x":50,"sheet_y":46,"sort_order":194},"🧝‍♀️":{"category":"People & Body","sheet_x":50,"sheet_y":52,"sort_order":199},"🧝‍♂️":{"category":"People & Body","sheet_x":51,"sheet_y":1,"sort_order":198},"🧝":{"category":"People & Body","sheet_x":51,"sheet_y":7,"sort_order":197},"🧞‍♀️":{"category":"People & Body","sheet_x":51,"sheet_y":13,"sort_order":202},"🧞‍♂️":{"category":"People & Body","sheet_x":51,"sheet_y":14,"sort_order":201},"🧞":{"category":"People & Body","sheet_x":51,"sheet_y":15,"sort_order":200},"🧟‍♀️":{"category":"People & Body","sheet_x":51,"sheet_y":16,"sort_order":205},"🧟‍♂️":{"category":"People & Body","sheet_x":51,"sheet_y":17,"sort_order":204},"🧟":{"category":"People & Body","sheet_x":51,"sheet_y":18,"sort_order":203},"🧠":{"category":"People & Body","sheet_x":51,"sheet_y":19,"sort_order":42},"🧡":{"category":"Smileys & Emotion","sheet_x":51,"sheet_y":20,"sort_order":128},"🧢":{"category":"Objects","sheet_x":51,"sheet_y":21,"sort_order":38},"🧣":{"category":"Objects","sheet_x":51,"sheet_y":22,"sort_order":9},"🧤":{"category":"Objects","sheet_x":51,"sheet_y":23,"sort_order":10},"🧥":{"category":"Objects","sheet_x":51,"sheet_y":24,"sort_order":11},"🧦":{"category":"Objects","sheet_x":51,"sheet_y":25,"sort_order":12},"🧧":{"category":"Activities","sheet_x":51,"sheet_y":26,"sort_order":16},"🧨":{"category":"Activities","sheet_x":51,"sheet_y":27,"sort_order":5},"🧩":{"category":"Activities","sheet_x":51,"sheet_y":28,"sort_order":65},"🧪":{"category":"Objects","sheet_x":51,"sheet_y":29,"sort_order":202},"🧫":{"category":"Objects","sheet_x":51,"sheet_y":30,"sort_order":203},"🧬":{"category":"Objects","sheet_x":51,"sheet_y":31,"sort_order":204},"🧭":{"category":"Travel & Places","sheet_x":51,"sheet_y":32,"sort_order":7},"🧮":{"category":"Objects","sheet_x":51,"sheet_y":33,"sort_order":87},"🧯":{"category":"Objects","sheet_x":51,"sheet_y":34,"sort_order":228},"🧰":{"category":"Objects","sheet_x":51,"sheet_y":35,"sort_order":199},"🧱":{"category":"Travel & Places","sheet_x":51,"sheet_y":36,"sort_order":20},"🧲":{"category":"Objects","sheet_x":51,"sheet_y":37,"sort_order":200},"🧳":{"category":"Travel & Places","sheet_x":51,"sheet_y":38,"sort_order":132},"🧴":{"category":"Objects","sheet_x":51,"sheet_y":39,"sort_order":221},"🧵":{"category":"Activities","sheet_x":51,"sheet_y":40,"sort_order":78},"🧶":{"category":"Activities","sheet_x":51,"sheet_y":41,"sort_order":79},"🧷":{"category":"Objects","sheet_x":51,"sheet_y":42,"sort_order":222},"🧸":{"category":"Activities","sheet_x":51,"sheet_y":43,"sort_order":66},"🧹":{"category":"Objects","sheet_x":51,"sheet_y":44,"sort_order":223},"🧺":{"category":"Objects","sheet_x":51,"sheet_y":45,"sort_order":224},"🧻":{"category":"Objects","sheet_x":51,"sheet_y":46,"sort_order":225},"🧼":{"category":"Objects","sheet_x":51,"sheet_y":47,"sort_order":226},"🧽":{"category":"Objects","sheet_x":51,"sheet_y":48,"sort_order":227},"🧾":{"category":"Objects","sheet_x":51,"sheet_y":49,"sort_order":128},"🧿":{"category":"Activities","sheet_x":51,"sheet_y":50,"sort_order":60},"🩰":{"category":"Objects","sheet_x":51,"sheet_y":51,"sort_order":32},"🩱":{"category":"Objects","sheet_x":51,"sheet_y":52,"sort_order":16},"🩲":{"category":"Objects","sheet_x":51,"sheet_y":53,"sort_order":17},"🩳":{"category":"Objects","sheet_x":51,"sheet_y":54,"sort_order":18},"🩸":{"category":"Objects","sheet_x":51,"sheet_y":55,"sort_order":209},"🩹":{"category":"Objects","sheet_x":51,"sheet_y":56,"sort_order":211},"🩺":{"category":"Objects","sheet_x":52,"sheet_y":0,"sort_order":212},"🪀":{"category":"Activities","sheet_x":52,"sheet_y":1,"sort_order":56},"🪁":{"category":"Activities","sheet_x":52,"sheet_y":2,"sort_order":57},"🪂":{"category":"Travel & Places","sheet_x":52,"sheet_y":3,"sort_order":122},"🪐":{"category":"Travel & Places","sheet_x":52,"sheet_y":4,"sort_order":180},"🪑":{"category":"Objects","sheet_x":52,"sheet_y":5,"sort_order":216},"🪒":{"category":"Objects","sheet_x":52,"sheet_y":6,"sort_order":220},"🪓":{"category":"Objects","sheet_x":52,"sheet_y":7,"sort_order":182},"🪔":{"category":"Objects","sheet_x":52,"sheet_y":8,"sort_order":103},"🪕":{"category":"Objects","sheet_x":52,"sheet_y":9,"sort_order":67},"‼️":{"category":"Symbols","sheet_x":52,"sheet_y":10,"sort_order":122},"⁉️":{"category":"Symbols","sheet_x":52,"sheet_y":11,"sort_order":123},"™️":{"category":"Symbols","sheet_x":52,"sheet_y":12,"sort_order":131},"ℹ️":{"category":"Symbols","sheet_x":52,"sheet_y":13,"sort_order":156},"↔️":{"category":"Symbols","sheet_x":52,"sheet_y":14,"sort_order":36},"↕️":{"category":"Symbols","sheet_x":52,"sheet_y":15,"sort_order":35},"↖️":{"category":"Symbols","sheet_x":52,"sheet_y":16,"sort_order":34},"↗️":{"category":"Symbols","sheet_x":52,"sheet_y":17,"sort_order":28},"↘️":{"category":"Symbols","sheet_x":52,"sheet_y":18,"sort_order":30},"↙️":{"category":"Symbols","sheet_x":52,"sheet_y":19,"sort_order":32},"↩️":{"category":"Symbols","sheet_x":52,"sheet_y":20,"sort_order":37},"↪️":{"category":"Symbols","sheet_x":52,"sheet_y":21,"sort_order":38},"⌚":{"category":"Travel & Places","sheet_x":52,"sheet_y":22,"sort_order":135},"⌛":{"category":"Travel & Places","sheet_x":52,"sheet_y":23,"sort_order":133},"⌨️":{"category":"Objects","sheet_x":52,"sheet_y":24,"sort_order":80},"⏏️":{"category":"Symbols","sheet_x":52,"sheet_y":25,"sort_order":90},"⏩":{"category":"Symbols","sheet_x":52,"sheet_y":26,"sort_order":77},"⏪":{"category":"Symbols","sheet_x":52,"sheet_y":27,"sort_order":81},"⏫":{"category":"Symbols","sheet_x":52,"sheet_y":28,"sort_order":84},"⏬":{"category":"Symbols","sheet_x":52,"sheet_y":29,"sort_order":86},"⏭️":{"category":"Symbols","sheet_x":52,"sheet_y":30,"sort_order":78},"⏮️":{"category":"Symbols","sheet_x":52,"sheet_y":31,"sort_order":82},"⏯️":{"category":"Symbols","sheet_x":52,"sheet_y":32,"sort_order":79},"⏰":{"category":"Travel & Places","sheet_x":52,"sheet_y":33,"sort_order":136},"⏱️":{"category":"Travel & Places","sheet_x":52,"sheet_y":34,"sort_order":137},"⏲️":{"category":"Travel & Places","sheet_x":52,"sheet_y":35,"sort_order":138},"⏳":{"category":"Travel & Places","sheet_x":52,"sheet_y":36,"sort_order":134},"⏸️":{"category":"Symbols","sheet_x":52,"sheet_y":37,"sort_order":87},"⏹️":{"category":"Symbols","sheet_x":52,"sheet_y":38,"sort_order":88},"⏺️":{"category":"Symbols","sheet_x":52,"sheet_y":39,"sort_order":89},"Ⓜ️":{"category":"Symbols","sheet_x":52,"sheet_y":40,"sort_order":158},"▪️":{"category":"Symbols","sheet_x":52,"sheet_y":41,"sort_order":206},"▫️":{"category":"Symbols","sheet_x":52,"sheet_y":42,"sort_order":207},"▶️":{"category":"Symbols","sheet_x":52,"sheet_y":43,"sort_order":76},"◀️":{"category":"Symbols","sheet_x":52,"sheet_y":44,"sort_order":80},"◻️":{"category":"Symbols","sheet_x":52,"sheet_y":45,"sort_order":203},"◼️":{"category":"Symbols","sheet_x":52,"sheet_y":46,"sort_order":202},"◽":{"category":"Symbols","sheet_x":52,"sheet_y":47,"sort_order":205},"◾":{"category":"Symbols","sheet_x":52,"sheet_y":48,"sort_order":204},"☀️":{"category":"Travel & Places","sheet_x":52,"sheet_y":49,"sort_order":177},"☁️":{"category":"Travel & Places","sheet_x":52,"sheet_y":50,"sort_order":185},"☂️":{"category":"Travel & Places","sheet_x":52,"sheet_y":51,"sort_order":200},"☃️":{"category":"Travel & Places","sheet_x":52,"sheet_y":52,"sort_order":205},"☄️":{"category":"Travel & Places","sheet_x":52,"sheet_y":53,"sort_order":207},"☎️":{"category":"Objects","sheet_x":52,"sheet_y":54,"sort_order":71},"☑️":{"category":"Symbols","sheet_x":52,"sheet_y":55,"sort_order":108},"☔":{"category":"Travel & Places","sheet_x":52,"sheet_y":56,"sort_order":201},"☕":{"category":"Food & Drink","sheet_x":53,"sheet_y":0,"sort_order":101},"☘️":{"category":"Animals & Nature","sheet_x":53,"sheet_y":1,"sort_order":123},"☝️":{"category":"People & Body","sheet_x":53,"sheet_y":2,"sort_order":18},"☠️":{"category":"Smileys & Emotion","sheet_x":53,"sheet_y":8,"sort_order":94},"☢️":{"category":"Symbols","sheet_x":53,"sheet_y":9,"sort_order":25},"☣️":{"category":"Symbols","sheet_x":53,"sheet_y":10,"sort_order":26},"☦️":{"category":"Symbols","sheet_x":53,"sheet_y":11,"sort_order":55},"☪️":{"category":"Symbols","sheet_x":53,"sheet_y":12,"sort_order":56},"☮️":{"category":"Symbols","sheet_x":53,"sheet_y":13,"sort_order":57},"☯️":{"category":"Symbols","sheet_x":53,"sheet_y":14,"sort_order":53},"☸️":{"category":"Symbols","sheet_x":53,"sheet_y":15,"sort_order":52},"☹️":{"category":"Smileys & Emotion","sheet_x":53,"sheet_y":16,"sort_order":66},"☺️":{"category":"Smileys & Emotion","sheet_x":53,"sheet_y":17,"sort_order":19},"♈":{"category":"Symbols","sheet_x":53,"sheet_y":20,"sort_order":60},"♉":{"category":"Symbols","sheet_x":53,"sheet_y":21,"sort_order":61},"♊":{"category":"Symbols","sheet_x":53,"sheet_y":22,"sort_order":62},"♋":{"category":"Symbols","sheet_x":53,"sheet_y":23,"sort_order":63},"♌":{"category":"Symbols","sheet_x":53,"sheet_y":24,"sort_order":64},"♍":{"category":"Symbols","sheet_x":53,"sheet_y":25,"sort_order":65},"♎":{"category":"Symbols","sheet_x":53,"sheet_y":26,"sort_order":66},"♏":{"category":"Symbols","sheet_x":53,"sheet_y":27,"sort_order":67},"♐":{"category":"Symbols","sheet_x":53,"sheet_y":28,"sort_order":68},"♑":{"category":"Symbols","sheet_x":53,"sheet_y":29,"sort_order":69},"♒":{"category":"Symbols","sheet_x":53,"sheet_y":30,"sort_order":70},"♓":{"category":"Symbols","sheet_x":53,"sheet_y":31,"sort_order":71},"♟️":{"category":"Activities","sheet_x":53,"sheet_y":32,"sort_order":71},"♠️":{"category":"Activities","sheet_x":53,"sheet_y":33,"sort_order":67},"♣️":{"category":"Activities","sheet_x":53,"sheet_y":34,"sort_order":70},"♥️":{"category":"Activities","sheet_x":53,"sheet_y":35,"sort_order":68},"♦️":{"category":"Activities","sheet_x":53,"sheet_y":36,"sort_order":69},"♨️":{"category":"Travel & Places","sheet_x":53,"sheet_y":37,"sort_order":57},"♻️":{"category":"Symbols","sheet_x":53,"sheet_y":38,"sort_order":101},"♾️":{"category":"Symbols","sheet_x":53,"sheet_y":39,"sort_order":100},"♿":{"category":"Symbols","sheet_x":53,"sheet_y":40,"sort_order":4},"⚒️":{"category":"Objects","sheet_x":53,"sheet_y":41,"sort_order":184},"⚓":{"category":"Travel & Places","sheet_x":53,"sheet_y":42,"sort_order":110},"⚔️":{"category":"Objects","sheet_x":53,"sheet_y":43,"sort_order":187},"⚖️":{"category":"Objects","sheet_x":53,"sheet_y":45,"sort_order":195},"⚗️":{"category":"Objects","sheet_x":53,"sheet_y":46,"sort_order":201},"⚙️":{"category":"Objects","sheet_x":53,"sheet_y":47,"sort_order":193},"⚛️":{"category":"Symbols","sheet_x":53,"sheet_y":48,"sort_order":49},"⚜️":{"category":"Symbols","sheet_x":53,"sheet_y":49,"sort_order":102},"⚠️":{"category":"Symbols","sheet_x":53,"sheet_y":50,"sort_order":14},"⚡":{"category":"Travel & Places","sheet_x":53,"sheet_y":51,"sort_order":203},"⚪":{"category":"Symbols","sheet_x":53,"sheet_y":52,"sort_order":192},"⚫":{"category":"Symbols","sheet_x":53,"sheet_y":53,"sort_order":191},"⚰️":{"category":"Objects","sheet_x":53,"sheet_y":54,"sort_order":231},"⚱️":{"category":"Objects","sheet_x":53,"sheet_y":55,"sort_order":232},"⚽":{"category":"Activities","sheet_x":53,"sheet_y":56,"sort_order":28},"⚾":{"category":"Activities","sheet_x":54,"sheet_y":0,"sort_order":29},"⛄":{"category":"Travel & Places","sheet_x":54,"sheet_y":1,"sort_order":206},"⛅":{"category":"Travel & Places","sheet_x":54,"sheet_y":2,"sort_order":186},"⛈️":{"category":"Travel & Places","sheet_x":54,"sheet_y":3,"sort_order":187},"⛎":{"category":"Symbols","sheet_x":54,"sheet_y":4,"sort_order":72},"⛏️":{"category":"Objects","sheet_x":54,"sheet_y":5,"sort_order":183},"⛑️":{"category":"Objects","sheet_x":54,"sheet_y":6,"sort_order":39},"⛓️":{"category":"Objects","sheet_x":54,"sheet_y":7,"sort_order":198},"⛔":{"category":"Symbols","sheet_x":54,"sheet_y":8,"sort_order":16},"⛩️":{"category":"Travel & Places","sheet_x":54,"sheet_y":9,"sort_order":45},"⛪":{"category":"Travel & Places","sheet_x":54,"sheet_y":10,"sort_order":41},"⛰️":{"category":"Travel & Places","sheet_x":54,"sheet_y":11,"sort_order":9},"⛱️":{"category":"Travel & Places","sheet_x":54,"sheet_y":12,"sort_order":202},"⛲":{"category":"Travel & Places","sheet_x":54,"sheet_y":13,"sort_order":47},"⛳":{"category":"Activities","sheet_x":54,"sheet_y":14,"sort_order":47},"⛴️":{"category":"Travel & Places","sheet_x":54,"sheet_y":15,"sort_order":115},"⛵":{"category":"Travel & Places","sheet_x":54,"sheet_y":16,"sort_order":111},"⛷️":{"category":"People & Body","sheet_x":54,"sheet_y":17,"sort_order":247},"⛸️":{"category":"Activities","sheet_x":54,"sheet_y":18,"sort_order":48},"⛹️‍♀️":{"category":"People & Body","sheet_x":54,"sheet_y":19,"sort_order":263},"⛹️‍♂️":{"category":"People & Body","sheet_x":54,"sheet_y":25,"sort_order":262},"⛹️":{"category":"People & Body","sheet_x":54,"sheet_y":31,"sort_order":261},"⛺":{"category":"Travel & Places","sheet_x":54,"sheet_y":37,"sort_order":48},"⛽":{"category":"Travel & Places","sheet_x":54,"sheet_y":38,"sort_order":104},"✂️":{"category":"Objects","sheet_x":54,"sheet_y":39,"sort_order":171},"✅":{"category":"Symbols","sheet_x":54,"sheet_y":40,"sort_order":107},"✈️":{"category":"Travel & Places","sheet_x":54,"sheet_y":41,"sort_order":118},"✉️":{"category":"Objects","sheet_x":54,"sheet_y":42,"sort_order":132},"✊":{"category":"People & Body","sheet_x":54,"sheet_y":43,"sort_order":21},"✋":{"category":"People & Body","sheet_x":54,"sheet_y":49,"sort_order":4},"✌️":{"category":"People & Body","sheet_x":54,"sheet_y":55,"sort_order":8},"✍️":{"category":"People & Body","sheet_x":55,"sheet_y":4,"sort_order":31},"✏️":{"category":"Objects","sheet_x":55,"sheet_y":10,"sort_order":145},"✒️":{"category":"Objects","sheet_x":55,"sheet_y":11,"sort_order":146},"✔️":{"category":"Symbols","sheet_x":55,"sheet_y":12,"sort_order":109},"✖️":{"category":"Symbols","sheet_x":55,"sheet_y":13,"sort_order":110},"✝️":{"category":"Symbols","sheet_x":55,"sheet_y":14,"sort_order":54},"✡️":{"category":"Symbols","sheet_x":55,"sheet_y":15,"sort_order":51},"✨":{"category":"Activities","sheet_x":55,"sheet_y":16,"sort_order":6},"✳️":{"category":"Symbols","sheet_x":55,"sheet_y":17,"sort_order":119},"✴️":{"category":"Symbols","sheet_x":55,"sheet_y":18,"sort_order":120},"❄️":{"category":"Travel & Places","sheet_x":55,"sheet_y":19,"sort_order":204},"❇️":{"category":"Symbols","sheet_x":55,"sheet_y":20,"sort_order":121},"❌":{"category":"Symbols","sheet_x":55,"sheet_y":21,"sort_order":111},"❎":{"category":"Symbols","sheet_x":55,"sheet_y":22,"sort_order":112},"❓":{"category":"Symbols","sheet_x":55,"sheet_y":23,"sort_order":124},"❔":{"category":"Symbols","sheet_x":55,"sheet_y":24,"sort_order":125},"❕":{"category":"Symbols","sheet_x":55,"sheet_y":25,"sort_order":126},"❗":{"category":"Symbols","sheet_x":55,"sheet_y":26,"sort_order":127},"❣️":{"category":"Smileys & Emotion","sheet_x":55,"sheet_y":27,"sort_order":125},"❤️":{"category":"Smileys & Emotion","sheet_x":55,"sheet_y":28,"sort_order":127},"➕":{"category":"Symbols","sheet_x":55,"sheet_y":29,"sort_order":113},"➖":{"category":"Symbols","sheet_x":55,"sheet_y":30,"sort_order":114},"➗":{"category":"Symbols","sheet_x":55,"sheet_y":31,"sort_order":115},"➡️":{"category":"Symbols","sheet_x":55,"sheet_y":32,"sort_order":29},"➰":{"category":"Symbols","sheet_x":55,"sheet_y":33,"sort_order":116},"➿":{"category":"Symbols","sheet_x":55,"sheet_y":34,"sort_order":117},"⤴️":{"category":"Symbols","sheet_x":55,"sheet_y":35,"sort_order":39},"⤵️":{"category":"Symbols","sheet_x":55,"sheet_y":36,"sort_order":40},"⬅️":{"category":"Symbols","sheet_x":55,"sheet_y":37,"sort_order":33},"⬆️":{"category":"Symbols","sheet_x":55,"sheet_y":38,"sort_order":27},"⬇️":{"category":"Symbols","sheet_x":55,"sheet_y":39,"sort_order":31},"⬛":{"category":"Symbols","sheet_x":55,"sheet_y":40,"sort_order":200},"⬜":{"category":"Symbols","sheet_x":55,"sheet_y":41,"sort_order":201},"⭐":{"category":"Travel & Places","sheet_x":55,"sheet_y":42,"sort_order":181},"⭕":{"category":"Symbols","sheet_x":55,"sheet_y":43,"sort_order":106},"〰️":{"category":"Symbols","sheet_x":55,"sheet_y":44,"sort_order":128},"〽️":{"category":"Symbols","sheet_x":55,"sheet_y":45,"sort_order":118},"㊗️":{"category":"Symbols","sheet_x":55,"sheet_y":46,"sort_order":180},"㊙️":{"category":"Symbols","sheet_x":55,"sheet_y":47,"sort_order":181}} - }; -} +const Emoji: {[emoji: string]: number} = {"#⃣":6365,"*⃣":6366,"0⃣":6367,"1⃣":6368,"2⃣":6369,"3⃣":6370,"4⃣":6371,"5⃣":6372,"6⃣":6373,"7⃣":6374,"8⃣":6375,"9⃣":6376,"©":6362,"®":6363,"🀄":573,"🃏":572,"🅰":6383,"🅱":6385,"🅾":6394,"🅿":6396,"🆎":6384,"🆑":6386,"🆒":6387,"🆓":6388,"🆔":6390,"🆕":6392,"🆖":6393,"🆗":6395,"🆘":6397,"🆙":6398,"🆚":6399,"🇦🇨":78,"🇦🇩":79,"🇦🇪":710,"🇦🇫":711,"🇦🇬":712,"🇦🇮":713,"🇦🇱":714,"🇦🇲":715,"🇦🇴":716,"🇦🇶":717,"🇦🇷":718,"🇦🇸":719,"🇦🇹":720,"🇦🇺":721,"🇦🇼":722,"🇦🇽":723,"🇦🇿":724,"🇧🇦":725,"🇧🇧":726,"🇧🇩":727,"🇧🇪":728,"🇧🇫":729,"🇧🇬":730,"🇧🇭":731,"🇧🇮":732,"🇧🇯":733,"🇧🇱":734,"🇧🇲":735,"🇧🇳":736,"🇧🇴":737,"🇧🇶":738,"🇧🇷":739,"🇧🇸":740,"🇧🇹":741,"🇧🇻":742,"🇧🇼":743,"🇧🇾":744,"🇧🇿":745,"🇨🇦":746,"🇨🇨":747,"🇨🇩":748,"🇨🇫":749,"🇨🇬":750,"🇨🇭":751,"🇨🇮":752,"🇨🇰":753,"🇨🇱":754,"🇨🇲":755,"🇨🇳":756,"🇨🇴":757,"🇨🇵":758,"🇨🇷":759,"🇨🇺":760,"🇨🇻":761,"🇨🇼":762,"🇨🇽":763,"🇨🇾":764,"🇨🇿":765,"🇩🇪":766,"🇩🇬":767,"🇩🇯":768,"🇩🇰":769,"🇩🇲":770,"🇩🇴":771,"🇩🇿":772,"🇪🇦":773,"🇪🇨":774,"🇪🇪":775,"🇪🇬":776,"🇪🇭":777,"🇪🇷":778,"🇪🇸":779,"🇪🇹":780,"🇪🇺":781,"🇫🇮":782,"🇫🇯":783,"🇫🇰":784,"🇫🇲":785,"🇫🇴":786,"🇫🇷":787,"🇬🇦":788,"🇬🇧":789,"🇬🇩":790,"🇬🇪":791,"🇬🇫":792,"🇬🇬":793,"🇬🇭":794,"🇬🇮":795,"🇬🇱":796,"🇬🇲":797,"🇬🇳":798,"🇬🇵":799,"🇬🇶":7100,"🇬🇷":7101,"🇬🇸":7102,"🇬🇹":7103,"🇬🇺":7104,"🇬🇼":7105,"🇬🇾":7106,"🇭🇰":7107,"🇭🇲":7108,"🇭🇳":7109,"🇭🇷":7110,"🇭🇹":7111,"🇭🇺":7112,"🇮🇨":7113,"🇮🇩":7114,"🇮🇪":7115,"🇮🇱":7116,"🇮🇲":7117,"🇮🇳":7118,"🇮🇴":7119,"🇮🇶":7120,"🇮🇷":7121,"🇮🇸":7122,"🇮🇹":7123,"🇯🇪":7124,"🇯🇲":7125,"🇯🇴":7126,"🇯🇵":7127,"🇰🇪":7128,"🇰🇬":7129,"🇰🇭":7130,"🇰🇮":7131,"🇰🇲":7132,"🇰🇳":7133,"🇰🇵":7134,"🇰🇷":7135,"🇰🇼":7136,"🇰🇾":7137,"🇰🇿":7138,"🇱🇦":7139,"🇱🇧":7140,"🇱🇨":7141,"🇱🇮":7142,"🇱🇰":7143,"🇱🇷":7144,"🇱🇸":7145,"🇱🇹":7146,"🇱🇺":7147,"🇱🇻":7148,"🇱🇾":7149,"🇲🇦":7150,"🇲🇨":7151,"🇲🇩":7152,"🇲🇪":7153,"🇲🇫":7154,"🇲🇬":7155,"🇲🇭":7156,"🇲🇰":7157,"🇲🇱":7158,"🇲🇲":7159,"🇲🇳":7160,"🇲🇴":7161,"🇲🇵":7162,"🇲🇶":7163,"🇲🇷":7164,"🇲🇸":7165,"🇲🇹":7166,"🇲🇺":7167,"🇲🇻":7168,"🇲🇼":7169,"🇲🇽":7170,"🇲🇾":7171,"🇲🇿":7172,"🇳🇦":7173,"🇳🇨":7174,"🇳🇪":7175,"🇳🇫":7176,"🇳🇬":7177,"🇳🇮":7178,"🇳🇱":7179,"🇳🇴":7180,"🇳🇵":7181,"🇳🇷":7182,"🇳🇺":7183,"🇳🇿":7184,"🇴🇲":7185,"🇵🇦":7186,"🇵🇪":7187,"🇵🇫":7188,"🇵🇬":7189,"🇵🇭":7190,"🇵🇰":7191,"🇵🇱":7192,"🇵🇲":7193,"🇵🇳":7194,"🇵🇷":7195,"🇵🇸":7196,"🇵🇹":7197,"🇵🇼":7198,"🇵🇾":7199,"🇶🇦":7200,"🇷🇪":7201,"🇷🇴":7202,"🇷🇸":7203,"🇷🇺":7204,"🇷🇼":7205,"🇸🇦":7206,"🇸🇧":7207,"🇸🇨":7208,"🇸🇩":7209,"🇸🇪":7210,"🇸🇬":7211,"🇸🇭":7212,"🇸🇮":7213,"🇸🇯":7214,"🇸🇰":7215,"🇸🇱":7216,"🇸🇲":7217,"🇸🇳":7218,"🇸🇴":7219,"🇸🇷":7220,"🇸🇸":7221,"🇸🇹":7222,"🇸🇻":7223,"🇸🇽":7224,"🇸🇾":7225,"🇸🇿":7226,"🇹🇦":7227,"🇹🇨":7228,"🇹🇩":7229,"🇹🇫":7230,"🇹🇬":7231,"🇹🇭":7232,"🇹🇯":7233,"🇹🇰":7234,"🇹🇱":7235,"🇹🇲":7236,"🇹🇳":7237,"🇹🇴":7238,"🇹🇷":7239,"🇹🇹":7240,"🇹🇻":7241,"🇹🇼":7242,"🇹🇿":7243,"🇺🇦":7244,"🇺🇬":7245,"🇺🇲":7246,"🇺🇳":7247,"🇺🇸":7248,"🇺🇾":7249,"🇺🇿":7250,"🇻🇦":7251,"🇻🇨":7252,"🇻🇪":7253,"🇻🇬":7254,"🇻🇮":7255,"🇻🇳":7256,"🇻🇺":7257,"🇼🇫":7258,"🇼🇸":7259,"🇽🇰":7260,"🇾🇪":7261,"🇾🇹":7262,"🇿🇦":7263,"🇿🇲":7264,"🇿🇼":7265,"🈁":6400,"🈂":6401,"🈚":6407,"🈯":6404,"🈲":6408,"🈳":6412,"🈴":6411,"🈵":6416,"🈶":6403,"🈷":6402,"🈸":6410,"🈹":6406,"🈺":6415,"🉐":6405,"🉑":6409,"🌀":4197,"🌁":449,"🌂":4199,"🌃":450,"🌄":452,"🌅":453,"🌆":454,"🌇":455,"🌈":4198,"🌉":456,"🌊":4210,"🌋":410,"🌌":4184,"🌍":41,"🌎":42,"🌏":43,"🌐":44,"🌑":4164,"🌒":4165,"🌓":4166,"🌔":4167,"🌕":4168,"🌖":4169,"🌗":4170,"🌘":4171,"🌙":4172,"🌚":4173,"🌛":4174,"🌜":4175,"🌝":4178,"🌞":4179,"🌟":4182,"🌠":4183,"🌡":4176,"🌤":4188,"🌥":4189,"🌦":4190,"🌧":4191,"🌨":4192,"🌩":4193,"🌪":4194,"🌫":4195,"🌬":4196,"🌭":347,"🌮":349,"🌯":350,"🌰":331,"🌱":2116,"🌲":2117,"🌳":2118,"🌴":2119,"🌵":2120,"🌶":323,"🌷":2115,"🌸":2107,"🌹":2110,"🌺":2112,"🌻":2113,"🌼":2114,"🌽":322,"🌾":2121,"🌿":2122,"🍀":2124,"🍁":2125,"🍂":2126,"🍃":2127,"🍄":329,"🍅":316,"🍆":319,"🍇":31,"🍈":32,"🍉":33,"🍊":34,"🍋":35,"🍌":36,"🍍":37,"🍎":39,"🍏":310,"🍐":311,"🍑":312,"🍒":313,"🍓":314,"🍔":344,"🍕":346,"🍖":340,"🍗":341,"🍘":364,"🍙":365,"🍚":366,"🍛":367,"🍜":368,"🍝":369,"🍞":332,"🍟":345,"🍠":370,"🍡":376,"🍢":371,"🍣":372,"🍤":373,"🍥":374,"🍦":385,"🍧":386,"🍨":387,"🍩":388,"🍪":389,"🍫":394,"🍬":395,"🍭":396,"🍮":397,"🍯":398,"🍰":391,"🍱":363,"🍲":356,"🍳":354,"🍴":3118,"🍵":3102,"🍶":3103,"🍷":3105,"🍸":3106,"🍹":3107,"🍺":3108,"🍻":3109,"🍼":399,"🍽":3117,"🍾":3104,"🍿":359,"🎀":517,"🎁":518,"🎂":390,"🎃":51,"🎄":52,"🎅":9177,"🎆":53,"🎇":54,"🎈":57,"🎉":58,"🎊":59,"🎋":510,"🎌":73,"🎍":511,"🎎":512,"🎏":513,"🎐":514,"🎑":515,"🎒":625,"🎓":637,"🎖":522,"🎗":519,"🎙":656,"🎚":657,"🎛":658,"🎞":689,"🎟":520,"🎠":458,"🎡":459,"🎢":460,"🎣":549,"🎤":659,"🎥":688,"🎦":6324,"🎧":660,"🎨":577,"🎩":636,"🎪":462,"🎫":521,"🎬":691,"🎭":575,"🎮":561,"🎯":555,"🎰":563,"🎱":558,"🎲":564,"🎳":537,"🎴":574,"🎵":654,"🎶":655,"🎷":662,"🎸":663,"🎹":664,"🎺":665,"🎻":666,"🎼":653,"🎽":551,"🎾":535,"🎿":552,"🏀":531,"🏁":71,"🏂":9248,"🏃‍♀":9232,"🏃‍♂":9231,"🏃":9230,"🏄‍♀":9254,"🏄‍♂":9253,"🏄":9252,"🏅":524,"🏆":523,"🏇":9246,"🏈":533,"🏉":534,"🏊‍♀":9260,"🏊‍♂":9259,"🏊":9258,"🏋‍♀":9266,"🏋‍♂":9265,"🏋":9264,"🏌‍♀":9251,"🏌‍♂":9250,"🏌":9249,"🏍":492,"🏎":491,"🏏":538,"🏐":532,"🏑":539,"🏒":540,"🏓":542,"🏔":48,"🏕":412,"🏖":413,"🏗":419,"🏘":421,"🏙":451,"🏚":422,"🏛":418,"🏜":414,"🏝":415,"🏞":416,"🏟":417,"🏠":423,"🏡":424,"🏢":425,"🏣":426,"🏤":427,"🏥":428,"🏦":429,"🏧":6234,"🏨":430,"🏩":431,"🏪":432,"🏫":433,"🏬":434,"🏭":435,"🏮":6102,"🏯":436,"🏰":437,"🏳‍🌈":76,"🏳":75,"🏴‍☠":77,"🏴󠁧󠁢󠁥󠁮󠁧󠁿":7266,"🏴󠁧󠁢󠁳󠁣󠁴󠁿":7267,"🏴󠁧󠁢󠁷󠁬󠁳󠁿":7268,"🏴":74,"🏵":2109,"🏷":6120,"🏸":543,"🏹":6189,"🏺":3121,"🏻":81,"🏼":82,"🏽":83,"🏾":84,"🏿":85,"🐀":244,"🐁":243,"🐂":225,"🐃":226,"🐄":227,"🐅":217,"🐆":218,"🐇":247,"🐈":214,"🐉":282,"🐊":277,"🐋":286,"🐌":294,"🐍":280,"🐎":220,"🐏":232,"🐐":234,"🐑":233,"🐒":22,"🐓":262,"🐔":261,"🐕‍🦺":28,"🐕":26,"🐖":229,"🐗":230,"🐘":239,"🐙":292,"🐚":293,"🐛":296,"🐜":297,"🐝":298,"🐞":299,"🐟":288,"🐠":289,"🐡":290,"🐢":278,"🐣":263,"🐤":264,"🐥":265,"🐦":266,"🐧":267,"🐨":252,"🐩":29,"🐪":235,"🐫":236,"🐬":287,"🐭":242,"🐮":224,"🐯":216,"🐰":246,"🐱":213,"🐲":281,"🐳":285,"🐴":219,"🐵":21,"🐶":25,"🐷":228,"🐸":276,"🐹":245,"🐺":210,"🐻":251,"🐼":253,"🐽":231,"🐾":259,"🐿":248,"👀":945,"👁‍🗨":1145,"👁":946,"👂":939,"👃":941,"👄":948,"👅":947,"👆":915,"👇":917,"👈":913,"👉":914,"👊":922,"👋":91,"👌":96,"👍":919,"👎":920,"👏":925,"👐":927,"👑":634,"👒":635,"👓":61,"👔":66,"👕":67,"👖":68,"👗":613,"👘":614,"👙":619,"👚":620,"👛":621,"👜":622,"👝":623,"👞":626,"👟":627,"👠":630,"👡":631,"👢":633,"👣":9334,"👤":9332,"👥":9333,"👦":951,"👧":952,"👨‍🌾":9118,"👨‍🍳":9121,"👨‍🎓":9109,"👨‍🎤":9139,"👨‍🎨":9142,"👨‍🏫":9112,"👨‍🏭":9127,"👨‍👦‍👦":9322,"👨‍👦":9321,"👨‍👧‍👦":9324,"👨‍👧‍👧":9325,"👨‍👧":9323,"👨‍👨‍👦":9311,"👨‍👨‍👦‍👦":9314,"👨‍👨‍👧":9312,"👨‍👨‍👧‍👦":9313,"👨‍👨‍👧‍👧":9315,"👨‍👩‍👦":9306,"👨‍👩‍👦‍👦":9309,"👨‍👩‍👧":9307,"👨‍👩‍👧‍👦":9308,"👨‍👩‍👧‍👧":9310,"👨‍💻":9136,"👨‍💼":9130,"👨‍🔧":9124,"👨‍🔬":9133,"👨‍🚀":9148,"👨‍🚒":9151,"👨‍🦯":9222,"👨‍🦰":957,"👨‍🦱":958,"👨‍🦲":960,"👨‍🦳":959,"👨‍🦼":9225,"👨‍🦽":9228,"👨‍⚕":9106,"👨‍⚖":9115,"👨‍✈":9145,"👨‍❤‍👨":9303,"👨‍❤‍💋‍👨":9299,"👨":955,"👩‍🌾":9119,"👩‍🍳":9122,"👩‍🎓":9110,"👩‍🎤":9140,"👩‍🎨":9143,"👩‍🏫":9113,"👩‍🏭":9128,"👩‍👦‍👦":9327,"👩‍👦":9326,"👩‍👧‍👦":9329,"👩‍👧‍👧":9330,"👩‍👧":9328,"👩‍👩‍👦":9316,"👩‍👩‍👦‍👦":9319,"👩‍👩‍👧":9317,"👩‍👩‍👧‍👦":9318,"👩‍👩‍👧‍👧":9320,"👩‍💻":9137,"👩‍💼":9131,"👩‍🔧":9125,"👩‍🔬":9134,"👩‍🚀":9149,"👩‍🚒":9152,"👩‍🦯":9223,"👩‍🦰":962,"👩‍🦱":964,"👩‍🦲":968,"👩‍🦳":966,"👩‍🦼":9226,"👩‍🦽":9229,"👩‍⚕":9107,"👩‍⚖":9116,"👩‍✈":9146,"👩‍❤‍👨":9302,"👩‍❤‍👩":9304,"👩‍❤‍💋‍👨":9298,"👩‍❤‍💋‍👩":9300,"👩":961,"👪":9305,"👫":9295,"👬":9296,"👭":9294,"👮‍♀":9155,"👮‍♂":9154,"👮":9153,"👯‍♀":9238,"👯‍♂":9237,"👯":9236,"👰":9173,"👱‍♀":970,"👱‍♂":971,"👱":954,"👲":9170,"👳‍♀":9169,"👳‍♂":9168,"👳":9167,"👴":973,"👵":974,"👶":949,"👷‍♀":9164,"👷‍♂":9163,"👷":9162,"👸":9166,"👹":197,"👺":198,"👻":199,"👼":9176,"👽":1100,"👾":1101,"👿":192,"💀":193,"💁‍♀":989,"💁‍♂":988,"💁":987,"💂‍♀":9161,"💂‍♂":9160,"💂":9159,"💃":9233,"💄":641,"💅":932,"💆‍♀":9208,"💆‍♂":9207,"💆":9206,"💇‍♀":9211,"💇‍♂":9210,"💇":9209,"💈":461,"💉":6208,"💊":6210,"💋":1115,"💌":1116,"💍":642,"💎":643,"💏":9297,"💐":2106,"💑":9301,"💒":438,"💓":1121,"💔":1126,"💕":1123,"💖":1119,"💗":1120,"💘":1117,"💙":1131,"💚":1130,"💛":1129,"💜":1132,"💝":1118,"💞":1122,"💟":1124,"💠":6447,"💡":6100,"💢":1137,"💣":1143,"💤":1149,"💥":1138,"💦":1140,"💧":4209,"💨":1141,"💩":195,"💪":934,"💫":1139,"💬":1144,"💭":1148,"💮":2108,"💯":1136,"💰":6121,"💱":6130,"💲":6131,"💳":6127,"💴":6122,"💵":6123,"💶":6124,"💷":6125,"💸":6126,"💹":6129,"💺":4123,"💻":677,"💼":6152,"💽":683,"💾":684,"💿":685,"📀":686,"📁":6153,"📂":6154,"📃":6113,"📄":6115,"📅":6156,"📆":6157,"📇":6160,"📈":6161,"📉":6162,"📊":6163,"📋":6164,"📌":6165,"📍":6166,"📎":6167,"📏":6169,"📐":6170,"📑":6118,"📒":6112,"📓":6111,"📔":6104,"📕":6105,"📖":6106,"📗":6107,"📘":6108,"📙":6109,"📚":6110,"📛":6337,"📜":6114,"📝":6151,"📞":672,"📟":673,"📠":674,"📡":6207,"📢":648,"📣":649,"📤":6136,"📥":6137,"📦":6138,"📧":6133,"📨":6134,"📩":6135,"📪":6140,"📫":6139,"📬":6141,"📭":6142,"📮":6143,"📯":650,"📰":6116,"📱":669,"📲":670,"📳":6328,"📴":6329,"📵":6256,"📶":6327,"📷":693,"📸":694,"📹":695,"📺":692,"📻":661,"📼":696,"📽":690,"📿":640,"🔀":6306,"🔁":6307,"🔂":6308,"🔃":6274,"🔄":6275,"🔅":6325,"🔆":6326,"🔇":644,"🔈":645,"🔉":646,"🔊":647,"🔋":675,"🔌":676,"🔍":697,"🔎":698,"🔏":6177,"🔐":6178,"🔑":6179,"🔒":6175,"🔓":6176,"🔔":651,"🔕":652,"🔖":6119,"🔗":6197,"🔘":6448,"🔙":6276,"🔚":6277,"🔛":6278,"🔜":6279,"🔝":6280,"🔞":6257,"🔟":6377,"🔠":6378,"🔡":6379,"🔢":6380,"🔣":6381,"🔤":6382,"🔥":4208,"🔦":6101,"🔧":6191,"🔨":6181,"🔩":6192,"🔪":3120,"🔫":6188,"🔬":6205,"🔭":6206,"🔮":559,"🔯":6292,"🔰":6338,"🔱":6336,"🔲":6450,"🔳":6449,"🔴":6417,"🔵":6421,"🔶":6441,"🔷":6442,"🔸":6443,"🔹":6444,"🔺":6445,"🔻":6446,"🔼":6316,"🔽":6318,"🕉":6283,"🕊":268,"🕋":446,"🕌":442,"🕍":444,"🕎":6291,"🕐":4142,"🕑":4144,"🕒":4146,"🕓":4148,"🕔":4150,"🕕":4152,"🕖":4154,"🕗":4156,"🕘":4158,"🕙":4160,"🕚":4162,"🕛":4140,"🕜":4143,"🕝":4145,"🕞":4147,"🕟":4149,"🕠":4151,"🕡":4153,"🕢":4155,"🕣":4157,"🕤":4159,"🕥":4161,"🕦":4163,"🕧":4141,"🕯":699,"🕰":4139,"🕳":1142,"🕴":9235,"🕵‍♀":9158,"🕵‍♂":9157,"🕵":9156,"🕶":62,"🕷":2101,"🕸":2102,"🕹":562,"🕺":9234,"🖇":6168,"🖊":6148,"🖋":6147,"🖌":6149,"🖍":6150,"🖐":93,"🖕":916,"🖖":95,"🖤":1134,"🖥":678,"🖨":679,"🖱":681,"🖲":682,"🖼":576,"🗂":6155,"🗃":6172,"🗄":6173,"🗑":6174,"🗒":6158,"🗓":6159,"🗜":6194,"🗝":6180,"🗞":6117,"🗡":6186,"🗣":9331,"🗨":1146,"🗯":1147,"🗳":6144,"🗺":45,"🗻":411,"🗼":439,"🗽":440,"🗾":46,"🗿":6233,"😀":11,"😁":14,"😂":18,"😃":12,"😄":13,"😅":16,"😆":15,"😇":113,"😈":191,"😉":111,"😊":112,"😋":122,"😌":142,"😍":115,"😎":160,"😏":137,"😐":134,"😑":135,"😒":138,"😓":183,"😔":143,"😕":163,"😖":180,"😗":118,"😘":117,"😙":121,"😚":120,"😛":123,"😜":124,"😝":126,"😞":182,"😟":164,"😠":189,"😡":188,"😢":177,"😣":181,"😤":187,"😥":176,"😦":172,"😧":173,"😨":174,"😩":184,"😪":144,"😫":185,"😬":140,"😭":178,"😮":167,"😯":168,"😰":175,"😱":179,"😲":169,"😳":170,"😴":146,"😵":156,"😶":136,"😷":147,"😸":1104,"😹":1105,"😺":1103,"😻":1106,"😼":1107,"😽":1108,"😾":1111,"😿":1110,"🙀":1109,"🙁":165,"🙂":19,"🙃":110,"🙄":139,"🙅‍♀":983,"🙅‍♂":982,"🙅":981,"🙆‍♀":986,"🙆‍♂":985,"🙆":984,"🙇‍♀":998,"🙇‍♂":997,"🙇":996,"🙈":1112,"🙉":1113,"🙊":1114,"🙋‍♀":992,"🙋‍♂":991,"🙋":990,"🙌":926,"🙍‍♀":977,"🙍‍♂":976,"🙍":975,"🙎‍♀":980,"🙎‍♂":979,"🙎":978,"🙏":930,"🚀":4129,"🚁":4124,"🚂":463,"🚃":464,"🚄":465,"🚅":466,"🚆":467,"🚇":468,"🚈":469,"🚉":470,"🚊":471,"🚋":474,"🚌":475,"🚍":476,"🚎":477,"🚏":4100,"🚐":478,"🚑":479,"🚒":480,"🚓":481,"🚔":482,"🚕":483,"🚖":484,"🚗":485,"🚘":486,"🚙":487,"🚚":488,"🚛":489,"🚜":490,"🚝":472,"🚞":473,"🚟":4125,"🚠":4126,"🚡":4127,"🚢":4117,"🚣‍♀":9257,"🚣‍♂":9256,"🚣":9255,"🚤":4113,"🚥":4106,"🚦":4107,"🚧":4109,"🚨":4105,"🚩":72,"🚪":6213,"🚫":6250,"🚬":6230,"🚭":6252,"🚮":6235,"🚯":6253,"🚰":6236,"🚱":6254,"🚲":497,"🚳":6251,"🚴‍♀":9269,"🚴‍♂":9268,"🚴":9267,"🚵‍♀":9272,"🚵‍♂":9271,"🚵":9270,"🚶‍♀":9214,"🚶‍♂":9213,"🚶":9212,"🚷":6255,"🚸":6248,"🚹":6238,"🚺":6239,"🚻":6240,"🚼":6241,"🚽":6217,"🚾":6242,"🚿":6218,"🛀":9291,"🛁":6219,"🛂":6243,"🛃":6244,"🛄":6245,"🛅":6246,"🛋":6215,"🛌":9292,"🛍":624,"🛎":4131,"🛏":6214,"🛐":6281,"🛑":4108,"🛒":6229,"🛕":443,"🛠":6185,"🛡":6190,"🛢":4103,"🛣":4101,"🛤":4102,"🛥":4116,"🛩":4119,"🛫":4120,"🛬":4121,"🛰":4128,"🛳":4114,"🛴":498,"🛵":493,"🛶":4112,"🛷":553,"🛸":4130,"🛹":499,"🛺":496,"🟠":6418,"🟡":6419,"🟢":6420,"🟣":6422,"🟤":6423,"🟥":6426,"🟦":6430,"🟧":6427,"🟨":6428,"🟩":6429,"🟪":6431,"🟫":6432,"🤍":1135,"🤎":1133,"🤏":97,"🤐":132,"🤑":127,"🤒":148,"🤓":161,"🤔":131,"🤕":149,"🤖":1102,"🤗":128,"🤘":911,"🤙":912,"🤚":92,"🤛":923,"🤜":924,"🤝":929,"🤞":99,"🤟":910,"🤠":158,"🤡":196,"🤢":150,"🤣":17,"🤤":145,"🤥":141,"🤦‍♀":9101,"🤦‍♂":9100,"🤦":999,"🤧":152,"🤨":133,"🤩":116,"🤪":125,"🤫":130,"🤬":190,"🤭":129,"🤮":151,"🤯":157,"🤰":9174,"🤱":9175,"🤲":928,"🤳":933,"🤴":9165,"🤵":9172,"🤶":9178,"🤷‍♀":9104,"🤷‍♂":9103,"🤷":9102,"🤸‍♀":9275,"🤸‍♂":9274,"🤸":9273,"🤹‍♀":9287,"🤹‍♂":9286,"🤹":9285,"🤺":9245,"🤼‍♀":9278,"🤼‍♂":9277,"🤼":9276,"🤽‍♀":9281,"🤽‍♂":9280,"🤽":9279,"🤾‍♀":9284,"🤾‍♂":9283,"🤾":9282,"🤿":550,"🥀":2111,"🥁":668,"🥂":3110,"🥃":3111,"🥄":3119,"🥅":546,"🥇":525,"🥈":526,"🥉":527,"🥊":544,"🥋":545,"🥌":554,"🥍":541,"🥎":530,"🥏":536,"🥐":333,"🥑":318,"🥒":324,"🥓":343,"🥔":320,"🥕":321,"🥖":334,"🥗":358,"🥘":355,"🥙":351,"🥚":353,"🥛":3100,"🥜":330,"🥝":315,"🥞":337,"🥟":377,"🥠":378,"🥡":379,"🥢":3116,"🥣":357,"🥤":3112,"🥥":317,"🥦":326,"🥧":393,"🥨":335,"🥩":342,"🥪":348,"🥫":362,"🥬":325,"🥭":38,"🥮":375,"🥯":336,"🥰":114,"🥱":186,"🥳":159,"🥴":155,"🥵":153,"🥶":154,"🥺":171,"🥻":615,"🥼":64,"🥽":63,"🥾":628,"🥿":629,"🦀":380,"🦁":215,"🦂":2103,"🦃":260,"🦄":221,"🦅":269,"🦆":270,"🦇":250,"🦈":291,"🦉":272,"🦊":211,"🦋":295,"🦌":223,"🦍":23,"🦎":279,"🦏":240,"🦐":382,"🦑":383,"🦒":238,"🦓":222,"🦔":249,"🦕":283,"🦖":284,"🦗":2100,"🦘":257,"🦙":237,"🦚":274,"🦛":241,"🦜":275,"🦝":212,"🦞":381,"🦟":2104,"🦠":2105,"🦡":258,"🦢":271,"🦥":254,"🦦":255,"🦧":24,"🦨":256,"🦩":273,"🦪":384,"🦮":27,"🦯":6196,"🦴":944,"🦵":937,"🦶":938,"🦷":943,"🦸‍♀":9181,"🦸‍♂":9180,"🦸":9179,"🦹‍♀":9184,"🦹‍♂":9183,"🦹":9182,"🦺":65,"🦻":940,"🦼":495,"🦽":494,"🦾":935,"🦿":936,"🧀":339,"🧁":392,"🧂":361,"🧃":3113,"🧄":327,"🧅":328,"🧆":352,"🧇":338,"🧈":360,"🧉":3114,"🧊":3115,"🧍‍♀":9217,"🧍‍♂":9216,"🧍":9215,"🧎‍♀":9220,"🧎‍♂":9219,"🧎":9218,"🧏‍♀":995,"🧏‍♂":994,"🧏":993,"🧐":162,"🧑‍🌾":9117,"🧑‍🍳":9120,"🧑‍🎓":9108,"🧑‍🎤":9138,"🧑‍🎨":9141,"🧑‍🏫":9111,"🧑‍🏭":9126,"🧑‍💻":9135,"🧑‍💼":9129,"🧑‍🔧":9123,"🧑‍🔬":9132,"🧑‍🚀":9147,"🧑‍🚒":9150,"🧑‍🤝‍🧑":9293,"🧑‍🦯":9221,"🧑‍🦰":963,"🧑‍🦱":965,"🧑‍🦲":969,"🧑‍🦳":967,"🧑‍🦼":9224,"🧑‍🦽":9227,"🧑‍⚕":9105,"🧑‍⚖":9114,"🧑‍✈":9144,"🧑":953,"🧒":950,"🧓":972,"🧔":956,"🧕":9171,"🧖‍♀":9241,"🧖‍♂":9240,"🧖":9239,"🧗‍♀":9244,"🧗‍♂":9243,"🧗":9242,"🧘‍♀":9290,"🧘‍♂":9289,"🧘":9288,"🧙‍♀":9187,"🧙‍♂":9186,"🧙":9185,"🧚‍♀":9190,"🧚‍♂":9189,"🧚":9188,"🧛‍♀":9193,"🧛‍♂":9192,"🧛":9191,"🧜‍♀":9196,"🧜‍♂":9195,"🧜":9194,"🧝‍♀":9199,"🧝‍♂":9198,"🧝":9197,"🧞‍♀":9202,"🧞‍♂":9201,"🧞":9200,"🧟‍♀":9205,"🧟‍♂":9204,"🧟":9203,"🧠":942,"🧡":1128,"🧢":638,"🧣":69,"🧤":610,"🧥":611,"🧦":612,"🧧":516,"🧨":55,"🧩":565,"🧪":6202,"🧫":6203,"🧬":6204,"🧭":47,"🧮":687,"🧯":6228,"🧰":6199,"🧱":420,"🧲":6200,"🧳":4132,"🧴":6221,"🧵":578,"🧶":579,"🧷":6222,"🧸":566,"🧹":6223,"🧺":6224,"🧻":6225,"🧼":6226,"🧽":6227,"🧾":6128,"🧿":560,"🩰":632,"🩱":616,"🩲":617,"🩳":618,"🩸":6209,"🩹":6211,"🩺":6212,"🪀":556,"🪁":557,"🪂":4122,"🪐":4180,"🪑":6216,"🪒":6220,"🪓":6182,"🪔":6103,"🪕":667,"‼":6355,"⁉":6356,"™":6364,"ℹ":6389,"↔":6269,"↕":6268,"↖":6267,"↗":6261,"↘":6263,"↙":6265,"↩":6270,"↪":6271,"⌚":4135,"⌛":4133,"⌨":680,"⏏":6323,"⏩":6310,"⏪":6314,"⏫":6317,"⏬":6319,"⏭":6311,"⏮":6315,"⏯":6312,"⏰":4136,"⏱":4137,"⏲":4138,"⏳":4134,"⏸":6320,"⏹":6321,"⏺":6322,"Ⓜ":6391,"▪":6439,"▫":6440,"▶":6309,"◀":6313,"◻":6436,"◼":6435,"◽":6438,"◾":6437,"☀":4177,"☁":4185,"☂":4200,"☃":4205,"☄":4207,"☎":671,"☑":6341,"☔":4201,"☕":3101,"☘":2123,"☝":918,"☠":194,"☢":6258,"☣":6259,"☦":6288,"☪":6289,"☮":6290,"☯":6286,"☸":6285,"☹":166,"☺":119,"♈":6293,"♉":6294,"♊":6295,"♋":6296,"♌":6297,"♍":6298,"♎":6299,"♏":6300,"♐":6301,"♑":6302,"♒":6303,"♓":6304,"♟":571,"♠":567,"♣":570,"♥":568,"♦":569,"♨":457,"♻":6334,"♾":6333,"♿":6237,"⚒":6184,"⚓":4110,"⚔":6187,"⚖":6195,"⚗":6201,"⚙":6193,"⚛":6282,"⚜":6335,"⚠":6247,"⚡":4203,"⚪":6425,"⚫":6424,"⚰":6231,"⚱":6232,"⚽":528,"⚾":529,"⛄":4206,"⛅":4186,"⛈":4187,"⛎":6305,"⛏":6183,"⛑":639,"⛓":6198,"⛔":6249,"⛩":445,"⛪":441,"⛰":49,"⛱":4202,"⛲":447,"⛳":547,"⛴":4115,"⛵":4111,"⛷":9247,"⛸":548,"⛹‍♀":9263,"⛹‍♂":9262,"⛹":9261,"⛺":448,"⛽":4104,"✂":6171,"✅":6340,"✈":4118,"✉":6132,"✊":921,"✋":94,"✌":98,"✍":931,"✏":6145,"✒":6146,"✔":6342,"✖":6343,"✝":6287,"✡":6284,"✨":56,"✳":6352,"✴":6353,"❄":4204,"❇":6354,"❌":6344,"❎":6345,"❓":6357,"❔":6358,"❕":6359,"❗":6360,"❣":1125,"❤":1127,"➕":6346,"➖":6347,"➗":6348,"➡":6262,"➰":6349,"➿":6350,"⤴":6272,"⤵":6273,"⬅":6266,"⬆":6260,"⬇":6264,"⬛":6433,"⬜":6434,"⭐":4181,"⭕":6339,"〰":6361,"〽":6351,"㊗":6413,"㊙":6414,"🎅🏻":0,"🎅🏼":0,"🎅🏽":0,"🎅🏾":0,"🎅🏿":0,"🏂🏻":0,"🏂🏼":0,"🏂🏽":0,"🏂🏾":0,"🏂🏿":0,"🏃🏻‍♀":0,"🏃🏼‍♀":0,"🏃🏽‍♀":0,"🏃🏾‍♀":0,"🏃🏿‍♀":0,"🏃🏻‍♂":0,"🏃🏼‍♂":0,"🏃🏽‍♂":0,"🏃🏾‍♂":0,"🏃🏿‍♂":0,"🏃🏻":0,"🏃🏼":0,"🏃🏽":0,"🏃🏾":0,"🏃🏿":0,"🏄🏻‍♀":0,"🏄🏼‍♀":0,"🏄🏽‍♀":0,"🏄🏾‍♀":0,"🏄🏿‍♀":0,"🏄🏻‍♂":0,"🏄🏼‍♂":0,"🏄🏽‍♂":0,"🏄🏾‍♂":0,"🏄🏿‍♂":0,"🏄🏻":0,"🏄🏼":0,"🏄🏽":0,"🏄🏾":0,"🏄🏿":0,"🏇🏻":0,"🏇🏼":0,"🏇🏽":0,"🏇🏾":0,"🏇🏿":0,"🏊🏻‍♀":0,"🏊🏼‍♀":0,"🏊🏽‍♀":0,"🏊🏾‍♀":0,"🏊🏿‍♀":0,"🏊🏻‍♂":0,"🏊🏼‍♂":0,"🏊🏽‍♂":0,"🏊🏾‍♂":0,"🏊🏿‍♂":0,"🏊🏻":0,"🏊🏼":0,"🏊🏽":0,"🏊🏾":0,"🏊🏿":0,"🏋🏻‍♀":0,"🏋🏼‍♀":0,"🏋🏽‍♀":0,"🏋🏾‍♀":0,"🏋🏿‍♀":0,"🏋🏻‍♂":0,"🏋🏼‍♂":0,"🏋🏽‍♂":0,"🏋🏾‍♂":0,"🏋🏿‍♂":0,"🏋🏻":0,"🏋🏼":0,"🏋🏽":0,"🏋🏾":0,"🏋🏿":0,"🏌🏻‍♀":0,"🏌🏼‍♀":0,"🏌🏽‍♀":0,"🏌🏾‍♀":0,"🏌🏿‍♀":0,"🏌🏻‍♂":0,"🏌🏼‍♂":0,"🏌🏽‍♂":0,"🏌🏾‍♂":0,"🏌🏿‍♂":0,"🏌🏻":0,"🏌🏼":0,"🏌🏽":0,"🏌🏾":0,"🏌🏿":0,"👂🏻":0,"👂🏼":0,"👂🏽":0,"👂🏾":0,"👂🏿":0,"👃🏻":0,"👃🏼":0,"👃🏽":0,"👃🏾":0,"👃🏿":0,"👆🏻":0,"👆🏼":0,"👆🏽":0,"👆🏾":0,"👆🏿":0,"👇🏻":0,"👇🏼":0,"👇🏽":0,"👇🏾":0,"👇🏿":0,"👈🏻":0,"👈🏼":0,"👈🏽":0,"👈🏾":0,"👈🏿":0,"👉🏻":0,"👉🏼":0,"👉🏽":0,"👉🏾":0,"👉🏿":0,"👊🏻":0,"👊🏼":0,"👊🏽":0,"👊🏾":0,"👊🏿":0,"👋🏻":0,"👋🏼":0,"👋🏽":0,"👋🏾":0,"👋🏿":0,"👌🏻":0,"👌🏼":0,"👌🏽":0,"👌🏾":0,"👌🏿":0,"👍🏻":0,"👍🏼":0,"👍🏽":0,"👍🏾":0,"👍🏿":0,"👎🏻":0,"👎🏼":0,"👎🏽":0,"👎🏾":0,"👎🏿":0,"👏🏻":0,"👏🏼":0,"👏🏽":0,"👏🏾":0,"👏🏿":0,"👐🏻":0,"👐🏼":0,"👐🏽":0,"👐🏾":0,"👐🏿":0,"👦🏻":0,"👦🏼":0,"👦🏽":0,"👦🏾":0,"👦🏿":0,"👧🏻":0,"👧🏼":0,"👧🏽":0,"👧🏾":0,"👧🏿":0,"👨🏻‍🌾":0,"👨🏼‍🌾":0,"👨🏽‍🌾":0,"👨🏾‍🌾":0,"👨🏿‍🌾":0,"👨🏻‍🍳":0,"👨🏼‍🍳":0,"👨🏽‍🍳":0,"👨🏾‍🍳":0,"👨🏿‍🍳":0,"👨🏻‍🎓":0,"👨🏼‍🎓":0,"👨🏽‍🎓":0,"👨🏾‍🎓":0,"👨🏿‍🎓":0,"👨🏻‍🎤":0,"👨🏼‍🎤":0,"👨🏽‍🎤":0,"👨🏾‍🎤":0,"👨🏿‍🎤":0,"👨🏻‍🎨":0,"👨🏼‍🎨":0,"👨🏽‍🎨":0,"👨🏾‍🎨":0,"👨🏿‍🎨":0,"👨🏻‍🏫":0,"👨🏼‍🏫":0,"👨🏽‍🏫":0,"👨🏾‍🏫":0,"👨🏿‍🏫":0,"👨🏻‍🏭":0,"👨🏼‍🏭":0,"👨🏽‍🏭":0,"👨🏾‍🏭":0,"👨🏿‍🏭":0,"👨🏻‍💻":0,"👨🏼‍💻":0,"👨🏽‍💻":0,"👨🏾‍💻":0,"👨🏿‍💻":0,"👨🏻‍💼":0,"👨🏼‍💼":0,"👨🏽‍💼":0,"👨🏾‍💼":0,"👨🏿‍💼":0,"👨🏻‍🔧":0,"👨🏼‍🔧":0,"👨🏽‍🔧":0,"👨🏾‍🔧":0,"👨🏿‍🔧":0,"👨🏻‍🔬":0,"👨🏼‍🔬":0,"👨🏽‍🔬":0,"👨🏾‍🔬":0,"👨🏿‍🔬":0,"👨🏻‍🚀":0,"👨🏼‍🚀":0,"👨🏽‍🚀":0,"👨🏾‍🚀":0,"👨🏿‍🚀":0,"👨🏻‍🚒":0,"👨🏼‍🚒":0,"👨🏽‍🚒":0,"👨🏾‍🚒":0,"👨🏿‍🚒":0,"👨🏻‍🦯":0,"👨🏼‍🦯":0,"👨🏽‍🦯":0,"👨🏾‍🦯":0,"👨🏿‍🦯":0,"👨🏻‍🦰":0,"👨🏼‍🦰":0,"👨🏽‍🦰":0,"👨🏾‍🦰":0,"👨🏿‍🦰":0,"👨🏻‍🦱":0,"👨🏼‍🦱":0,"👨🏽‍🦱":0,"👨🏾‍🦱":0,"👨🏿‍🦱":0,"👨🏻‍🦲":0,"👨🏼‍🦲":0,"👨🏽‍🦲":0,"👨🏾‍🦲":0,"👨🏿‍🦲":0,"👨🏻‍🦳":0,"👨🏼‍🦳":0,"👨🏽‍🦳":0,"👨🏾‍🦳":0,"👨🏿‍🦳":0,"👨🏻‍🦼":0,"👨🏼‍🦼":0,"👨🏽‍🦼":0,"👨🏾‍🦼":0,"👨🏿‍🦼":0,"👨🏻‍🦽":0,"👨🏼‍🦽":0,"👨🏽‍🦽":0,"👨🏾‍🦽":0,"👨🏿‍🦽":0,"👨🏻‍⚕":0,"👨🏼‍⚕":0,"👨🏽‍⚕":0,"👨🏾‍⚕":0,"👨🏿‍⚕":0,"👨🏻‍⚖":0,"👨🏼‍⚖":0,"👨🏽‍⚖":0,"👨🏾‍⚖":0,"👨🏿‍⚖":0,"👨🏻‍✈":0,"👨🏼‍✈":0,"👨🏽‍✈":0,"👨🏾‍✈":0,"👨🏿‍✈":0,"👨🏻":0,"👨🏼":0,"👨🏽":0,"👨🏾":0,"👨🏿":0,"👩🏻‍🌾":0,"👩🏼‍🌾":0,"👩🏽‍🌾":0,"👩🏾‍🌾":0,"👩🏿‍🌾":0,"👩🏻‍🍳":0,"👩🏼‍🍳":0,"👩🏽‍🍳":0,"👩🏾‍🍳":0,"👩🏿‍🍳":0,"👩🏻‍🎓":0,"👩🏼‍🎓":0,"👩🏽‍🎓":0,"👩🏾‍🎓":0,"👩🏿‍🎓":0,"👩🏻‍🎤":0,"👩🏼‍🎤":0,"👩🏽‍🎤":0,"👩🏾‍🎤":0,"👩🏿‍🎤":0,"👩🏻‍🎨":0,"👩🏼‍🎨":0,"👩🏽‍🎨":0,"👩🏾‍🎨":0,"👩🏿‍🎨":0,"👩🏻‍🏫":0,"👩🏼‍🏫":0,"👩🏽‍🏫":0,"👩🏾‍🏫":0,"👩🏿‍🏫":0,"👩🏻‍🏭":0,"👩🏼‍🏭":0,"👩🏽‍🏭":0,"👩🏾‍🏭":0,"👩🏿‍🏭":0,"👩🏻‍💻":0,"👩🏼‍💻":0,"👩🏽‍💻":0,"👩🏾‍💻":0,"👩🏿‍💻":0,"👩🏻‍💼":0,"👩🏼‍💼":0,"👩🏽‍💼":0,"👩🏾‍💼":0,"👩🏿‍💼":0,"👩🏻‍🔧":0,"👩🏼‍🔧":0,"👩🏽‍🔧":0,"👩🏾‍🔧":0,"👩🏿‍🔧":0,"👩🏻‍🔬":0,"👩🏼‍🔬":0,"👩🏽‍🔬":0,"👩🏾‍🔬":0,"👩🏿‍🔬":0,"👩🏻‍🚀":0,"👩🏼‍🚀":0,"👩🏽‍🚀":0,"👩🏾‍🚀":0,"👩🏿‍🚀":0,"👩🏻‍🚒":0,"👩🏼‍🚒":0,"👩🏽‍🚒":0,"👩🏾‍🚒":0,"👩🏿‍🚒":0,"👩🏻‍🦯":0,"👩🏼‍🦯":0,"👩🏽‍🦯":0,"👩🏾‍🦯":0,"👩🏿‍🦯":0,"👩🏻‍🦰":0,"👩🏼‍🦰":0,"👩🏽‍🦰":0,"👩🏾‍🦰":0,"👩🏿‍🦰":0,"👩🏻‍🦱":0,"👩🏼‍🦱":0,"👩🏽‍🦱":0,"👩🏾‍🦱":0,"👩🏿‍🦱":0,"👩🏻‍🦲":0,"👩🏼‍🦲":0,"👩🏽‍🦲":0,"👩🏾‍🦲":0,"👩🏿‍🦲":0,"👩🏻‍🦳":0,"👩🏼‍🦳":0,"👩🏽‍🦳":0,"👩🏾‍🦳":0,"👩🏿‍🦳":0,"👩🏻‍🦼":0,"👩🏼‍🦼":0,"👩🏽‍🦼":0,"👩🏾‍🦼":0,"👩🏿‍🦼":0,"👩🏻‍🦽":0,"👩🏼‍🦽":0,"👩🏽‍🦽":0,"👩🏾‍🦽":0,"👩🏿‍🦽":0,"👩🏻‍⚕":0,"👩🏼‍⚕":0,"👩🏽‍⚕":0,"👩🏾‍⚕":0,"👩🏿‍⚕":0,"👩🏻‍⚖":0,"👩🏼‍⚖":0,"👩🏽‍⚖":0,"👩🏾‍⚖":0,"👩🏿‍⚖":0,"👩🏻‍✈":0,"👩🏼‍✈":0,"👩🏽‍✈":0,"👩🏾‍✈":0,"👩🏿‍✈":0,"👩🏻":0,"👩🏼":0,"👩🏽":0,"👩🏾":0,"👩🏿":0,"👫🏻":0,"👫🏼":0,"👫🏽":0,"👫🏾":0,"👫🏿":0,"👩🏻‍🤝‍👨🏼":0,"👩🏻‍🤝‍👨🏽":0,"👩🏻‍🤝‍👨🏾":0,"👩🏻‍🤝‍👨🏿":0,"👩🏼‍🤝‍👨🏻":0,"👩🏼‍🤝‍👨🏽":0,"👩🏼‍🤝‍👨🏾":0,"👩🏼‍🤝‍👨🏿":0,"👩🏽‍🤝‍👨🏻":0,"👩🏽‍🤝‍👨🏼":0,"👩🏽‍🤝‍👨🏾":0,"👩🏽‍🤝‍👨🏿":0,"👩🏾‍🤝‍👨🏻":0,"👩🏾‍🤝‍👨🏼":0,"👩🏾‍🤝‍👨🏽":0,"👩🏾‍🤝‍👨🏿":0,"👩🏿‍🤝‍👨🏻":0,"👩🏿‍🤝‍👨🏼":0,"👩🏿‍🤝‍👨🏽":0,"👩🏿‍🤝‍👨🏾":0,"👬🏻":0,"👬🏼":0,"👬🏽":0,"👬🏾":0,"👬🏿":0,"👨🏻‍🤝‍👨🏼":0,"👨🏻‍🤝‍👨🏽":0,"👨🏻‍🤝‍👨🏾":0,"👨🏻‍🤝‍👨🏿":0,"👨🏼‍🤝‍👨🏻":0,"👨🏼‍🤝‍👨🏽":0,"👨🏼‍🤝‍👨🏾":0,"👨🏼‍🤝‍👨🏿":0,"👨🏽‍🤝‍👨🏻":0,"👨🏽‍🤝‍👨🏼":0,"👨🏽‍🤝‍👨🏾":0,"👨🏽‍🤝‍👨🏿":0,"👨🏾‍🤝‍👨🏻":0,"👨🏾‍🤝‍👨🏼":0,"👨🏾‍🤝‍👨🏽":0,"👨🏾‍🤝‍👨🏿":0,"👨🏿‍🤝‍👨🏻":0,"👨🏿‍🤝‍👨🏼":0,"👨🏿‍🤝‍👨🏽":0,"👨🏿‍🤝‍👨🏾":0,"👭🏻":0,"👭🏼":0,"👭🏽":0,"👭🏾":0,"👭🏿":0,"👩🏻‍🤝‍👩🏼":0,"👩🏻‍🤝‍👩🏽":0,"👩🏻‍🤝‍👩🏾":0,"👩🏻‍🤝‍👩🏿":0,"👩🏼‍🤝‍👩🏻":0,"👩🏼‍🤝‍👩🏽":0,"👩🏼‍🤝‍👩🏾":0,"👩🏼‍🤝‍👩🏿":0,"👩🏽‍🤝‍👩🏻":0,"👩🏽‍🤝‍👩🏼":0,"👩🏽‍🤝‍👩🏾":0,"👩🏽‍🤝‍👩🏿":0,"👩🏾‍🤝‍👩🏻":0,"👩🏾‍🤝‍👩🏼":0,"👩🏾‍🤝‍👩🏽":0,"👩🏾‍🤝‍👩🏿":0,"👩🏿‍🤝‍👩🏻":0,"👩🏿‍🤝‍👩🏼":0,"👩🏿‍🤝‍👩🏽":0,"👩🏿‍🤝‍👩🏾":0,"👮🏻‍♀":0,"👮🏼‍♀":0,"👮🏽‍♀":0,"👮🏾‍♀":0,"👮🏿‍♀":0,"👮🏻‍♂":0,"👮🏼‍♂":0,"👮🏽‍♂":0,"👮🏾‍♂":0,"👮🏿‍♂":0,"👮🏻":0,"👮🏼":0,"👮🏽":0,"👮🏾":0,"👮🏿":0,"👰🏻":0,"👰🏼":0,"👰🏽":0,"👰🏾":0,"👰🏿":0,"👱🏻‍♀":0,"👱🏼‍♀":0,"👱🏽‍♀":0,"👱🏾‍♀":0,"👱🏿‍♀":0,"👱🏻‍♂":0,"👱🏼‍♂":0,"👱🏽‍♂":0,"👱🏾‍♂":0,"👱🏿‍♂":0,"👱🏻":0,"👱🏼":0,"👱🏽":0,"👱🏾":0,"👱🏿":0,"👲🏻":0,"👲🏼":0,"👲🏽":0,"👲🏾":0,"👲🏿":0,"👳🏻‍♀":0,"👳🏼‍♀":0,"👳🏽‍♀":0,"👳🏾‍♀":0,"👳🏿‍♀":0,"👳🏻‍♂":0,"👳🏼‍♂":0,"👳🏽‍♂":0,"👳🏾‍♂":0,"👳🏿‍♂":0,"👳🏻":0,"👳🏼":0,"👳🏽":0,"👳🏾":0,"👳🏿":0,"👴🏻":0,"👴🏼":0,"👴🏽":0,"👴🏾":0,"👴🏿":0,"👵🏻":0,"👵🏼":0,"👵🏽":0,"👵🏾":0,"👵🏿":0,"👶🏻":0,"👶🏼":0,"👶🏽":0,"👶🏾":0,"👶🏿":0,"👷🏻‍♀":0,"👷🏼‍♀":0,"👷🏽‍♀":0,"👷🏾‍♀":0,"👷🏿‍♀":0,"👷🏻‍♂":0,"👷🏼‍♂":0,"👷🏽‍♂":0,"👷🏾‍♂":0,"👷🏿‍♂":0,"👷🏻":0,"👷🏼":0,"👷🏽":0,"👷🏾":0,"👷🏿":0,"👸🏻":0,"👸🏼":0,"👸🏽":0,"👸🏾":0,"👸🏿":0,"👼🏻":0,"👼🏼":0,"👼🏽":0,"👼🏾":0,"👼🏿":0,"💁🏻‍♀":0,"💁🏼‍♀":0,"💁🏽‍♀":0,"💁🏾‍♀":0,"💁🏿‍♀":0,"💁🏻‍♂":0,"💁🏼‍♂":0,"💁🏽‍♂":0,"💁🏾‍♂":0,"💁🏿‍♂":0,"💁🏻":0,"💁🏼":0,"💁🏽":0,"💁🏾":0,"💁🏿":0,"💂🏻‍♀":0,"💂🏼‍♀":0,"💂🏽‍♀":0,"💂🏾‍♀":0,"💂🏿‍♀":0,"💂🏻‍♂":0,"💂🏼‍♂":0,"💂🏽‍♂":0,"💂🏾‍♂":0,"💂🏿‍♂":0,"💂🏻":0,"💂🏼":0,"💂🏽":0,"💂🏾":0,"💂🏿":0,"💃🏻":0,"💃🏼":0,"💃🏽":0,"💃🏾":0,"💃🏿":0,"💅🏻":0,"💅🏼":0,"💅🏽":0,"💅🏾":0,"💅🏿":0,"💆🏻‍♀":0,"💆🏼‍♀":0,"💆🏽‍♀":0,"💆🏾‍♀":0,"💆🏿‍♀":0,"💆🏻‍♂":0,"💆🏼‍♂":0,"💆🏽‍♂":0,"💆🏾‍♂":0,"💆🏿‍♂":0,"💆🏻":0,"💆🏼":0,"💆🏽":0,"💆🏾":0,"💆🏿":0,"💇🏻‍♀":0,"💇🏼‍♀":0,"💇🏽‍♀":0,"💇🏾‍♀":0,"💇🏿‍♀":0,"💇🏻‍♂":0,"💇🏼‍♂":0,"💇🏽‍♂":0,"💇🏾‍♂":0,"💇🏿‍♂":0,"💇🏻":0,"💇🏼":0,"💇🏽":0,"💇🏾":0,"💇🏿":0,"💪🏻":0,"💪🏼":0,"💪🏽":0,"💪🏾":0,"💪🏿":0,"🕴🏻":0,"🕴🏼":0,"🕴🏽":0,"🕴🏾":0,"🕴🏿":0,"🕵🏻‍♀":0,"🕵🏼‍♀":0,"🕵🏽‍♀":0,"🕵🏾‍♀":0,"🕵🏿‍♀":0,"🕵🏻‍♂":0,"🕵🏼‍♂":0,"🕵🏽‍♂":0,"🕵🏾‍♂":0,"🕵🏿‍♂":0,"🕵🏻":0,"🕵🏼":0,"🕵🏽":0,"🕵🏾":0,"🕵🏿":0,"🕺🏻":0,"🕺🏼":0,"🕺🏽":0,"🕺🏾":0,"🕺🏿":0,"🖐🏻":0,"🖐🏼":0,"🖐🏽":0,"🖐🏾":0,"🖐🏿":0,"🖕🏻":0,"🖕🏼":0,"🖕🏽":0,"🖕🏾":0,"🖕🏿":0,"🖖🏻":0,"🖖🏼":0,"🖖🏽":0,"🖖🏾":0,"🖖🏿":0,"🙅🏻‍♀":0,"🙅🏼‍♀":0,"🙅🏽‍♀":0,"🙅🏾‍♀":0,"🙅🏿‍♀":0,"🙅🏻‍♂":0,"🙅🏼‍♂":0,"🙅🏽‍♂":0,"🙅🏾‍♂":0,"🙅🏿‍♂":0,"🙅🏻":0,"🙅🏼":0,"🙅🏽":0,"🙅🏾":0,"🙅🏿":0,"🙆🏻‍♀":0,"🙆🏼‍♀":0,"🙆🏽‍♀":0,"🙆🏾‍♀":0,"🙆🏿‍♀":0,"🙆🏻‍♂":0,"🙆🏼‍♂":0,"🙆🏽‍♂":0,"🙆🏾‍♂":0,"🙆🏿‍♂":0,"🙆🏻":0,"🙆🏼":0,"🙆🏽":0,"🙆🏾":0,"🙆🏿":0,"🙇🏻‍♀":0,"🙇🏼‍♀":0,"🙇🏽‍♀":0,"🙇🏾‍♀":0,"🙇🏿‍♀":0,"🙇🏻‍♂":0,"🙇🏼‍♂":0,"🙇🏽‍♂":0,"🙇🏾‍♂":0,"🙇🏿‍♂":0,"🙇🏻":0,"🙇🏼":0,"🙇🏽":0,"🙇🏾":0,"🙇🏿":0,"🙋🏻‍♀":0,"🙋🏼‍♀":0,"🙋🏽‍♀":0,"🙋🏾‍♀":0,"🙋🏿‍♀":0,"🙋🏻‍♂":0,"🙋🏼‍♂":0,"🙋🏽‍♂":0,"🙋🏾‍♂":0,"🙋🏿‍♂":0,"🙋🏻":0,"🙋🏼":0,"🙋🏽":0,"🙋🏾":0,"🙋🏿":0,"🙌🏻":0,"🙌🏼":0,"🙌🏽":0,"🙌🏾":0,"🙌🏿":0,"🙍🏻‍♀":0,"🙍🏼‍♀":0,"🙍🏽‍♀":0,"🙍🏾‍♀":0,"🙍🏿‍♀":0,"🙍🏻‍♂":0,"🙍🏼‍♂":0,"🙍🏽‍♂":0,"🙍🏾‍♂":0,"🙍🏿‍♂":0,"🙍🏻":0,"🙍🏼":0,"🙍🏽":0,"🙍🏾":0,"🙍🏿":0,"🙎🏻‍♀":0,"🙎🏼‍♀":0,"🙎🏽‍♀":0,"🙎🏾‍♀":0,"🙎🏿‍♀":0,"🙎🏻‍♂":0,"🙎🏼‍♂":0,"🙎🏽‍♂":0,"🙎🏾‍♂":0,"🙎🏿‍♂":0,"🙎🏻":0,"🙎🏼":0,"🙎🏽":0,"🙎🏾":0,"🙎🏿":0,"🙏🏻":0,"🙏🏼":0,"🙏🏽":0,"🙏🏾":0,"🙏🏿":0,"🚣🏻‍♀":0,"🚣🏼‍♀":0,"🚣🏽‍♀":0,"🚣🏾‍♀":0,"🚣🏿‍♀":0,"🚣🏻‍♂":0,"🚣🏼‍♂":0,"🚣🏽‍♂":0,"🚣🏾‍♂":0,"🚣🏿‍♂":0,"🚣🏻":0,"🚣🏼":0,"🚣🏽":0,"🚣🏾":0,"🚣🏿":0,"🚴🏻‍♀":0,"🚴🏼‍♀":0,"🚴🏽‍♀":0,"🚴🏾‍♀":0,"🚴🏿‍♀":0,"🚴🏻‍♂":0,"🚴🏼‍♂":0,"🚴🏽‍♂":0,"🚴🏾‍♂":0,"🚴🏿‍♂":0,"🚴🏻":0,"🚴🏼":0,"🚴🏽":0,"🚴🏾":0,"🚴🏿":0,"🚵🏻‍♀":0,"🚵🏼‍♀":0,"🚵🏽‍♀":0,"🚵🏾‍♀":0,"🚵🏿‍♀":0,"🚵🏻‍♂":0,"🚵🏼‍♂":0,"🚵🏽‍♂":0,"🚵🏾‍♂":0,"🚵🏿‍♂":0,"🚵🏻":0,"🚵🏼":0,"🚵🏽":0,"🚵🏾":0,"🚵🏿":0,"🚶🏻‍♀":0,"🚶🏼‍♀":0,"🚶🏽‍♀":0,"🚶🏾‍♀":0,"🚶🏿‍♀":0,"🚶🏻‍♂":0,"🚶🏼‍♂":0,"🚶🏽‍♂":0,"🚶🏾‍♂":0,"🚶🏿‍♂":0,"🚶🏻":0,"🚶🏼":0,"🚶🏽":0,"🚶🏾":0,"🚶🏿":0,"🛀🏻":0,"🛀🏼":0,"🛀🏽":0,"🛀🏾":0,"🛀🏿":0,"🛌🏻":0,"🛌🏼":0,"🛌🏽":0,"🛌🏾":0,"🛌🏿":0,"🤏🏻":0,"🤏🏼":0,"🤏🏽":0,"🤏🏾":0,"🤏🏿":0,"🤘🏻":0,"🤘🏼":0,"🤘🏽":0,"🤘🏾":0,"🤘🏿":0,"🤙🏻":0,"🤙🏼":0,"🤙🏽":0,"🤙🏾":0,"🤙🏿":0,"🤚🏻":0,"🤚🏼":0,"🤚🏽":0,"🤚🏾":0,"🤚🏿":0,"🤛🏻":0,"🤛🏼":0,"🤛🏽":0,"🤛🏾":0,"🤛🏿":0,"🤜🏻":0,"🤜🏼":0,"🤜🏽":0,"🤜🏾":0,"🤜🏿":0,"🤞🏻":0,"🤞🏼":0,"🤞🏽":0,"🤞🏾":0,"🤞🏿":0,"🤟🏻":0,"🤟🏼":0,"🤟🏽":0,"🤟🏾":0,"🤟🏿":0,"🤦🏻‍♀":0,"🤦🏼‍♀":0,"🤦🏽‍♀":0,"🤦🏾‍♀":0,"🤦🏿‍♀":0,"🤦🏻‍♂":0,"🤦🏼‍♂":0,"🤦🏽‍♂":0,"🤦🏾‍♂":0,"🤦🏿‍♂":0,"🤦🏻":0,"🤦🏼":0,"🤦🏽":0,"🤦🏾":0,"🤦🏿":0,"🤰🏻":0,"🤰🏼":0,"🤰🏽":0,"🤰🏾":0,"🤰🏿":0,"🤱🏻":0,"🤱🏼":0,"🤱🏽":0,"🤱🏾":0,"🤱🏿":0,"🤲🏻":0,"🤲🏼":0,"🤲🏽":0,"🤲🏾":0,"🤲🏿":0,"🤳🏻":0,"🤳🏼":0,"🤳🏽":0,"🤳🏾":0,"🤳🏿":0,"🤴🏻":0,"🤴🏼":0,"🤴🏽":0,"🤴🏾":0,"🤴🏿":0,"🤵🏻":0,"🤵🏼":0,"🤵🏽":0,"🤵🏾":0,"🤵🏿":0,"🤶🏻":0,"🤶🏼":0,"🤶🏽":0,"🤶🏾":0,"🤶🏿":0,"🤷🏻‍♀":0,"🤷🏼‍♀":0,"🤷🏽‍♀":0,"🤷🏾‍♀":0,"🤷🏿‍♀":0,"🤷🏻‍♂":0,"🤷🏼‍♂":0,"🤷🏽‍♂":0,"🤷🏾‍♂":0,"🤷🏿‍♂":0,"🤷🏻":0,"🤷🏼":0,"🤷🏽":0,"🤷🏾":0,"🤷🏿":0,"🤸🏻‍♀":0,"🤸🏼‍♀":0,"🤸🏽‍♀":0,"🤸🏾‍♀":0,"🤸🏿‍♀":0,"🤸🏻‍♂":0,"🤸🏼‍♂":0,"🤸🏽‍♂":0,"🤸🏾‍♂":0,"🤸🏿‍♂":0,"🤸🏻":0,"🤸🏼":0,"🤸🏽":0,"🤸🏾":0,"🤸🏿":0,"🤹🏻‍♀":0,"🤹🏼‍♀":0,"🤹🏽‍♀":0,"🤹🏾‍♀":0,"🤹🏿‍♀":0,"🤹🏻‍♂":0,"🤹🏼‍♂":0,"🤹🏽‍♂":0,"🤹🏾‍♂":0,"🤹🏿‍♂":0,"🤹🏻":0,"🤹🏼":0,"🤹🏽":0,"🤹🏾":0,"🤹🏿":0,"🤽🏻‍♀":0,"🤽🏼‍♀":0,"🤽🏽‍♀":0,"🤽🏾‍♀":0,"🤽🏿‍♀":0,"🤽🏻‍♂":0,"🤽🏼‍♂":0,"🤽🏽‍♂":0,"🤽🏾‍♂":0,"🤽🏿‍♂":0,"🤽🏻":0,"🤽🏼":0,"🤽🏽":0,"🤽🏾":0,"🤽🏿":0,"🤾🏻‍♀":0,"🤾🏼‍♀":0,"🤾🏽‍♀":0,"🤾🏾‍♀":0,"🤾🏿‍♀":0,"🤾🏻‍♂":0,"🤾🏼‍♂":0,"🤾🏽‍♂":0,"🤾🏾‍♂":0,"🤾🏿‍♂":0,"🤾🏻":0,"🤾🏼":0,"🤾🏽":0,"🤾🏾":0,"🤾🏿":0,"🦵🏻":0,"🦵🏼":0,"🦵🏽":0,"🦵🏾":0,"🦵🏿":0,"🦶🏻":0,"🦶🏼":0,"🦶🏽":0,"🦶🏾":0,"🦶🏿":0,"🦸🏻‍♀":0,"🦸🏼‍♀":0,"🦸🏽‍♀":0,"🦸🏾‍♀":0,"🦸🏿‍♀":0,"🦸🏻‍♂":0,"🦸🏼‍♂":0,"🦸🏽‍♂":0,"🦸🏾‍♂":0,"🦸🏿‍♂":0,"🦸🏻":0,"🦸🏼":0,"🦸🏽":0,"🦸🏾":0,"🦸🏿":0,"🦹🏻‍♀":0,"🦹🏼‍♀":0,"🦹🏽‍♀":0,"🦹🏾‍♀":0,"🦹🏿‍♀":0,"🦹🏻‍♂":0,"🦹🏼‍♂":0,"🦹🏽‍♂":0,"🦹🏾‍♂":0,"🦹🏿‍♂":0,"🦹🏻":0,"🦹🏼":0,"🦹🏽":0,"🦹🏾":0,"🦹🏿":0,"🦻🏻":0,"🦻🏼":0,"🦻🏽":0,"🦻🏾":0,"🦻🏿":0,"🧍🏻‍♀":0,"🧍🏼‍♀":0,"🧍🏽‍♀":0,"🧍🏾‍♀":0,"🧍🏿‍♀":0,"🧍🏻‍♂":0,"🧍🏼‍♂":0,"🧍🏽‍♂":0,"🧍🏾‍♂":0,"🧍🏿‍♂":0,"🧍🏻":0,"🧍🏼":0,"🧍🏽":0,"🧍🏾":0,"🧍🏿":0,"🧎🏻‍♀":0,"🧎🏼‍♀":0,"🧎🏽‍♀":0,"🧎🏾‍♀":0,"🧎🏿‍♀":0,"🧎🏻‍♂":0,"🧎🏼‍♂":0,"🧎🏽‍♂":0,"🧎🏾‍♂":0,"🧎🏿‍♂":0,"🧎🏻":0,"🧎🏼":0,"🧎🏽":0,"🧎🏾":0,"🧎🏿":0,"🧏🏻‍♀":0,"🧏🏼‍♀":0,"🧏🏽‍♀":0,"🧏🏾‍♀":0,"🧏🏿‍♀":0,"🧏🏻‍♂":0,"🧏🏼‍♂":0,"🧏🏽‍♂":0,"🧏🏾‍♂":0,"🧏🏿‍♂":0,"🧏🏻":0,"🧏🏼":0,"🧏🏽":0,"🧏🏾":0,"🧏🏿":0,"🧑🏻‍🌾":0,"🧑🏼‍🌾":0,"🧑🏽‍🌾":0,"🧑🏾‍🌾":0,"🧑🏿‍🌾":0,"🧑🏻‍🍳":0,"🧑🏼‍🍳":0,"🧑🏽‍🍳":0,"🧑🏾‍🍳":0,"🧑🏿‍🍳":0,"🧑🏻‍🎓":0,"🧑🏼‍🎓":0,"🧑🏽‍🎓":0,"🧑🏾‍🎓":0,"🧑🏿‍🎓":0,"🧑🏻‍🎤":0,"🧑🏼‍🎤":0,"🧑🏽‍🎤":0,"🧑🏾‍🎤":0,"🧑🏿‍🎤":0,"🧑🏻‍🎨":0,"🧑🏼‍🎨":0,"🧑🏽‍🎨":0,"🧑🏾‍🎨":0,"🧑🏿‍🎨":0,"🧑🏻‍🏫":0,"🧑🏼‍🏫":0,"🧑🏽‍🏫":0,"🧑🏾‍🏫":0,"🧑🏿‍🏫":0,"🧑🏻‍🏭":0,"🧑🏼‍🏭":0,"🧑🏽‍🏭":0,"🧑🏾‍🏭":0,"🧑🏿‍🏭":0,"🧑🏻‍💻":0,"🧑🏼‍💻":0,"🧑🏽‍💻":0,"🧑🏾‍💻":0,"🧑🏿‍💻":0,"🧑🏻‍💼":0,"🧑🏼‍💼":0,"🧑🏽‍💼":0,"🧑🏾‍💼":0,"🧑🏿‍💼":0,"🧑🏻‍🔧":0,"🧑🏼‍🔧":0,"🧑🏽‍🔧":0,"🧑🏾‍🔧":0,"🧑🏿‍🔧":0,"🧑🏻‍🔬":0,"🧑🏼‍🔬":0,"🧑🏽‍🔬":0,"🧑🏾‍🔬":0,"🧑🏿‍🔬":0,"🧑🏻‍🚀":0,"🧑🏼‍🚀":0,"🧑🏽‍🚀":0,"🧑🏾‍🚀":0,"🧑🏿‍🚀":0,"🧑🏻‍🚒":0,"🧑🏼‍🚒":0,"🧑🏽‍🚒":0,"🧑🏾‍🚒":0,"🧑🏿‍🚒":0,"🧑🏻‍🤝‍🧑🏻":0,"🧑🏻‍🤝‍🧑🏼":0,"🧑🏻‍🤝‍🧑🏽":0,"🧑🏻‍🤝‍🧑🏾":0,"🧑🏻‍🤝‍🧑🏿":0,"🧑🏼‍🤝‍🧑🏻":0,"🧑🏼‍🤝‍🧑🏼":0,"🧑🏼‍🤝‍🧑🏽":0,"🧑🏼‍🤝‍🧑🏾":0,"🧑🏼‍🤝‍🧑🏿":0,"🧑🏽‍🤝‍🧑🏻":0,"🧑🏽‍🤝‍🧑🏼":0,"🧑🏽‍🤝‍🧑🏽":0,"🧑🏽‍🤝‍🧑🏾":0,"🧑🏽‍🤝‍🧑🏿":0,"🧑🏾‍🤝‍🧑🏻":0,"🧑🏾‍🤝‍🧑🏼":0,"🧑🏾‍🤝‍🧑🏽":0,"🧑🏾‍🤝‍🧑🏾":0,"🧑🏾‍🤝‍🧑🏿":0,"🧑🏿‍🤝‍🧑🏻":0,"🧑🏿‍🤝‍🧑🏼":0,"🧑🏿‍🤝‍🧑🏽":0,"🧑🏿‍🤝‍🧑🏾":0,"🧑🏿‍🤝‍🧑🏿":0,"🧑🏻‍🦯":0,"🧑🏼‍🦯":0,"🧑🏽‍🦯":0,"🧑🏾‍🦯":0,"🧑🏿‍🦯":0,"🧑🏻‍🦰":0,"🧑🏼‍🦰":0,"🧑🏽‍🦰":0,"🧑🏾‍🦰":0,"🧑🏿‍🦰":0,"🧑🏻‍🦱":0,"🧑🏼‍🦱":0,"🧑🏽‍🦱":0,"🧑🏾‍🦱":0,"🧑🏿‍🦱":0,"🧑🏻‍🦲":0,"🧑🏼‍🦲":0,"🧑🏽‍🦲":0,"🧑🏾‍🦲":0,"🧑🏿‍🦲":0,"🧑🏻‍🦳":0,"🧑🏼‍🦳":0,"🧑🏽‍🦳":0,"🧑🏾‍🦳":0,"🧑🏿‍🦳":0,"🧑🏻‍🦼":0,"🧑🏼‍🦼":0,"🧑🏽‍🦼":0,"🧑🏾‍🦼":0,"🧑🏿‍🦼":0,"🧑🏻‍🦽":0,"🧑🏼‍🦽":0,"🧑🏽‍🦽":0,"🧑🏾‍🦽":0,"🧑🏿‍🦽":0,"🧑🏻‍⚕":0,"🧑🏼‍⚕":0,"🧑🏽‍⚕":0,"🧑🏾‍⚕":0,"🧑🏿‍⚕":0,"🧑🏻‍⚖":0,"🧑🏼‍⚖":0,"🧑🏽‍⚖":0,"🧑🏾‍⚖":0,"🧑🏿‍⚖":0,"🧑🏻‍✈":0,"🧑🏼‍✈":0,"🧑🏽‍✈":0,"🧑🏾‍✈":0,"🧑🏿‍✈":0,"🧑🏻":0,"🧑🏼":0,"🧑🏽":0,"🧑🏾":0,"🧑🏿":0,"🧒🏻":0,"🧒🏼":0,"🧒🏽":0,"🧒🏾":0,"🧒🏿":0,"🧓🏻":0,"🧓🏼":0,"🧓🏽":0,"🧓🏾":0,"🧓🏿":0,"🧔🏻":0,"🧔🏼":0,"🧔🏽":0,"🧔🏾":0,"🧔🏿":0,"🧕🏻":0,"🧕🏼":0,"🧕🏽":0,"🧕🏾":0,"🧕🏿":0,"🧖🏻‍♀":0,"🧖🏼‍♀":0,"🧖🏽‍♀":0,"🧖🏾‍♀":0,"🧖🏿‍♀":0,"🧖🏻‍♂":0,"🧖🏼‍♂":0,"🧖🏽‍♂":0,"🧖🏾‍♂":0,"🧖🏿‍♂":0,"🧖🏻":0,"🧖🏼":0,"🧖🏽":0,"🧖🏾":0,"🧖🏿":0,"🧗🏻‍♀":0,"🧗🏼‍♀":0,"🧗🏽‍♀":0,"🧗🏾‍♀":0,"🧗🏿‍♀":0,"🧗🏻‍♂":0,"🧗🏼‍♂":0,"🧗🏽‍♂":0,"🧗🏾‍♂":0,"🧗🏿‍♂":0,"🧗🏻":0,"🧗🏼":0,"🧗🏽":0,"🧗🏾":0,"🧗🏿":0,"🧘🏻‍♀":0,"🧘🏼‍♀":0,"🧘🏽‍♀":0,"🧘🏾‍♀":0,"🧘🏿‍♀":0,"🧘🏻‍♂":0,"🧘🏼‍♂":0,"🧘🏽‍♂":0,"🧘🏾‍♂":0,"🧘🏿‍♂":0,"🧘🏻":0,"🧘🏼":0,"🧘🏽":0,"🧘🏾":0,"🧘🏿":0,"🧙🏻‍♀":0,"🧙🏼‍♀":0,"🧙🏽‍♀":0,"🧙🏾‍♀":0,"🧙🏿‍♀":0,"🧙🏻‍♂":0,"🧙🏼‍♂":0,"🧙🏽‍♂":0,"🧙🏾‍♂":0,"🧙🏿‍♂":0,"🧙🏻":0,"🧙🏼":0,"🧙🏽":0,"🧙🏾":0,"🧙🏿":0,"🧚🏻‍♀":0,"🧚🏼‍♀":0,"🧚🏽‍♀":0,"🧚🏾‍♀":0,"🧚🏿‍♀":0,"🧚🏻‍♂":0,"🧚🏼‍♂":0,"🧚🏽‍♂":0,"🧚🏾‍♂":0,"🧚🏿‍♂":0,"🧚🏻":0,"🧚🏼":0,"🧚🏽":0,"🧚🏾":0,"🧚🏿":0,"🧛🏻‍♀":0,"🧛🏼‍♀":0,"🧛🏽‍♀":0,"🧛🏾‍♀":0,"🧛🏿‍♀":0,"🧛🏻‍♂":0,"🧛🏼‍♂":0,"🧛🏽‍♂":0,"🧛🏾‍♂":0,"🧛🏿‍♂":0,"🧛🏻":0,"🧛🏼":0,"🧛🏽":0,"🧛🏾":0,"🧛🏿":0,"🧜🏻‍♀":0,"🧜🏼‍♀":0,"🧜🏽‍♀":0,"🧜🏾‍♀":0,"🧜🏿‍♀":0,"🧜🏻‍♂":0,"🧜🏼‍♂":0,"🧜🏽‍♂":0,"🧜🏾‍♂":0,"🧜🏿‍♂":0,"🧜🏻":0,"🧜🏼":0,"🧜🏽":0,"🧜🏾":0,"🧜🏿":0,"🧝🏻‍♀":0,"🧝🏼‍♀":0,"🧝🏽‍♀":0,"🧝🏾‍♀":0,"🧝🏿‍♀":0,"🧝🏻‍♂":0,"🧝🏼‍♂":0,"🧝🏽‍♂":0,"🧝🏾‍♂":0,"🧝🏿‍♂":0,"🧝🏻":0,"🧝🏼":0,"🧝🏽":0,"🧝🏾":0,"🧝🏿":0,"☝🏻":0,"☝🏼":0,"☝🏽":0,"☝🏾":0,"☝🏿":0,"⛹🏻‍♀":0,"⛹🏼‍♀":0,"⛹🏽‍♀":0,"⛹🏾‍♀":0,"⛹🏿‍♀":0,"⛹🏻‍♂":0,"⛹🏼‍♂":0,"⛹🏽‍♂":0,"⛹🏾‍♂":0,"⛹🏿‍♂":0,"⛹🏻":0,"⛹🏼":0,"⛹🏽":0,"⛹🏾":0,"⛹🏿":0,"✊🏻":0,"✊🏼":0,"✊🏽":0,"✊🏾":0,"✊🏿":0,"✋🏻":0,"✋🏼":0,"✋🏽":0,"✋🏾":0,"✋🏿":0,"✌🏻":0,"✌🏼":0,"✌🏽":0,"✌🏾":0,"✌🏿":0,"✍🏻":0,"✍🏼":0,"✍🏽":0,"✍🏾":0,"✍🏿":0}; var Countries = [{"phoneCode":"7 840","code":"AB","name":"Abkhazia","pattern":"","emoji":""},{"phoneCode":"93","code":"AF","name":"Afghanistan","pattern":"93 XXX XXX XXX","emoji":"🇦🇫"},{"phoneCode":"358 18","code":"AX","name":"Aland Islands","pattern":"","emoji":"🇦🇽"},{"phoneCode":"355","code":"AL","name":"Albania","pattern":"355 XX XXX XXXX","emoji":"🇦🇱"},{"phoneCode":"213","code":"DZ","name":"Algeria","pattern":"213 XXX XX XX XX","emoji":"🇩🇿"},{"phoneCode":"1 684","code":"AS","name":"American Samoa","pattern":"1684 XXX XXXX","emoji":"🇦🇸"},{"phoneCode":"376","code":"AD","name":"Andorra","pattern":"376 XX XX XX","emoji":"🇦🇩"},{"phoneCode":"244","code":"AO","name":"Angola","pattern":"244 XXX XXX XXX","emoji":"🇦🇴"},{"phoneCode":"1 264","code":"AI","name":"Anguilla","pattern":"1264 XXX XXXX","emoji":"🇦🇮"},{"phoneCode":"1 268","code":"AG","name":"Antigua & Barbuda","pattern":"1268 XXX XXXX","emoji":"🇦🇬"},{"phoneCode":"54","code":"AR","name":"Argentina","pattern":"","emoji":"🇦🇷"},{"phoneCode":"374","code":"AM","name":"Armenia","pattern":"374 XX XXX XXX","emoji":"🇦🇲"},{"phoneCode":"297","code":"AW","name":"Aruba","pattern":"297 XXX XXXX","emoji":"🇦🇼"},{"phoneCode":"247","code":"SH","name":"Ascension","pattern":"290 XX XXX","emoji":"🇸🇭"},{"phoneCode":"61","code":"AU","name":"Australia","pattern":"61 XXX XXX XXX","emoji":"🇦🇺"},{"phoneCode":"672","code":"AU","name":"Australian External Territories","pattern":"61 XXX XXX XXX","emoji":"🇦🇺"},{"phoneCode":"43","code":"AT","name":"Austria","pattern":"","emoji":"🇦🇹"},{"phoneCode":"994","code":"AZ","name":"Azerbaijan","pattern":"994 XX XXX XX XX","emoji":"🇦🇿"},{"phoneCode":"1 242","code":"BS","name":"Bahamas","pattern":"1242 XXX XXXX","emoji":"🇧🇸"},{"phoneCode":"973","code":"BH","name":"Bahrain","pattern":"973 XXXX XXXX","emoji":"🇧🇭"},{"phoneCode":"880","code":"BD","name":"Bangladesh","pattern":"","emoji":"🇧🇩"},{"phoneCode":"1 246","code":"BB","name":"Barbados","pattern":"1246 XXX XXXX","emoji":"🇧🇧"},{"phoneCode":"1 268","code":"AG","name":"Barbuda","pattern":"1268 XXX XXXX","emoji":"🇦🇬"},{"phoneCode":"375","code":"BY","name":"Belarus","pattern":"375 XX XXX XXXX","emoji":"🇧🇾"},{"phoneCode":"32","code":"BE","name":"Belgium","pattern":"32 XXX XX XX XX","emoji":"🇧🇪"},{"phoneCode":"501","code":"BZ","name":"Belize","pattern":"","emoji":"🇧🇿"},{"phoneCode":"229","code":"BJ","name":"Benin","pattern":"229 XX XXX XXX","emoji":"🇧🇯"},{"phoneCode":"1 441","code":"BM","name":"Bermuda","pattern":"1441 XXX XXXX","emoji":"🇧🇲"},{"phoneCode":"975","code":"BT","name":"Bhutan","pattern":"","emoji":"🇧🇹"},{"phoneCode":"591","code":"BO","name":"Bolivia","pattern":"591 X XXX XXXX","emoji":"🇧🇴"},{"phoneCode":"599 7","code":"BQ","name":"Caribbean Netherlands","pattern":"","emoji":"🇧🇶"},{"phoneCode":"387","code":"BA","name":"Bosnia & Herzegovina","pattern":"","emoji":"🇧🇦"},{"phoneCode":"267","code":"BW","name":"Botswana","pattern":"267 XX XXX XXX","emoji":"🇧🇼"},{"phoneCode":"55","code":"BR","name":"Brazil","pattern":"55 XX XXXXX XXXX","emoji":"🇧🇷"},{"phoneCode":"246","code":"IO","name":"British Indian Ocean Territory","pattern":"246 XXX XXXX","emoji":"🇮🇴"},{"phoneCode":"1 284","code":"VG","name":"British Virgin Islands","pattern":"1284 XXX XXXX","emoji":"🇻🇬"},{"phoneCode":"673","code":"BN","name":"Brunei","pattern":"673 XXX XXXX","emoji":"🇧🇳"},{"phoneCode":"359","code":"BG","name":"Bulgaria","pattern":"","emoji":"🇧🇬"},{"phoneCode":"226","code":"BF","name":"Burkina Faso","pattern":"226 XX XX XX XX","emoji":"🇧🇫"},{"phoneCode":"95","code":"MM","name":"Myanmar (Burma)","pattern":"","emoji":"🇲🇲"},{"phoneCode":"257","code":"BI","name":"Burundi","pattern":"257 XX XX XXXX","emoji":"🇧🇮"},{"phoneCode":"855","code":"KH","name":"Cambodia","pattern":"","emoji":"🇰🇭"},{"phoneCode":"237","code":"CM","name":"Cameroon","pattern":"237 XXXX XXXX","emoji":"🇨🇲"},{"phoneCode":"1","code":"CA","name":"Canada","pattern":"1 XXX XXX XXXX","emoji":"🇨🇦"},{"phoneCode":"238","code":"CV","name":"Cape Verde","pattern":"238 XXX XXXX","emoji":"🇨🇻"},{"phoneCode":"1 345","code":"KY","name":"Cayman Islands","pattern":"1345 XXX XXXX","emoji":"🇰🇾"},{"phoneCode":"236","code":"CF","name":"Central African Republic","pattern":"236 XX XX XX XX","emoji":"🇨🇫"},{"phoneCode":"235","code":"TD","name":"Chad","pattern":"235 XX XX XX XX","emoji":"🇹🇩"},{"phoneCode":"56","code":"CL","name":"Chile","pattern":"56 X XXXX XXXX","emoji":"🇨🇱"},{"phoneCode":"86","code":"CN","name":"China","pattern":"86 XXX XXXX XXXX","emoji":"🇨🇳"},{"phoneCode":"61","code":"CX","name":"Christmas Island","pattern":"","emoji":"🇨🇽"},{"phoneCode":"61","code":"CC","name":"Cocos (Keeling) Islands","pattern":"","emoji":"🇨🇨"},{"phoneCode":"57","code":"CO","name":"Colombia","pattern":"57 XXX XXX XXXX","emoji":"🇨🇴"},{"phoneCode":"269","code":"KM","name":"Comoros","pattern":"269 XXX XXXX","emoji":"🇰🇲"},{"phoneCode":"242","code":"CG","name":"Congo - Brazzaville","pattern":"242 XX XXX XXXX","emoji":"🇨🇬"},{"phoneCode":"243","code":"CD","name":"Congo - Kinshasa","pattern":"243 XX XXX XXXX","emoji":"🇨🇩"},{"phoneCode":"682","code":"CK","name":"Cook Islands","pattern":"","emoji":"🇨🇰"},{"phoneCode":"506","code":"CR","name":"Costa Rica","pattern":"","emoji":"🇨🇷"},{"phoneCode":"225","code":"CI","name":"Cote d’Ivoire","pattern":"225 XX XXX XXX","emoji":"🇨🇮"},{"phoneCode":"385","code":"HR","name":"Croatia","pattern":"","emoji":"🇭🇷"},{"phoneCode":"53","code":"CU","name":"Cuba","pattern":"53 XXXX XXXX","emoji":"🇨🇺"},{"phoneCode":"599 9","code":"CW","name":"Curacao","pattern":"","emoji":"🇨🇼"},{"phoneCode":"357","code":"CY","name":"Cyprus","pattern":"357 XXXX XXXX","emoji":"🇨🇾"},{"phoneCode":"420","code":"CZ","name":"Czech Republic","pattern":"","emoji":"🇨🇿"},{"phoneCode":"45","code":"DK","name":"Denmark","pattern":"45 XXXX XXXX","emoji":"🇩🇰"},{"phoneCode":"246","code":"DG","name":"Diego Garcia","pattern":"","emoji":"🇩🇬"},{"phoneCode":"253","code":"DJ","name":"Djibouti","pattern":"253 XX XX XX XX","emoji":"🇩🇯"},{"phoneCode":"1 767","code":"DM","name":"Dominica","pattern":"1767 XXX XXXX","emoji":"🇩🇲"},{"phoneCode":"1 809 and 1 829","code":"DO","name":"Dominican Republic","pattern":"1 XXX XXX XXXX","emoji":"🇩🇴"},{"phoneCode":"670","code":"TL","name":"Timor-Leste","pattern":"","emoji":"🇹🇱"},{"phoneCode":"593","code":"EC","name":"Ecuador","pattern":"","emoji":"🇪🇨"},{"phoneCode":"20","code":"EG","name":"Egypt","pattern":"20 XX XXX XXXX","emoji":"🇪🇬"},{"phoneCode":"503","code":"SV","name":"El Salvador","pattern":"503 XXXX XXXX","emoji":"🇸🇻"},{"phoneCode":"240","code":"GQ","name":"Equatorial Guinea","pattern":"240 XXX XXX XXX","emoji":"🇬🇶"},{"phoneCode":"291","code":"ER","name":"Eritrea","pattern":"291 X XXX XXX","emoji":"🇪🇷"},{"phoneCode":"372","code":"EE","name":"Estonia","pattern":"","emoji":"🇪🇪"},{"phoneCode":"251","code":"ET","name":"Ethiopia","pattern":"251 XX XXX XXXX","emoji":"🇪🇹"},{"phoneCode":"500","code":"FK","name":"Falkland Islands","pattern":"","emoji":"🇫🇰"},{"phoneCode":"298","code":"FO","name":"Faroe Islands","pattern":"298 XXX XXX","emoji":"🇫🇴"},{"phoneCode":"679","code":"FJ","name":"Fiji","pattern":"","emoji":"🇫🇯"},{"phoneCode":"358","code":"FI","name":"Finland","pattern":"","emoji":"🇫🇮"},{"phoneCode":"33","code":"FR","name":"France","pattern":"33 X XX XX XX XX","emoji":"🇫🇷"},{"phoneCode":"594","code":"GF","name":"French Guiana","pattern":"","emoji":"🇬🇫"},{"phoneCode":"689","code":"PF","name":"French Polynesia","pattern":"","emoji":"🇵🇫"},{"phoneCode":"241","code":"GA","name":"Gabon","pattern":"241 X XX XX XX","emoji":"🇬🇦"},{"phoneCode":"220","code":"GM","name":"Gambia","pattern":"220 XXX XXXX","emoji":"🇬🇲"},{"phoneCode":"995","code":"GE","name":"Georgia","pattern":"","emoji":"🇬🇪"},{"phoneCode":"49","code":"DE","name":"Germany","pattern":"49 XXX XXXXXXXX","emoji":"🇩🇪"},{"phoneCode":"233","code":"GH","name":"Ghana","pattern":"","emoji":"🇬🇭"},{"phoneCode":"350","code":"GI","name":"Gibraltar","pattern":"350 XXXX XXXX","emoji":"🇬🇮"},{"phoneCode":"30","code":"GR","name":"Greece","pattern":"30 XX XXXX XXXX","emoji":"🇬🇷"},{"phoneCode":"299","code":"GL","name":"Greenland","pattern":"299 XXX XXX","emoji":"🇬🇱"},{"phoneCode":"1 473","code":"GD","name":"Grenada","pattern":"1473 XXX XXXX","emoji":"🇬🇩"},{"phoneCode":"590","code":"GP","name":"Guadeloupe","pattern":"","emoji":"🇬🇵"},{"phoneCode":"1 671","code":"GU","name":"Guam","pattern":"1671 XXX XXXX","emoji":"🇬🇺"},{"phoneCode":"502","code":"GT","name":"Guatemala","pattern":"502 X XXX XXXX","emoji":"🇬🇹"},{"phoneCode":"44","code":"GG","name":"Guernsey","pattern":"","emoji":"🇬🇬"},{"phoneCode":"224","code":"GN","name":"Guinea","pattern":"224 XXX XXX XXX","emoji":"🇬🇳"},{"phoneCode":"245","code":"GW","name":"Guinea-Bissau","pattern":"245 XXX XXXX","emoji":"🇬🇼"},{"phoneCode":"592","code":"GY","name":"Guyana","pattern":"","emoji":"🇬🇾"},{"phoneCode":"509","code":"HT","name":"Haiti","pattern":"","emoji":"🇭🇹"},{"phoneCode":"504","code":"HN","name":"Honduras","pattern":"504 XXXX XXXX","emoji":"🇭🇳"},{"phoneCode":"852","code":"HK","name":"Hong Kong SAR China","pattern":"","emoji":"🇭🇰"},{"phoneCode":"36","code":"HU","name":"Hungary","pattern":"36 XX XXX XXXX","emoji":"🇭🇺"},{"phoneCode":"354","code":"IS","name":"Iceland","pattern":"354 XXX XXXX","emoji":"🇮🇸"},{"phoneCode":"91","code":"IN","name":"India","pattern":"91 XXXXX XXXXX","emoji":"🇮🇳"},{"phoneCode":"62","code":"ID","name":"Indonesia","pattern":"","emoji":"🇮🇩"},{"phoneCode":"98","code":"IR","name":"Iran","pattern":"98 XXX XXX XXXX","emoji":"🇮🇷"},{"phoneCode":"964","code":"IQ","name":"Iraq","pattern":"964 XXX XXX XXXX","emoji":"🇮🇶"},{"phoneCode":"353","code":"IE","name":"Ireland","pattern":"353 XX XXX XXXX","emoji":"🇮🇪"},{"phoneCode":"972","code":"IL","name":"Israel","pattern":"972 XX XXX XXXX","emoji":"🇮🇱"},{"phoneCode":"39","code":"IT","name":"Italy","pattern":"39 XXX XXX XXXX","emoji":"🇮🇹"},{"phoneCode":"1 876","code":"JM","name":"Jamaica","pattern":"1876 XXX XXXX","emoji":"🇯🇲"},{"phoneCode":"47 79","code":"SJ","name":"Svalbard & Jan Mayen","pattern":"","emoji":"🇸🇯"},{"phoneCode":"81","code":"JP","name":"Japan","pattern":"81 XX XXXX XXXX","emoji":"🇯🇵"},{"phoneCode":"44","code":"JE","name":"Jersey","pattern":"","emoji":"🇯🇪"},{"phoneCode":"962","code":"JO","name":"Jordan","pattern":"962 X XXXX XXXX","emoji":"🇯🇴"},{"phoneCode":"7 7","code":"KZ","name":"Kazakhstan","pattern":"7 XXX XXX XX XX","emoji":"🇰🇿"},{"phoneCode":"254","code":"KE","name":"Kenya","pattern":"254 XXX XXX XXX","emoji":"🇰🇪"},{"phoneCode":"686","code":"KI","name":"Kiribati","pattern":"","emoji":"🇰🇮"},{"phoneCode":"850","code":"KP","name":"North Korea","pattern":"","emoji":"🇰🇵"},{"phoneCode":"82","code":"KR","name":"South Korea","pattern":"","emoji":"🇰🇷"},{"phoneCode":"965","code":"KW","name":"Kuwait","pattern":"965 XXXX XXXX","emoji":"🇰🇼"},{"phoneCode":"996","code":"KG","name":"Kyrgyzstan","pattern":"","emoji":"🇰🇬"},{"phoneCode":"856","code":"LA","name":"Laos","pattern":"","emoji":"🇱🇦"},{"phoneCode":"371","code":"LV","name":"Latvia","pattern":"371 XXX XXXXX","emoji":"🇱🇻"},{"phoneCode":"961","code":"LB","name":"Lebanon","pattern":"","emoji":"🇱🇧"},{"phoneCode":"266","code":"LS","name":"Lesotho","pattern":"266 XX XXX XXX","emoji":"🇱🇸"},{"phoneCode":"231","code":"LR","name":"Liberia","pattern":"","emoji":"🇱🇷"},{"phoneCode":"218","code":"LY","name":"Libya","pattern":"218 XX XXX XXXX","emoji":"🇱🇾"},{"phoneCode":"423","code":"LI","name":"Liechtenstein","pattern":"","emoji":"🇱🇮"},{"phoneCode":"370","code":"LT","name":"Lithuania","pattern":"370 XXX XXXXX","emoji":"🇱🇹"},{"phoneCode":"352","code":"LU","name":"Luxembourg","pattern":"","emoji":"🇱🇺"},{"phoneCode":"853","code":"MO","name":"Macau SAR China","pattern":"","emoji":"🇲🇴"},{"phoneCode":"389","code":"MK","name":"Macedonia","pattern":"","emoji":"🇲🇰"},{"phoneCode":"261","code":"MG","name":"Madagascar","pattern":"261 XX XX XXX XX","emoji":"🇲🇬"},{"phoneCode":"265","code":"MW","name":"Malawi","pattern":"","emoji":"🇲🇼"},{"phoneCode":"60","code":"MM","name":"Malaysia","pattern":"","emoji":"🇲🇲"},{"phoneCode":"960","code":"MV","name":"Maldives","pattern":"","emoji":"🇲🇻"},{"phoneCode":"223","code":"ML","name":"Mali","pattern":"223 XXXX XXXX","emoji":"🇲🇱"},{"phoneCode":"356","code":"MT","name":"Malta","pattern":"356 XX XX XX XX","emoji":"🇲🇹"},{"phoneCode":"692","code":"MH","name":"Marshall Islands","pattern":"","emoji":"🇲🇭"},{"phoneCode":"596","code":"MQ","name":"Martinique","pattern":"","emoji":"🇲🇶"},{"phoneCode":"222","code":"MR","name":"Mauritania","pattern":"222 XXXX XXXX","emoji":"🇲🇷"},{"phoneCode":"230","code":"MU","name":"Mauritius","pattern":"","emoji":"🇲🇺"},{"phoneCode":"262","code":"YT","name":"Mayotte","pattern":"","emoji":"🇾🇹"},{"phoneCode":"52","code":"MX","name":"Mexico","pattern":"","emoji":"🇲🇽"},{"phoneCode":"691","code":"FM","name":"Micronesia","pattern":"","emoji":"🇫🇲"},{"phoneCode":"373","code":"MD","name":"Moldova","pattern":"373 XX XXX XXX","emoji":"🇲🇩"},{"phoneCode":"377","code":"MC","name":"Monaco","pattern":"377 XXXX XXXX","emoji":"🇲🇨"},{"phoneCode":"976","code":"MN","name":"Mongolia","pattern":"","emoji":"🇲🇳"},{"phoneCode":"382","code":"ME","name":"Montenegro","pattern":"","emoji":"🇲🇪"},{"phoneCode":"1 664","code":"MS","name":"Montserrat","pattern":"1664 XXX XXXX","emoji":"🇲🇸"},{"phoneCode":"212","code":"MA","name":"Morocco","pattern":"212 XX XXX XXXX","emoji":"🇲🇦"},{"phoneCode":"258","code":"MZ","name":"Mozambique","pattern":"258 XX XXX XXXX","emoji":"🇲🇿"},{"phoneCode":"264","code":"NA","name":"Namibia","pattern":"264 XX XXX XXXX","emoji":"🇳🇦"},{"phoneCode":"674","code":"NR","name":"Nauru","pattern":"","emoji":"🇳🇷"},{"phoneCode":"977","code":"NP","name":"Nepal","pattern":"","emoji":"🇳🇵"},{"phoneCode":"31","code":"NL","name":"Netherlands","pattern":"31 X XX XX XX XX","emoji":"🇳🇱"},{"phoneCode":"687","code":"NC","name":"New Caledonia","pattern":"","emoji":"🇳🇨"},{"phoneCode":"64","code":"NZ","name":"New Zealand","pattern":"","emoji":"🇳🇿"},{"phoneCode":"505","code":"NI","name":"Nicaragua","pattern":"505 XXXX XXXX","emoji":"🇳🇮"},{"phoneCode":"227","code":"NE","name":"Niger","pattern":"227 XX XX XX XX","emoji":"🇳🇪"},{"phoneCode":"234","code":"NG","name":"Nigeria","pattern":"","emoji":"🇳🇬"},{"phoneCode":"683","code":"NU","name":"Niue","pattern":"","emoji":"🇳🇺"},{"phoneCode":"672","code":"NF","name":"Norfolk Island","pattern":"","emoji":"🇳🇫"},{"phoneCode":"1 670","code":"MP","name":"Northern Mariana Islands","pattern":"1670 XXX XXXX","emoji":"🇲🇵"},{"phoneCode":"47","code":"NO","name":"Norway","pattern":"47 XXXX XXXX","emoji":"🇳🇴"},{"phoneCode":"968","code":"OM","name":"Oman","pattern":"968 XXXX XXXX","emoji":"🇴🇲"},{"phoneCode":"92","code":"PK","name":"Pakistan","pattern":"92 XXX XXX XXXX","emoji":"🇵🇰"},{"phoneCode":"680","code":"PW","name":"Palau","pattern":"","emoji":"🇵🇼"},{"phoneCode":"970","code":"PS","name":"Palestinian Territories","pattern":"970 XXX XX XXXX","emoji":"🇵🇸"},{"phoneCode":"507","code":"PA","name":"Panama","pattern":"507 XXXX XXXX","emoji":"🇵🇦"},{"phoneCode":"675","code":"PG","name":"Papua New Guinea","pattern":"","emoji":"🇵🇬"},{"phoneCode":"595","code":"PY","name":"Paraguay","pattern":"595 XXX XXX XXX","emoji":"🇵🇾"},{"phoneCode":"51","code":"PE","name":"Peru","pattern":"51 XXX XXX XXX","emoji":"🇵🇪"},{"phoneCode":"63","code":"PH","name":"Philippines","pattern":"63 XXX XXX XXXX","emoji":"🇵🇭"},{"phoneCode":"64","code":"PN","name":"Pitcairn Islands","pattern":"","emoji":"🇵🇳"},{"phoneCode":"48","code":"PL","name":"Poland","pattern":"48 XXX XXX XXX","emoji":"🇵🇱"},{"phoneCode":"351","code":"PT","name":"Portugal","pattern":"351 X XXXX XXXX","emoji":"🇵🇹"},{"phoneCode":"1 787 and 1 939","code":"PR","name":"Puerto Rico","pattern":"1 XXX XXX XXXX","emoji":"🇵🇷"},{"phoneCode":"974","code":"QA","name":"Qatar","pattern":"","emoji":"🇶🇦"},{"phoneCode":"262","code":"RE","name":"Reunion","pattern":"262 XXX XXX XXX","emoji":"🇷🇪"},{"phoneCode":"40","code":"RO","name":"Romania","pattern":"40 XXX XXX XXX","emoji":"🇷🇴"},{"phoneCode":"7","code":"RU","name":"Russia","pattern":"7 XXX XXX XX XX","emoji":"🇷🇺"},{"phoneCode":"250","code":"RW","name":"Rwanda","pattern":"250 XXX XXX XXX","emoji":"🇷🇼"},{"phoneCode":"590","code":"BL","name":"St. Barthelemy","pattern":"","emoji":"🇧🇱"},{"phoneCode":"290","code":"SH","name":"St. Helena","pattern":"290 XX XXX","emoji":"🇸🇭"},{"phoneCode":"1 869","code":"KN","name":"St. Kitts & Nevis","pattern":"1869 XXX XXXX","emoji":"🇰🇳"},{"phoneCode":"1 758","code":"LC","name":"St. Lucia","pattern":"1758 XXX XXXX","emoji":"🇱🇨"},{"phoneCode":"590","code":"MF","name":"St. Martin (France)","pattern":"","emoji":"🇲🇫"},{"phoneCode":"508","code":"PM","name":"St. Pierre and Miquelon","pattern":"","emoji":"🇵🇲"},{"phoneCode":"1 784","code":"VC","name":"St. Vincent and the Grenadines","pattern":"1784 XXX XXXX","emoji":"🇻🇨"},{"phoneCode":"685","code":"WS","name":"Samoa","pattern":"","emoji":"🇼🇸"},{"phoneCode":"378","code":"SM","name":"San Marino","pattern":"378 XXX XXX XXXX","emoji":"🇸🇲"},{"phoneCode":"239","code":"ST","name":"São Tome & Principe","pattern":"239 XX XXXXX","emoji":"🇸🇹"},{"phoneCode":"966","code":"SA","name":"Saudi Arabia","pattern":"","emoji":"🇸🇦"},{"phoneCode":"221","code":"SN","name":"Senegal","pattern":"221 XX XXX XXXX","emoji":"🇸🇳"},{"phoneCode":"381","code":"RS","name":"Serbia","pattern":"381 XX XXX XXXX","emoji":"🇷🇸"},{"phoneCode":"248","code":"SC","name":"Seychelles","pattern":"248 X XX XX XX","emoji":"🇸🇨"},{"phoneCode":"232","code":"SL","name":"Sierra Leone","pattern":"232 XX XXX XXX","emoji":"🇸🇱"},{"phoneCode":"65","code":"SG","name":"Singapore","pattern":"65 XXXX XXXX","emoji":"🇸🇬"},{"phoneCode":"599 3","code":"BQ","name":"Sint Eustatius","pattern":"","emoji":"🇧🇶"},{"phoneCode":"1 721","code":"SX","name":"Sint Maarten","pattern":"1721 XXX XXXX","emoji":"🇸🇽"},{"phoneCode":"421","code":"SK","name":"Slovakia","pattern":"","emoji":"🇸🇰"},{"phoneCode":"386","code":"SI","name":"Slovenia","pattern":"","emoji":"🇸🇮"},{"phoneCode":"677","code":"SB","name":"Solomon Islands","pattern":"","emoji":"🇸🇧"},{"phoneCode":"252","code":"SO","name":"Somalia","pattern":"252 XX XXX XXX","emoji":"🇸🇴"},{"phoneCode":"27","code":"ZA","name":"South Africa","pattern":"27 XX XXX XXXX","emoji":"🇿🇦"},{"phoneCode":"500","code":"GS","name":"South Georgia & South Sandwich Islands","pattern":"","emoji":"🇬🇸"},{"phoneCode":"995 34","code":"","name":"South Ossetia","pattern":"","emoji":""},{"phoneCode":"211","code":"SS","name":"South Sudan","pattern":"211 XX XXX XXXX","emoji":"🇸🇸"},{"phoneCode":"34","code":"ES","name":"Spain","pattern":"34 XXX XXX XXX","emoji":"🇪🇸"},{"phoneCode":"94","code":"LK","name":"Sri Lanka","pattern":"94 XX XXX XXXX","emoji":"🇱🇰"},{"phoneCode":"249","code":"SD","name":"Sudan","pattern":"249 XX XXX XXXX","emoji":"🇸🇩"},{"phoneCode":"597","code":"SR","name":"Suriname","pattern":"597 XXX XXXX","emoji":"🇸🇷"},{"phoneCode":"47 79","code":"SJ","name":"Svalbard","pattern":"","emoji":"🇸🇯"},{"phoneCode":"268","code":"SZ","name":"Swaziland","pattern":"268 XXXX XXXX","emoji":"🇸🇿"},{"phoneCode":"46","code":"SE","name":"Sweden","pattern":"46 XX XXX XXXX","emoji":"🇸🇪"},{"phoneCode":"41","code":"CH","name":"Switzerland","pattern":"41 XX XXX XXXX","emoji":"🇨🇭"},{"phoneCode":"963","code":"SY","name":"Syria","pattern":"","emoji":"🇸🇾"},{"phoneCode":"886","code":"TW","name":"Taiwan","pattern":"","emoji":"🇹🇼"},{"phoneCode":"992","code":"TJ","name":"Tajikistan","pattern":"","emoji":"🇹🇯"},{"phoneCode":"255","code":"TZ","name":"Tanzania","pattern":"255 XX XXX XXXX","emoji":"🇹🇿"},{"phoneCode":"66","code":"TH","name":"Thailand","pattern":"66 X XXXX XXXX","emoji":"🇹🇭"},{"phoneCode":"228","code":"TG","name":"Togo","pattern":"228 XX XXX XXX","emoji":"🇹🇬"},{"phoneCode":"690","code":"TK","name":"Tokelau","pattern":"","emoji":"🇹🇰"},{"phoneCode":"676","code":"TO","name":"Tonga","pattern":"","emoji":"🇹🇴"},{"phoneCode":"1 868","code":"TT","name":"Trinidad & Tobago","pattern":"1868 XXX XXXX","emoji":"🇹🇹"},{"phoneCode":"216","code":"TN","name":"Tunisia","pattern":"216 XX XXX XXX","emoji":"🇹🇳"},{"phoneCode":"90","code":"TR","name":"Turkey","pattern":"90 XXX XXX XXXX","emoji":"🇹🇷"},{"phoneCode":"993","code":"TM","name":"Turkmenistan","pattern":"993 XX XXXXXX","emoji":"🇹🇲"},{"phoneCode":"1 649","code":"TC","name":"Turks & Caicos Islands","pattern":"1649 XXX XXXX","emoji":"🇹🇨"},{"phoneCode":"688","code":"TV","name":"Tuvalu","pattern":"","emoji":"🇹🇻"},{"phoneCode":"256","code":"UG","name":"Uganda","pattern":"256 XX XXX XXXX","emoji":"🇺🇬"},{"phoneCode":"380","code":"UA","name":"Ukraine","pattern":"380 XX XXX XX XX","emoji":"🇺🇦"},{"phoneCode":"971","code":"AE","name":"United Arab Emirates","pattern":"971 XX XXX XXXX","emoji":"🇦🇪"},{"phoneCode":"44","code":"GB","name":"United Kingdom","pattern":"44 XXXX XXXXXX","emoji":"🇬🇧"},{"phoneCode":"1","code":"US","name":"United States","pattern":"1 XXX XXX XXXX","emoji":"🇺🇸"},{"phoneCode":"598","code":"UY","name":"Uruguay","pattern":"598 XXXX XXXX","emoji":"🇺🇾"},{"phoneCode":"1 340","code":"VI","name":"U.S. Virgin Islands","pattern":"1340 XXX XXXX","emoji":"🇻🇮"},{"phoneCode":"998","code":"UZ","name":"Uzbekistan","pattern":"998 XX XXXXXXX","emoji":"🇺🇿"},{"phoneCode":"678","code":"VU","name":"Vanuatu","pattern":"","emoji":"🇻🇺"},{"phoneCode":"58","code":"VE","name":"Venezuela","pattern":"58 XXX XXX XXXX","emoji":"🇻🇪"},{"phoneCode":"39 06 698","code":"VA","name":"Vatican City","pattern":"","emoji":"🇻🇦"},{"phoneCode":"84","code":"VN","name":"Vietnam","pattern":"","emoji":"🇻🇳"},{"phoneCode":"681","code":"WF","name":"Wallis & Futuna","pattern":"","emoji":"🇼🇫"},{"phoneCode":"967","code":"YE","name":"Yemen","pattern":"967 XXX XXX XXX","emoji":"🇾🇪"},{"phoneCode":"260","code":"ZM","name":"Zambia","pattern":"260 XX XXX XXXX","emoji":"🇿🇲"},{"phoneCode":"255","code":"","name":"Zanzibar","pattern":"","emoji":""},{"phoneCode":"263","code":"ZW","name":"Zimbabwe","pattern":"263 XX XXX XXXX","emoji":"🇿🇼"}]; diff --git a/src/lib/lottie.ts b/src/lib/lottie.ts index 068174ec..470e5181 100644 --- a/src/lib/lottie.ts +++ b/src/lib/lottie.ts @@ -1,5 +1,5 @@ // @ts-ignore -import LottiePlayer from "lottie-web/build/player/lottie_canvas.min.js"; -//import LottiePlayer from "lottie-web/build/player/lottie_light.min.js"; +//import LottiePlayer from "lottie-web/build/player/lottie_canvas.min.js"; +import LottiePlayer from "lottie-web/build/player/lottie_light.min.js"; (window as any).lottie = LottiePlayer; \ No newline at end of file diff --git a/src/lib/lottieLoader.ts b/src/lib/lottieLoader.ts index 3026aaee..f852cf11 100644 --- a/src/lib/lottieLoader.ts +++ b/src/lib/lottieLoader.ts @@ -1,4 +1,4 @@ -import { isElementInViewport, isInDOM } from "./utils"; +import { isInDOM } from "./utils"; import LottiePlayer, { AnimationConfigWithPath, AnimationConfigWithData, AnimationItem } from "lottie-web/build/player/lottie.d"; class LottieLoader { @@ -59,7 +59,7 @@ class LottieLoader { continue; } - if(canvas) { + /* if(canvas) { let c = container.firstElementChild as HTMLCanvasElement; if(!c) { console.warn('no canvas element for check!', container, animations[i]); @@ -70,11 +70,11 @@ class LottieLoader { //console.log('lottie need resize'); animation.resize(); } - } + } */ if(!autoplay) continue; - if(blurred || !isElementInViewport(container)) { + /* if(blurred || !isElementInViewport(container)) { if(!paused) { this.debug && console.log('pause animation', isElementInViewport(container), container); animation.pause(); @@ -84,7 +84,7 @@ class LottieLoader { this.debug && console.log('play animation', container); animation.play(); animations[i].paused = false; - } + } */ } } } @@ -92,7 +92,8 @@ class LottieLoader { public async loadAnimation(params: /* any */AnimationConfigWithPath | AnimationConfigWithData, group = '') { //params.autoplay = false; //if(group != 'auth') { - params.renderer = 'canvas'; + //params.renderer = 'canvas'; + params.renderer = 'svg'; //} params.rendererSettings = { @@ -131,7 +132,7 @@ class LottieLoader { container: params.container as HTMLDivElement, paused: !params.autoplay, autoplay: params.autoplay, - canvas: params.renderer == 'canvas' + canvas: false//params.renderer == 'canvas' }); if(params.autoplay) { diff --git a/src/lib/mtproto/apiFileManager.ts b/src/lib/mtproto/apiFileManager.ts index c43b4fea..e5ac45e1 100644 --- a/src/lib/mtproto/apiFileManager.ts +++ b/src/lib/mtproto/apiFileManager.ts @@ -32,8 +32,6 @@ export class ApiFileManager { } = {}; public downloadActives: any = {}; - public index = 0; - private log: ReturnType = logger('AFM'); public downloadRequest(dcID: string | number, cb: () => Promise, activeDelta?: number) { @@ -45,9 +43,8 @@ export class ApiFileManager { var downloadPull = this.downloadPulls[dcID]; let promise = new Promise((resolve, reject) => { - // WARNING deferred! downloadPull.push({cb: cb, deferred: {resolve, reject}, activeDelta: activeDelta}); - }).catch(() => {}); + })/* .catch(() => {}) */; setTimeout(() => { this.downloadCheck(dcID); @@ -69,8 +66,6 @@ export class ApiFileManager { this.downloadActives[dcID] += activeDelta; - this.index++; - data.cb() .then((result: any) => { this.downloadActives[dcID] -= activeDelta; @@ -415,7 +410,7 @@ export class ApiFileManager { }); }); }); - }); + }, errorHandler); })(offset + limit >= size, offset, writeFileDeferred, writeFilePromise); writeFilePromise = writeFileDeferred; diff --git a/src/lib/richtextprocessor.js b/src/lib/richtextprocessor.js index 6b0e845a..5f765b2a 100644 --- a/src/lib/richtextprocessor.js +++ b/src/lib/richtextprocessor.js @@ -1,4 +1,4 @@ -import {encodeEntities, copy/* , emojiUnicode */} from './utils'; +import {encodeEntities, copy, emojiUnicode} from './utils'; import Config from './config'; var EmojiHelper = { @@ -8,12 +8,12 @@ var EmojiHelper = { }; var emojiData = Config.Emoji; -var emojiIconSize = emojiData.img_size; var emojiSupported = navigator.userAgent.search(/OS X|iPhone|iPad|iOS/i) != -1/* && false */, emojiCode; -//var emojiRegExp = '\\u0023\\u20E3|\\u00a9|\\u00ae|\\u203c|\\u2049|\\u2139|[\\u2194-\\u2199]|\\u21a9|\\u21aa|\\u231a|\\u231b|\\u23e9|[\\u23ea-\\u23ec]|\\u23f0|\\u24c2|\\u25aa|\\u25ab|\\u25b6|\\u2611|\\u2614|\\u26fd|\\u2705|\\u2709|[\\u2795-\\u2797]|\\u27a1|\\u27b0|\\u27bf|\\u2934|\\u2935|[\\u2b05-\\u2b07]|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u3030|\\u303d|\\u3297|\\u3299|[\\uE000-\\uF8FF\\u270A-\\u2764\\u2122\\u25C0\\u25FB-\\u25FE\\u2615\\u263a\\u2648-\\u2653\\u2660-\\u2668\\u267B\\u267F\\u2693\\u261d\\u26A0-\\u26FA\\u2708\\u2702\\u2601\\u260E]|[\\u2600\\u26C4\\u26BE\\u23F3\\u2764]|\\uD83D[\\uDC00-\\uDFFF]|\\uD83C[\\uDDE8-\\uDDFA\uDDEC]\\uD83C[\\uDDEA-\\uDDFA\uDDE7]|[0-9]\\u20e3|\\uD83C[\\uDC00-\\uDFFF]'; -//var emojiRegExp = '\\u00a9|\\u00ae|[\\u2000-\\u3300]|\\ud83c[\\ud000-\\udfff]|\\ud83d[\\ud000-\\udfff]|\\ud83e[\\ud000-\\udfff]'; -var emojiRegExp = '\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC6F\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3C-\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDF])\\u200D[\\u2640\\u2642])\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])'; + +// added * to (?:[©®\\u2122\\u265f]\\ufe0f) and removed \\ufe0f from end +// there are no 2640 and 2642 (signs) +var emojiRegExp = '(?:\\ud83d\\udc68\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1|\\ud83d\\udc6b\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6c\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6d\\ud83c[\\udffb-\\udfff]|\\ud83d[\\udc6b-\\udc6d])|(?:\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1)(?:\\ud83c[\\udffb-\\udfff])?\\u200d(?:\\u2695\\ufe0f|\\u2696\\ufe0f|\\u2708\\ufe0f|\\ud83c[\\udf3e\\udf73\\udf7c\\udf84\\udf93\\udfa4\\udfa8\\udfeb\\udfed]|\\ud83d[\\udcbb\\udcbc\\udd27\\udd2c\\ude80\\ude92]|\\ud83e[\\uddaf-\\uddb3\\uddbc\\uddbd])|(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75]|\\u26f9)((?:\\ud83c[\\udffb-\\udfff]|\\ufe0f)\\u200d[\\u2640\\u2642]\\ufe0f)|(?:\\ud83c[\\udfc3\\udfc4\\udfca]|\\ud83d[\\udc6e\\udc70\\udc71\\udc73\\udc77\\udc81\\udc82\\udc86\\udc87\\ude45-\\ude47\\ude4b\\ude4d\\ude4e\\udea3\\udeb4-\\udeb6]|\\ud83e[\\udd26\\udd35\\udd37-\\udd39\\udd3d\\udd3e\\uddb8\\uddb9\\uddcd-\\uddcf\\uddd6-\\udddd])(?:\\ud83c[\\udffb-\\udfff])?\\u200d[\\u2640\\u2642]\\ufe0f|(?:\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d[\\udc68\\udc69]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68|\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d[\\udc68\\udc69]|\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83c\\udff3\\ufe0f\\u200d\\u26a7\\ufe0f|\\ud83c\\udff3\\ufe0f\\u200d\\ud83c\\udf08|\\ud83c\\udff4\\u200d\\u2620\\ufe0f|\\ud83d\\udc15\\u200d\\ud83e\\uddba|\\ud83d\\udc3b\\u200d\\u2744\\ufe0f|\\ud83d\\udc41\\u200d\\ud83d\\udde8|\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc6f\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\u200d\\u2642\\ufe0f|\\ud83e\\udd3c\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\u200d\\u2642\\ufe0f|\\ud83e\\uddde\\u200d\\u2640\\ufe0f|\\ud83e\\uddde\\u200d\\u2642\\ufe0f|\\ud83e\\udddf\\u200d\\u2640\\ufe0f|\\ud83e\\udddf\\u200d\\u2642\\ufe0f|\\ud83d\\udc08\\u200d\\u2b1b)|[#*0-9]\\ufe0f?\\u20e3|(?:[©®\\u2122\\u265f]\\ufe0f*)|(?:\\ud83c[\\udc04\\udd70\\udd71\\udd7e\\udd7f\\ude02\\ude1a\\ude2f\\ude37\\udf21\\udf24-\\udf2c\\udf36\\udf7d\\udf96\\udf97\\udf99-\\udf9b\\udf9e\\udf9f\\udfcd\\udfce\\udfd4-\\udfdf\\udff3\\udff5\\udff7]|\\ud83d[\\udc3f\\udc41\\udcfd\\udd49\\udd4a\\udd6f\\udd70\\udd73\\udd76-\\udd79\\udd87\\udd8a-\\udd8d\\udda5\\udda8\\uddb1\\uddb2\\uddbc\\uddc2-\\uddc4\\uddd1-\\uddd3\\udddc-\\uddde\\udde1\\udde3\\udde8\\uddef\\uddf3\\uddfa\\udecb\\udecd-\\udecf\\udee0-\\udee5\\udee9\\udef0\\udef3]|[\\u203c\\u2049\\u2139\\u2194-\\u2199\\u21a9\\u21aa\\u231a\\u231b\\u2328\\u23cf\\u23ed-\\u23ef\\u23f1\\u23f2\\u23f8-\\u23fa\\u24c2\\u25aa\\u25ab\\u25b6\\u25c0\\u25fb-\\u25fe\\u2600-\\u2604\\u260e\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262a\\u262e\\u262f\\u2638-\\u263a\\u2640\\u2642\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267b\\u267f\\u2692-\\u2697\\u2699\\u269b\\u269c\\u26a0\\u26a1\\u26a7\\u26aa\\u26ab\\u26b0\\u26b1\\u26bd\\u26be\\u26c4\\u26c5\\u26c8\\u26cf\\u26d1\\u26d3\\u26d4\\u26e9\\u26ea\\u26f0-\\u26f5\\u26f8\\u26fa\\u26fd\\u2702\\u2708\\u2709\\u270f\\u2712\\u2714\\u2716\\u271d\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u2764\\u27a1\\u2934\\u2935\\u2b05-\\u2b07\\u2b1b\\u2b1c\\u2b50\\u2b55\\u3030\\u303d\\u3297\\u3299])(?:\\ufe0f|(?!\\ufe0e))|(?:(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75\\udd90]|[\\u261d\\u26f7\\u26f9\\u270c\\u270d])(?:\\ufe0f|(?!\\ufe0e))|(?:\\ud83c[\\udf85\\udfc2-\\udfc4\\udfc7\\udfca]|\\ud83d[\\udc42\\udc43\\udc46-\\udc50\\udc66-\\udc69\\udc6e\\udc70-\\udc78\\udc7c\\udc81-\\udc83\\udc85-\\udc87\\udcaa\\udd7a\\udd95\\udd96\\ude45-\\ude47\\ude4b-\\ude4f\\udea3\\udeb4-\\udeb6\\udec0\\udecc]|\\ud83e[\\udd0c\\udd0f\\udd18-\\udd1c\\udd1e\\udd1f\\udd26\\udd30-\\udd39\\udd3d\\udd3e\\udd77\\uddb5\\uddb6\\uddb8\\uddb9\\uddbb\\uddcd-\\uddcf\\uddd1-\\udddd]|[\\u270a\\u270b]))(?:\\ud83c[\\udffb-\\udfff])?|(?:\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc65\\udb40\\udc6e\\udb40\\udc67\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc73\\udb40\\udc63\\udb40\\udc74\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc77\\udb40\\udc6c\\udb40\\udc73\\udb40\\udc7f|\\ud83c\\udde6\\ud83c[\\udde8-\\uddec\\uddee\\uddf1\\uddf2\\uddf4\\uddf6-\\uddfa\\uddfc\\uddfd\\uddff]|\\ud83c\\udde7\\ud83c[\\udde6\\udde7\\udde9-\\uddef\\uddf1-\\uddf4\\uddf6-\\uddf9\\uddfb\\uddfc\\uddfe\\uddff]|\\ud83c\\udde8\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\uddee\\uddf0-\\uddf5\\uddf7\\uddfa-\\uddff]|\\ud83c\\udde9\\ud83c[\\uddea\\uddec\\uddef\\uddf0\\uddf2\\uddf4\\uddff]|\\ud83c\\uddea\\ud83c[\\udde6\\udde8\\uddea\\uddec\\udded\\uddf7-\\uddfa]|\\ud83c\\uddeb\\ud83c[\\uddee-\\uddf0\\uddf2\\uddf4\\uddf7]|\\ud83c\\uddec\\ud83c[\\udde6\\udde7\\udde9-\\uddee\\uddf1-\\uddf3\\uddf5-\\uddfa\\uddfc\\uddfe]|\\ud83c\\udded\\ud83c[\\uddf0\\uddf2\\uddf3\\uddf7\\uddf9\\uddfa]|\\ud83c\\uddee\\ud83c[\\udde8-\\uddea\\uddf1-\\uddf4\\uddf6-\\uddf9]|\\ud83c\\uddef\\ud83c[\\uddea\\uddf2\\uddf4\\uddf5]|\\ud83c\\uddf0\\ud83c[\\uddea\\uddec-\\uddee\\uddf2\\uddf3\\uddf5\\uddf7\\uddfc\\uddfe\\uddff]|\\ud83c\\uddf1\\ud83c[\\udde6-\\udde8\\uddee\\uddf0\\uddf7-\\uddfb\\uddfe]|\\ud83c\\uddf2\\ud83c[\\udde6\\udde8-\\udded\\uddf0-\\uddff]|\\ud83c\\uddf3\\ud83c[\\udde6\\udde8\\uddea-\\uddec\\uddee\\uddf1\\uddf4\\uddf5\\uddf7\\uddfa\\uddff]|\\ud83c\\uddf4\\ud83c\\uddf2|\\ud83c\\uddf5\\ud83c[\\udde6\\uddea-\\udded\\uddf0-\\uddf3\\uddf7-\\uddf9\\uddfc\\uddfe]|\\ud83c\\uddf6\\ud83c\\udde6|\\ud83c\\uddf7\\ud83c[\\uddea\\uddf4\\uddf8\\uddfa\\uddfc]|\\ud83c\\uddf8\\ud83c[\\udde6-\\uddea\\uddec-\\uddf4\\uddf7-\\uddf9\\uddfb\\uddfd-\\uddff]|\\ud83c\\uddf9\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\udded\\uddef-\\uddf4\\uddf7\\uddf9\\uddfb\\uddfc\\uddff]|\\ud83c\\uddfa\\ud83c[\\udde6\\uddec\\uddf2\\uddf3\\uddf8\\uddfe\\uddff]|\\ud83c\\uddfb\\ud83c[\\udde6\\udde8\\uddea\\uddec\\uddee\\uddf3\\uddfa]|\\ud83c\\uddfc\\ud83c[\\uddeb\\uddf8]|\\ud83c\\uddfd\\ud83c\\uddf0|\\ud83c\\uddfe\\ud83c[\\uddea\\uddf9]|\\ud83c\\uddff\\ud83c[\\udde6\\uddf2\\uddfc]|\\ud83c[\\udccf\\udd8e\\udd91-\\udd9a\\udde6-\\uddff\\ude01\\ude32-\\ude36\\ude38-\\ude3a\\ude50\\ude51\\udf00-\\udf20\\udf2d-\\udf35\\udf37-\\udf7c\\udf7e-\\udf84\\udf86-\\udf93\\udfa0-\\udfc1\\udfc5\\udfc6\\udfc8\\udfc9\\udfcf-\\udfd3\\udfe0-\\udff0\\udff4\\udff8-\\udfff]|\\ud83d[\\udc00-\\udc3e\\udc40\\udc44\\udc45\\udc51-\\udc65\\udc6a\\udc6f\\udc79-\\udc7b\\udc7d-\\udc80\\udc84\\udc88-\\udca9\\udcab-\\udcfc\\udcff-\\udd3d\\udd4b-\\udd4e\\udd50-\\udd67\\udda4\\uddfb-\\ude44\\ude48-\\ude4a\\ude80-\\udea2\\udea4-\\udeb3\\udeb7-\\udebf\\udec1-\\udec5\\uded0-\\uded2\\uded5-\\uded7\\udeeb\\udeec\\udef4-\\udefc\\udfe0-\\udfeb]|\\ud83e[\\udd0d\\udd0e\\udd10-\\udd17\\udd1d\\udd20-\\udd25\\udd27-\\udd2f\\udd3a\\udd3c\\udd3f-\\udd45\\udd47-\\udd76\\udd78\\udd7a-\\uddb4\\uddb7\\uddba\\uddbc-\\uddcb\\uddd0\\uddde-\\uddff\\ude70-\\ude74\\ude78-\\ude7a\\ude80-\\ude86\\ude90-\\udea8\\udeb0-\\udeb6\\udec0-\\udec2\\uded0-\\uded6]|[\\u23e9-\\u23ec\\u23f0\\u23f3\\u267e\\u26ce\\u2705\\u2728\\u274c\\u274e\\u2753-\\u2755\\u2795-\\u2797\\u27b0\\u27bf\\ue50a])'; var alphaCharsRegExp = 'a-z' + '\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u00ff' + // Latin-1 '\\u0100-\\u024f' + // Latin Extended A and B @@ -64,15 +64,6 @@ var usernameRegExp = '[a-zA-Z\\d_]{5,32}' var botCommandRegExp = '\\/([a-zA-Z\\d_]{1,32})(?:@(' + usernameRegExp + '))?(\\b|$)' var fullRegExp = new RegExp('(^| )(@)(' + usernameRegExp + ')|(' + urlRegExp + ')|(\\n)|(' + emojiRegExp + ')|(^|[\\s\\(\\]])(#[' + alphaNumericRegExp + ']{2,64})|(^|\\s)' + botCommandRegExp, 'i') var emailRegExp = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ -var youtubeRegExp = /^(?:https?:\/\/)?(?:www\.)?youtu(?:|\.be|be\.com|\.b)(?:\/v\/|\/watch\\?v=|e\/|(?:\/\??#)?\/watch(?:.+)v=)(.{11})(?:\&[^\s]*)?/ -var vimeoRegExp = /^(?:https?:\/\/)?(?:www\.)?vimeo\.com\/(\d+)/ -var instagramRegExp = /^https?:\/\/(?:instagr\.am\/p\/|instagram\.com\/p\/)([a-zA-Z0-9\-\_]+)/i -var vineRegExp = /^https?:\/\/vine\.co\/v\/([a-zA-Z0-9\-\_]+)/i -var twitterRegExp = /^https?:\/\/twitter\.com\/.+?\/status\/\d+/i -var facebookRegExp = /^https?:\/\/(?:www\.|m\.)?facebook\.com\/(?:.+?\/posts\/\d+|(?:story\.php|permalink\.php)\?story_fbid=(\d+)(?:&substory_index=\d+)?&id=(\d+))/i -var gplusRegExp = /^https?:\/\/plus\.google\.com\/\d+\/posts\/[a-zA-Z0-9\-\_]+/i -var soundcloudRegExp = /^https?:\/\/(?:soundcloud\.com|snd\.sc)\/([a-zA-Z0-9%\-\_]+)\/([a-zA-Z0-9%\-\_]+)/i -var spotifyRegExp = /(https?:\/\/(open\.spotify\.com|play\.spotify\.com|spoti\.fi)\/(.+)|spotify:(.+))/i var markdownTestRegExp = /[`_*@]/ var markdownRegExp = /(^|\s|\n)(````?)([\s\S]+?)(````?)([\s\n\.,:?!;]|$)|(^|\s)(`|\*\*|__)([^\n]+?)\7([\s\.,:?!;]|$)|@(\d+)\s*\((.+?)\)/m var siteHashtags = { @@ -91,60 +82,27 @@ var markdownEntities = { '`': 'messageEntityCode', '**': 'messageEntityBold', '__': 'messageEntityItalic' -} +} function getEmojiSpritesheetCoords(emojiCode) { - //////////////emojiCode = emojiUnicode(emojiCode); - - let emojiInfo = emojiData.emoji[emojiCode]; - if(!emojiInfo) { - //console.error('no emoji by code:', emojiCode, emojiCode.length, new TextEncoder().encode(emojiCode)); + let emojiInfo = emojiData[emojiCode.replace(/\ufe0f/g, '')]; + if(emojiInfo === undefined) { + //console.error('no emoji by code:', emojiCode, emojiCode && emojiCode.length, new TextEncoder().encode(emojiCode), emojiUnicode(emojiCode)); return null; } - let sheetX = 0; - let sheetNo = ''; - if(emojiData.splitted) { - sheetX = emojiInfo[emojiData.keyX] % 6; - sheetNo = (emojiInfo[emojiData.keyX] / 6 | 0) + 1; - } else { - sheetX = emojiInfo[emojiData.keyX]; - } - - /* let xPos = 100 * (((emojiInfo.sheet_x * (img_size + 2)) + 1) / (sheetSizeX - img_size)); - let yPos = 100 * (((emojiInfo.sheet_y * (img_size + 2)) + 1) / (sheetSizeY - img_size)); */ - let xPos = sheetX * emojiData.multiplyX; - let yPos = 100 / emojiData.side * emojiInfo[emojiData.keyY]; - - if(emojiData.splitted) { - /* if(sheetX != 2 && sheetX != 3) { - xPos += ((sheetX + 1) > (6 / 2) ? -1 : 1) * 100 / 204; - } */ - - if(sheetNo == 9) { - xPos = sheetX * 100 / 5; - } else { - xPos = sheetX * 100 / 6; - } - } - - //console.log({row: yPos, column: xPos, sheetNo}); - - return {row: yPos, column: xPos, sheetNo}; + return emojiUnicode(emojiCode); } -function parseEntities (text, options) { - options = options || {} - var match - var raw = text, - url - var entities = [], - emojiCode = '', - emojiCoords, - matchIndex - var rawOffset = 0 +function parseEntities(text, options = {}) { + var match; + var raw = text, url; + var entities = [], matchIndex; + var rawOffset = 0; // var start = tsNow() - while ((match = raw.match(fullRegExp))) { + while((match = raw.match(fullRegExp))) { matchIndex = rawOffset + match.index; + //console.log('parseEntities match:', match); + if(match[3]) { // mentions entities.push({ _: 'messageEntityMention', @@ -195,31 +153,27 @@ function parseEntities (text, options) { offset: matchIndex, length: 1 }); - } else if(match[8]/* && !emojiSupported */) { // Emoji - if(emojiCode) matchIndex -= match[8].length; - emojiCode += match[8]; - //console.log('hit', match[8], emojiCode.length); - if((emojiCoords = getEmojiSpritesheetCoords(emojiCode))) { + } else if(match[8]) { // Emoji + //console.log('hit', match[8]); + let emojiCoords = getEmojiSpritesheetCoords(match[8]); + if(emojiCoords) { entities.push({ _: 'messageEntityEmoji', offset: matchIndex, - length: emojiCode.length, - coords: emojiCoords/* , - title: emojiData[emojiCode][1][0] */ + length: match[8].length, + unicode: emojiCoords }); - - emojiCode = ''; } } else if(match[10]) { // Hashtag entities.push({ _: 'messageEntityHashtag', - offset: matchIndex + match[9].length, + offset: matchIndex + (match[9] ? match[9].length : 0), length: match[10].length }); } else if(match[12]) { // Bot command entities.push({ _: 'messageEntityBotCommand', - offset: matchIndex + match[11].length, + offset: matchIndex + (match[11] ? match[11].length : 0), length: 1 + match[12].length + (match[13] ? 1 + match[13].length : 0) }); } @@ -393,7 +347,6 @@ function wrapRichText (text, options = {}) { var url; var html = []; var lastOffset = 0; - var curEmojiSize = options.emojiIconSize || emojiIconSize; for(var i = 0; i < len; i++) { entity = entities[i]; if(entity.offset > lastOffset) { @@ -501,27 +454,9 @@ function wrapRichText (text, options = {}) { html.push(options.noLinebreaks ? ' ' : '
') break case 'messageEntityEmoji': - - /* var inner = `${encodeEntities(entityText)}`; */ - /* var inner = `\u200B`; */ - - /* if(emojiSupported) { - html.push(encodeEntities(entityText)); - } else { - *///html.push(`${emojiSupported ? encodeEntities(entityText) : inner}\u200B`); - //} - - inner = `${encodeEntities(entityText)}`; - - //html.push(`${emojiSupported ? encodeEntities(entityText) : inner}\u200B`); - - html.push(emojiSupported ? `${encodeEntities(entityText)}` : inner); + html.push(emojiSupported ? + `${encodeEntities(entityText)}` : + `${encodeEntities(entityText)}`); emojiFound = true; break diff --git a/src/lib/utils.js b/src/lib/utils.js index cb58136e..8bc4def4 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -441,42 +441,6 @@ export function findUpTag(el, tag) { return null; } -export function isElementInViewport(el) { - var rect = el.getBoundingClientRect(), - vWidth = window.innerWidth || document.documentElement.clientWidth, - vHeight = window.innerHeight || document.documentElement.clientHeight, - efp = function(x, y) { return document.elementFromPoint(x, y) }; - - // Return false if it's not in the viewport - if(rect.right < 0 || rect.bottom < 0 - || rect.left > vWidth || rect.top > vHeight - || !rect.width || !rect.height) { - return false; - } - - let elements = [ - efp(rect.left + 1, rect.top + 1), - efp(rect.right - 1, rect.top + 1), - efp(rect.right - 1, rect.bottom - 1), - efp(rect.left + 1, rect.bottom - 1) - ]; - - // Return true if any of its four corners are visible - return elements.find(e => el.contains(e) || el.parentElement == e) !== undefined; -} - -export function isScrolledIntoView(el) { - var rect = el.getBoundingClientRect(); - var elemTop = rect.top; - var elemBottom = rect.bottom; - - // Only completely visible elements return true: - //var isVisible = (elemTop >= 0) && (elemBottom <= window.innerHeight); - // Partially visible elements return true: - var isVisible = elemTop < window.innerHeight && elemBottom >= 0; - return isVisible; -} - export function whichChild(elem/* : Node */) { let i = 0; // @ts-ignore @@ -645,11 +609,11 @@ export function calcImageInBox (imageW, imageH, boxW, boxH, noZooom) { * @param {String} input The emoji character. * @returns {String} The base 16 unicode code. */ -/* export function emojiUnicode (input) { - let pairs = emojiUnicode.raw(input).split(' ').map(val => parseInt(val).toString(16)); - if(pairs[0].length == 2) pairs[0] = '00' + pairs[0]; - return pairs.join('-').toUpperCase(); -} */ +export function emojiUnicode(input) { + let pairs = emojiUnicode.raw(input).split(' ').map(val => parseInt(val).toString(16)).filter(p => p != 'fe0f'); + if(pairs.length && pairs[0].length == 2) pairs[0] = '00' + pairs[0]; + return pairs.join('-'); +} /** * emojiunicode.raw @@ -660,7 +624,7 @@ export function calcImageInBox (imageW, imageH, boxW, boxH, noZooom) { * @param {String} input The emoji character. * @returns {String} The unicode code points. */ -/* emojiUnicode.raw = function (input) { +emojiUnicode.raw = function(input) { if(input.length === 1) { return input.charCodeAt(0).toString(); } else if(input.length > 1) { @@ -685,74 +649,7 @@ export function calcImageInBox (imageW, imageH, boxW, boxH, noZooom) { } return ''; -}; */ - -// country code regex -const CC_REGEX = /^[a-z]{2}$/i; - -// offset between uppercase ascii and regional indicator symbols -const OFFSET = 127397; - -/** - * convert country code to corresponding emoji flag - * @param {string} cc - country code string - * @returns {string} country code emoji - */ -export function countryCodeEmoji(cc/* : string */) { - if(!CC_REGEX.test(cc)) { - const type = typeof cc; - throw new TypeError( - `cc argument must be an ISO 3166-1 alpha-2 string, but got '${ - type === 'string' ? cc : type - }' instead.`, - ); - } - - const chars = [...cc.toUpperCase()].map(c => c.charCodeAt(0) + OFFSET); - //console.log(chars); - return String.fromCodePoint(...chars); -} - -export function unifiedCountryCodeEmoji(cc/* : string */) { - if(!CC_REGEX.test(cc)) { - const type = typeof cc; - throw new TypeError( - `cc argument must be an ISO 3166-1 alpha-2 string, but got '${ - type === 'string' ? cc : type - }' instead.`, - ); - } - - const chars = [...cc.toUpperCase()].map(c => c.charCodeAt(0) + OFFSET); - return chars.map(c => c.toString(16).toUpperCase()).join('-'); -} - -function versionCompare (ver1, ver2) { - if (typeof ver1 !== 'string') { - ver1 = '' - } - if (typeof ver2 !== 'string') { - ver2 = '' - } - ver1 = ver1.replace(/^\s+|\s+$/g, '').split('.') - ver2 = ver2.replace(/^\s+|\s+$/g, '').split('.') - - var a = Math.max(ver1.length, ver2.length), i - - for (i = 0; i < a; i++) { - if (ver1[i] == ver2[i]) { - continue - } - if (ver1[i] > ver2[i]) { - return 1 - } else { - return -1 - } - } - - return 0 -} - +}; //var badCharsRe = /[`~!@#$%^&*()\-_=+\[\]\\|{}'";:\/?.>,<\s]+/g, var badCharsRe = /[`~!@#$%^&*()\-_=+\[\]\\|{}'";:\/?.>,<]+/g, diff --git a/src/scss/partials/_chatBubble.scss b/src/scss/partials/_chatBubble.scss index b7080f2f..eca43311 100644 --- a/src/scss/partials/_chatBubble.scss +++ b/src/scss/partials/_chatBubble.scss @@ -106,7 +106,7 @@ } } - &.forwarded { + /* &.forwarded { .forward { opacity: 0; position: absolute; @@ -129,6 +129,24 @@ height: 20px; } } + } */ + + .goto-original { + opacity: 0; + position: absolute; + right: -46px; + bottom: 0; + width: 38px; + height: 38px; + font-size: 1.5rem; + align-items: center; + display: flex; + justify-content: center; + color: #fff; + border-radius: 50%; + background: rgba(0, 0, 0, 0.16); + cursor: pointer; + transition: .2s opacity; } /* &.is-group-first { @@ -161,10 +179,8 @@ } } - &:hover { - .forward { - opacity: 1; - } + .goto-original { + opacity: 1; } .reply { diff --git a/src/scss/partials/_rightSIdebar.scss b/src/scss/partials/_rightSIdebar.scss index 456847f7..be596fae 100644 --- a/src/scss/partials/_rightSIdebar.scss +++ b/src/scss/partials/_rightSIdebar.scss @@ -75,12 +75,12 @@ position: relative; //height: 1%; // fix safari - &.loaded { + /* &.loaded { // warning .profile-tabs-content { position: relative; min-height: auto; } - } + } */ } } diff --git a/src/scss/partials/_scrollable.scss b/src/scss/partials/_scrollable.scss index d3d36ac6..8bb61ba2 100644 --- a/src/scss/partials/_scrollable.scss +++ b/src/scss/partials/_scrollable.scss @@ -50,6 +50,14 @@ div.scrollable::-webkit-scrollbar-thumb { -ms-overflow-style: none; } + &-sentinel { + position: relative; + left: 0; + height: 1px; + background-color: transparent; + width: 1px; + } + /* &.scrollable-x ~ .scrollbar-thumb { top: auto; right: auto;