403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/Windows/System32/es-ES/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/Windows/System32/es-ES/mshtml.dll.mui
MZ����@���	�!�L�!This program cannot be run in DOS mode.

$5�<�q�R�q�R�q�R�e���p�R�e�P�p�R�Richq�R�PEL�!�

�D�@ ؔ8.rdata�@@.rsrc� �@@� �
T88� �$��8.rdata8x.rdata$zzzdbg �;.rsrc$01�[	.rsrc$02 4"���HDS���\��X]$0�M�s��� ��P�h�����	��(�@�X��������� �E`8�8�P��h�l��������R����������s(�!@�1X�3p�5��6��8��9��:��?�@�A0�_H�``��x�����������������	�� 	��8	��P	��h	�&�	�:�	�F�	�L�	�U�	���	��
��(
��@
��X
��p
��
��
��
��
��
���30�rH��`�x�(��)��*����������� ��8��P��h��������������
�(
�!@
�1X
�4p
�5�
�6�
�7�
�8�
�9�
�A�Q�R0�VH�W`�ax�b��g��h��i��m��q�r �t8��P��h����������������������(��@�-X�
p�
��
��
��
��
��
�
�
0�!
H�"
`�&
x�'
��(
��a
��q
��@���n��( �)8�*P�+h�,��-��.��/��0��1��2�3(�4@�5X�p��������������� ��� ��D ��X �0�n �H�� �`�� �x�� ���� ���!���&!���
�


 
0
@
P
`
p
�
�
�
�
�
�
�
�


 
0
@
P
`
p
�
�
�
�
�
�
�
�


 
0
@
P
`
p
�
�
�
�
�
�
�
�


 
0
@
P
`
p
�
�
�
�
�
�
�
�


 
0
@
P
`
p
�
�
�
�
�
�
�
�


 
0
@
P
`
p
�
�
�
�
�
�
�
�


 
0
@
P
`
p
�
�
�
�
�
�
�
�


 
0
@
P
`
p
�
�
�
�
�
�
�
�


 
0
@
P
`
p
�
�
�
�
�
�
�
�


 
0
@
P
`
p
�
�
�
�
�
�
�
�DA��B
�$L���P��|Ql��Q���R��,S�0V���Y��H[���[d�,]<�ha��HcX��c��hdx��e6�j*�Dj8�|ld��l���m6��m���nF��on�Dp~��p8��p\�Xqj��u$��w6� y���y\�~�	�Їd�4���܍J�(������̏������(�P�x�R�̔��t���@���ĥ�ة��~�l��������ıT��������0�v������b����нh�8�P�����@�>�����T�*�����T�������������B���f�H���������z��
�,�L�x�������r�L�h<��	���<���
�P$��D'p��'��(��+���1��P3v	��<X� Bj��F��`R<��V`��Vh�d_D��bf�c���d\�0lV��r��hx����l��������X������p���D�,�p�6���N���b�\�:�����8�@�x�<�����@�r���*���������B�(����(�0��8��@�h���H���h�X�h�������������������������������`���(�4 �\����}��
I��
��xa��,���JZ�K01�<|,�h�����|?�,�.��\2�`I'�dptD�MUIIDD_ADDTOSAVE_DIALOG_MSHTMLPERFWIDGETACCELERATORSWEBPLATFORMACCELERATORSABOUT-COMPAT-ICONS.SVG	ABOUT.MOZABOUTCOMPAT.CSSABOUTCOMPAT.JSABOUTCOMPATDATA.JS	BLANK.HTM
COMPAT.HTM
GLOBAL.CSSHTML5ENTITIES.DTDICON-SEARCH.SVGPERFWIDGET.HTMLPHISHSITE_WEBVIEW.HTMTABLE.JSXMLTREEVIEW.JS������X�����C�0�"�
��wBg2����(�MUI	es-ES&Edici�n+&Deshacer	Ctrl+Z&Rehacer	Ctrl+YCor&tar	Ctrl+X&Copiar	Ctrl+C&Pegar	Ctrl+VBorr&ar	DelSe&leccionar todo	Ctrl+AC&Buscar...	Ctrl+F�&Ir a...	Ctrl+GL&V�nculo...	Ctrl+KPQuitar &marcador�MQuitar v�&nculo&VerR&Barra de herramientasSBarra de e&stadoTMarcas de for&matoUSolo te&xto&FuentesaMuy g&rande`Gran&de_&Mediano^&Peque�o�]Muy peque�&o�&Actualizar	F5[C�&digo fuenteAbrir &v�nculoXEn la ventana a&ctual�	En una n&ueva pesta�a�YEn una ventana &nueva&Propiedades...�W&Opciones...&InsertarfL�nea hori&zontalSalto de &l�neagSalto de l�nea &normalhHasta e&l margen izquierdoiHasta el margen de&recho�jHasta am&bos m�rgenesk&Espacio sin salto	Ctrl+May�s+Espacio�Sal&to de p�ginalCa&r�cter especial...�&Marquesina...zTexto &HTML&ControlqCuadro de &textor�re&a con textos&CasillatBot�n de &opci�nuLista &desplegablevCuadro de &lista�w&Bot�nx&Imagen...nM&arco...�&Objeto...F&ormatoZ&Caracteres...�&Aumentar sangr�a��&Reducir sangr�aAy&uda�Temas de ayuda de Trident �Archivo L�ame de Trident��Acerca de Microsoft Trident�Ayuda de Microsoft Trident�Temas de ayuda de Trident �Archivo L�ame de Trident��Acerca de Microsoft Trident&Edici�nCor&tar	Ctrl+X&Copiar	Ctrl+C&Pegar	Ctrl+VSeleccionar t&odo	Ctrl+A�C&Buscar (en esta p�gina)...	Ctrl+F&VerR&Barra de herramientasSBarra de e&stado&FuentesaMuy g&rande`Gran&de_&Mediano^&Peque�o�]Muy peque�&o�&IdiomaZDete&ner	Esc�&Actualizar	F5[&C�digo fuente&Depurador	L&anzar depurador�	I&nterrumpir en el siguiente�W&Opciones...Ay&uda�Temas de ayuda de Trident�Archivo L�ame de Trident��Acerca de Microsoft Trident�Ayuda de Microsoft Trident�Temas de ayuda de Trident �Archivo L�ame de Trident��Acerca de Microsoft Trident.	Documento de izquierda a derecha�/	Documento de derecha a izquierda�ArrastrarMover aqu�Copiar aqu��Cancelar�Control+&DeshacerCor&tarC&opiar&PegarEli&minar�&Seleccionar todo��DT�MS Shell DlgP2
�����&Idioma:!P5�F ������Ȁ�bInternet ExplorerMS Shell DlgP{K2���NoP`�������P*� n���El contenido activo puede da�ar el equipo o mostrar informaci�n personal. �Est� seguro de que desea permitir que el contenido activo tenga acceso al equipo?P*1�mSysLink<A ID="ShowLMZLUnlockHelp">Obtener m�s informaci�n acerca de Bloqueo de equipo local</A>P<K2���S����Ȁ�Error de p�gina web�MS Shell DlgPiy���P%�!��������Desea depurar esta p�gina web?
Esta p�gina web tiene errores que pueden impedir que se muestre correctamente o que funcione bien. Si no est� probando esta p�gina web, haga clic en No. P%+�
����No volver a &mostrar este mensajeP%8�
����&Usar el depurador de scripts integrado de Internet ExplorerP�L2���&S�P�L2���&No�Pb2�������Ȑ�}Orden de las pesta�asMS Shell DlgP�2���AceptarP�$2���CancelarP�B2����&SubirP�T2����&BajarP�
����&Orden de las pesta�as:	�P�e������@B�6MS Shell Dlg��P�X���S�P�$T������ȀA>Mensaje de usuario de ExplorerMS Shell Dlg��P*3
����P2���AceptarP2���CancelarP�
�����Mensaje del script:P��������Ȑd2��Visor ActiveX no instaladoMS Shell DlgP������P"
������La p�gina que va a ver contiene un objeto incrustado del tipo siguiente:P�3���&S�P��3���&NoP"q�����&Comprobar siempre antes de mostrar este tipo de objetoPU0�����P"T������El equipo no tiene un visor ActiveX para este tipo de objeto. �Desea transferir e instalar el visor ActiveX autom�ticamente?P"#�+�����Tipo de objeto incrustadoP(0)�����Extensi�n:P(=)�����Tipo MIME:PU=��������ȀARMensaje de usuario de ExplorerMS Shell Dlg��P*3
���� P43����No permitir que esta p�gina cree m�s mensajesP2���AceptarP2���CancelarP�
�����Mensaje del script:P�����Documento HTMLDocumento HTMLSeguridad SSL (40 bits)Seguridad SSL (128 bits)
SSL protegidoSeguridad SSL (56 Bits)PA-30s+30s
ReproducirPausarSilencioReactivar audioGuardar v�deo como...Guardar audio como...Copiar direcci�n URL de v�deoCopiar direcci�n URL de audio%sX%.3fXInternet ExplorerErrorAnuladoError de redError de descodificaci�nOrigen no v�lidoError desconocido(Error: se anul� la reproducci�n de v�deo+Error de red: no puede recuperarse el v�deo&Error de red: no puede reproducirse en&Error: no pudo descodificarse el v�deoHError: ruta de acceso de archivo no v�lida o tipo de v�deo no compatibleError desconocido(Error: se anul� la reproducci�n de audio,Error de red: no se puede recuperar el audio&Error: no pudo descodificarse el audioHError: ruta de acceso de archivo no v�lida o tipo de audio no compatiblePA.....PA
ReproducirPausarBuscarVolumenSilencioReactivar audio Tiempo transcurrido/Saltar atr�sTiempo restante/Saltar adelante"Mostrar men� de selecci�n de audio'Mostrar men� de selecci�n de subt�tulosVolumen/Desactivar audioPantalla completaSalir de pantalla completaAcercarAlejar
sin t�tuloDesactivado
%1 (activado)CSolicitud de energ�a del elemento multimedia para pantalla completaPARestablecerPANormalCon formato	Direcci�nEncabezado 1Encabezado 2Encabezado 3Encabezado 4Encabezado 5Encabezado 6Lista numeradaLista con vi�etasLista de directorio
Lista de men�T�rmino de definici�n
Definici�nP�rrafo<pre>	<address><h1><h2><h3><h4><h5>PA<h6><ol><ul><dir><menu><dt><dd><p><div>PA/Internet Explorer <0d>.<1d2>.<2d4>.<3d><4s><5s>PA(sin t�tulo)Este comando no es compatible.&Editar&Propiedades...Windows Internet ExplorerSoluci�n:
<0s>7No se pudo completar la operaci�n debido un error <0x>.)No se pudo establecer la propiedad  <0s>.&No se pudo obtener la propiedad <0s> .5El valor escrito para la propiedad <0s> no es v�lido.�Error de an�lisis de HTML: no se puede modificar el elemento del contenedor principal antes de que se cierre el elemento secundario (KB927917)/Escriba un valor comprendido entre <0d> y <1d>.!Escriba un valor superior a cero.)Escriba un valor superior o igual a cero.&El objeto cambi�. �Desea actualizarlo?PA%El analizador termin� antes de tiempo>El analizador termin� antes de tiempo, en aproximadamente <0s>Microsoft Internet ExplorerEl tipo de imagen no es v�lido.Propiedades del controlPropiedades de <0s>No se pudo pegar el control.No se pudo insertar el control.
Deshacer <0s>Rehacer <0s>No se puede deshacerNo se puede rehacerInsertar objetoEliminar objetoCambio de propiedadMoverExplorador webColocarPAPegar	EscrituraOperaci�n de textoAutocorrecci�nCambio ortogr�fico;No se puede establecer la propiedad en tiempo de ejecuci�n.�No se puede mover el foco hacia el control porque el control es invisible, no est� habilitado o es de un tipo que no acepta al foco..No se puede usar este m�todo en este contexto.Escriba un valor correcto.!No se pudo llamar al m�todo <0s>.El control necesita el foco.:Llamada inesperada a un m�todo o a un acceso de propiedad.Error no especificado.#El valor no es un objeto de imagen.*�ndice de matriz de propiedades no v�lido.Valor de propiedad no v�lido.Desbordamiento.Permiso denegado.Argumento no v�lido.ANo se puede crear el control porque no tiene una licencia v�lida.2Elemento de destino no v�lido para esta operaci�n.*Fuente HTML no v�lida para esta operaci�n.DesconocidoIEsta direcci�n no es v�lida. Compruebe la direcci�n e int�ntelo de nuevo.YNo se encuentra el sitio. Aseg�rese de que la direcci�n es correcta e int�ntelo de nuevo.(Desbordamiento de pila en la l�nea: <0d>&Memoria insuficiente en la l�nea: <0d>TEste documento no se carg� completamente porque contiene etiquetas que no coinciden.5Punteros de marcado incompatibles con esta operaci�n.2Puntero de marcado no situado para esta operaci�n.(Elemento no situado para esta operaci�n.Desbordamiento de pilaMensaje de p�gina webNo se puede agregar contenido din�mico. Un script intent� inyectar contenido din�mico, o elementos anteriormente modificados din�micamente, que probablemente no sea seguro. Por ejemplo, el uso de la propiedad innerHTML para agregar un script o HTML con un formato incorrecto generar� esta excepci�n. Recurra al m�todo toStaticHTML para filtrar el contenido din�mico o cree elementos y atributos expresamente con un m�todo como createElement. Para obtener m�s informaci�n, consulte http://go.microsoft.com/fwlink/?LinkID=247104.PA/Haga clic aqu� para activar y usar este controlPPresione la barra espaciadora o la tecla Entrar para activar y usar este controlControl inactivoDHaga clic aqu� para cargar el siguiente control: "<0s>" desde "<1s>"BHaga clic aqu� para ejecutar un control ActiveX en esta p�gina webKSe produjo un error desconocido al intentar determinar la ubicaci�n actual.EEste sitio no tiene permiso para usar la API de ubicaci�n geogr�fica.*No se pudo determinar la ubicaci�n actual.SNo se pudo determinar la ubicaci�n actual dentro del tiempo de espera especificado.Modo de Internet ExplorerXEspecifique la configuraci�n de administraci�n de energ�a del modo de Internet Explorer.(Frecuencia de temporizador de JavaScriptAhorro de energ�a m�ximoRendimiento m�ximoPAProtocolo desconocidoPAL<0s>, <1s> con cifrado de <2d> bits <3i>; <5s> con  intercambio de <6d> bits(baja)	(mediana)(alta)Cifrado	Mi equipoIntranet localSitios de confianzaInternetSitios restringidos&M�sPACargar imagen|bmp|Todos los archivos de im�genes|*.bmp;*.wmf;*.emf;*.ico;*.dib;*.cur;*.gif;*.jpg|Mapas de bits(*.Bmp;*.Dib)|*.bmp;*.dib|Metarchivos(*.Wmf;*.Emf)|*.wmf;*.emf|Iconos(*.Ico;*.Cur)|*.ico;*.cur|GIF(*.Gif)|*.gif|JPEG(*.Jpg)|*.jpg|Todos los archivos(*.*)|*.*|NCargar imagen|bmp|Iconos(*.Ico;*.Cur)|*.ico;*.cur|Todos los archivos(*.*)|*.*|Todas las propiedadesPropiedades del estilo en l�nea - Di�logo de p�gina web�Elegir archivos para cargar|*|Todos los archivos (*.*)|*.*|Im�genes (*.gif;*.jpg;*.jpeg;*.png)|*.gif;*.jpg;*.jpeg;*.png|HTML (*.htm;*.html)|*.htm;*.html|PATimes New RomanNo se pudo guardar la imagen.%No se pudo configurar el papel tapiz.��Desea detener la ejecuci�n de este script?

Un script en esta p�gina est� provocando que el explorador web se
ejecute con lentitud. El equipo podr�a dejar de responder si el
script se sigue ejecutando.

�La p�gina contiene un control ActiveX potencialmente peligroso.  
La configuraci�n de seguridad actual impide ejecutar controles en estas condiciones.  
Puede que la p�gina no se muestre como se esperaba.�Esta p�gina contiene informaci�n potencialmente peligrosa para un control de ActiveX. La configuraci�n de seguridad actual impide la ejecuci�n de controles de esta forma. Puede que la p�gina no se muestre correctamente.3Para mostrar de nuevo esta p�gina web, el explorador web debe
volver a enviar la informaci�n que ya envi� anteriormente.

Si estaba realizando una compra, haga clic en Cancelar para
evitar que la transacci�n se realice dos veces. De lo contrario,
haga clic en Reintentar para volver a mostrar la p�gina web.5No se pudieron mostrar uno o varios controles ActiveX por alguna de las siguientes causas:

1) La configuraci�n de seguridad actual proh�be el uso de controles ActiveX en esta p�gina.
2)El editor de alguno de los controles est� bloqueado.

Como resultado, es posible que la p�gina no se muestre correctamente.SLa etiqueta  XML no coincide o no se cerr� correctamente en "<1s><2s>", l�nea <0d>.L�nea: <1d>

Error: <2s>1No se pudo configurar el elemento del escritorio.No se pudo imprimir la imagen.3No se pudo enviar la imagen por correo electr�nico.PAcGuardar documento HTML|htm|Archivo HTML (*.htm;*.html)|*.htm;*.html|Archivo de texto (*.txt)|*.txt|@Guardar imagen|gif|GIF (*.gif)|*.gif|Mapa de bits (*.bmp)|*.bmp|AGuardar imagen|jpg|JPEG (*.jpg)|*.jpg|Mapa de bits (*.bmp)|*.bmp|.Guardar imagen|bmp|Mapa de bits (*.bmp)|*.bmp|@Guardar imagen|wmf|WMF (*.wmf)|*.wmf|Mapa de bits (*.bmp)|*.bmp|@Guardar imagen|emf|EMF (*.emf)|*.emf|Mapa de bits (*.bmp)|*.bmp|%Guardar imagen|avi|AVI (*.avi)|*.avi|&Guardar imagen|mpg|MPEG (*.mpg)|*.mpg|%Guardar imagen|mov|MOV (*.mov)|*.mov|#Guardar imagen||Original (*.*)|*.*|untitled.bmpPA
untitled.html$<0s>\Internet Explorer Wallpaper.bmp9Este tipo de documento no tiene certificado de seguridad.%s necesita alguna informaci�n@Guardar imagen|png|PNG (*.png)|*.png|Mapa de bits (*.bmp)|*.bmp|CGuardar imagen|tif|TIFF (*.tiff)|*.tiff|Mapa de bits (*.bmp)|*.bmp|@Guardar imagen|jxr|JXR (*.jxr)|*.jxr|Mapa de bits (*.bmp)|*.bmp|gGuardar imagen|svg|Scalable Vector Graphics (*.svg)|*.svg|PNG (*.png)|*.png|Mapa de bits (*.bmp)|*.bmp|sin t�tulo.svg:Guardar imagen|ico|ICO (*.ico)|*.ico|Bitmap (*.bmp)|*.bmp|untitled.pngArchivos de audioArchivos de imagenArchivos de v�deoArchivos personalizados@Guardar imagen|dds|DDS (*.dds)|*.dds|Mapa de bits (*.bmp)|*.bmp|(Queda(n) <0d> elemento(s)>) Descargando imagen <0s>...Generando p�gina <0s>...Esperando a <0s>...PAInstalando componentes...<0s>Descargando datos <0s>...
FinalizadoCargando conjunto de datos...Enlazando datos...Acceso directo a <0s> <1s><0s> en <1s>Env�a correo a <0s>(local)PA(Gopher)(FTP)(sitio web seguro)Error de carga del documentoPA/No se puede abrir el sitio Internet <0s>.

<1s>/�Est� seguro de que desea salir de esta p�gina?IPuede buscar en este �ndice. Escriba las palabras clave que desea buscar:KPresione Aceptar para continuar o Cancelar para seguir en la p�gina actual.QEste es un �ndice que permite b�squedas. Escriba las palabras clave para buscar: FontNameFontSizeFontBold
FontItalic	FontUnder	BackColorPABorderColorBorderStyle	TextAlign
SpecialEffectFontSuperscript
FontSubscript
<no definido>nulltruefalse8Este documento contiene los siguientes accesos directos:Texto de acceso directoDirecci�n de Internet&w&bP�gina &p de &P&u&b&d0.7500000.7500000.7500000.750000Documentos XPS (*.xps)|*.xps|RestablecerEnviar consultaExaminar...Borrar valorPA*Formulario publicado en el explorador web.qNo se pudo llevar a cabo la operaci�n porque el cliente de correo predeterminado no est� instalado correctamente.�Este formulario se est� enviando por correo electr�nico.
El env�o de este formulario revelar� su direcci�n de correo electr�nico,
y no cifrar� la informaci�n del formulario como medida de privacidad.

Puede continuar o cancelar el env�o.#No se encontr� el cliente de correoPAgNo se pudo guardar un valor en el campo '<0s>' del origen de datos.
<1s>

�Descartar el valor cambiado?Error de conversi�n de tipo.;El registro de origen de datos se elimin� con anterioridad./El campo de origen de datos es de solo lectura.IEl valor no es consistente con las restricciones del origen de los datos.Operaci�n cancelada.)Error en la operaci�n con el estado <1d>.PAdContiene comandos para los v�nculos del Portapapeles, y para la b�squeda y modificaciones del texto.<Contiene comandos para controlar la apariencia de la p�gina.7Contiene comandos para insertar elementos en la p�gina.JContiene comandos para formatear los elementos seleccionados en la p�gina.PANHaga clic aqu� para instalar el siguiente control ActiveX: '<0s>' de '<1s>'...RLa p�gina web que est� viendo est� intentando cerrar la pesta�a.

�Desea cerrarla?RLa p�gina web que est� viendo est� intentando cerrar la ventana.

�Desea cerrarla? (Mixto)Zona desconocidaModo protegido: activadoModo protegido: desactivadoModo protegido: mejoradoPA%1!ls! | %2!ls!PABuscar archivo para cargarActivar
DesactivarSaltar	PresionarSeleccionarCerrarAbrir
Doble clic&Escribir nombre de archivo para cargartipo de regi�n de v�nculo: PLUGIN: type=ObjectPLUGIN: type=EmbedMSAAHTML Registered Handler%d%%PAAlt+Flecha abajoJEste control est� inactivo. Seleccione el control para activarlo y usarlo.<0d> de <1d>
AscendenteDescendenteExpandirContraerAlternar
Hacer clicAnular selecci�nPAAudioV�deo
ReproducirPausar
Subir volumen
Bajar volumenAtr�sAdelanteIr al comienzoIr al final	Audio: %1	V�deo: %1'Reproduce la selecci�n de medios actual+Pone en pausa la selecci�n de medios actualBuscar"Busca alguna posici�n en una pistaEn %1 de %2 totalVolumen%1%% Tiempo transcurrido/Saltar atr�s%1Tiempo restante/Saltar adelante%1"Mostrar men� de selecci�n de audio'Mostrar men� de selecci�n de subt�tulosErrorCargandoCargando multimedia...Pantalla completaSalir de pantalla completaEspacio�Las teclas de direcci�n izquierda y derecha omiten 10 segundos; MAY�SCULA + teclas de direcci�n izquierda y derecha omiten 30 segundos.?Las teclas de direcci�n arriba y abajo suben o bajan el volumenMAU/May�s + flecha izquierda retrocede 30 segundos.*May�s + flecha derecha avanza 30 segundos.
Alt+EntrarPAEscAcercarAlejarZPAF12 Las herramientas de desarrollo F12 de la ventana principal de Internet Explorer deben estar cerradas antes de abrir este cuadro de di�logo.



Para cerrar la ventana existente de herramientas de desarrollo F12 y abrirlas aqu�, haga clic en Aceptar. De lo contrario, haga clic en Cancelar.BLa seguridad HTTPS perdi� su car�cter confidencial a causa de <0s>hLa propiedad window.name no se estableci� porque la ventana de destino pertenece a un dominio diferente./Reinicio de la p�gina de c�digos de <0s> a <1s>mError: se ha bloqueado el recurso siguiente porque requerir�a una acci�n de reserva no segura a SSL 3.0: <0s>KEl script de <0s> se bloque� debido a un error de coincidencia de tipo MIME<Se omiti� CSS debido a un error de coincidencia de tipo MIMEZP�gina de c�digos <0s> de (<1s>) invalida la p�gina de c�digos en conflicto <2s> de (<3s>)
Etiqueta METATLa p�gina de c�digos <0s> no est� permitida, solo lo est� la p�gina de c�digos <1s>.xLa seguridad de los iframe de espacio aislado puede ponerse en riesgo al permitir el acceso al script y al mismo origen.PA@charsetmarca de orden de bytes UNICODEEncabezado HTTPW<0s> se encuentra en la Lista de vista de compatibilidad de Internet Explorer ('<1s>').:<0s> es un sitio web que agreg� a Vista de compatibilidad.�<0s> se ejecuta en la Vista de compatibilidad ya que 'Mostrar sitios de la intranet en Vista de compatibilidad' est� comprobado.f<0s> se configur� para que se ejecute en la Vista de compatibilidad a trav�s de la Directiva de grupo.�El c�digo de esta p�gina deshabilit� el almacenamiento en memoria cach� de las p�ginas atr�s y adelante. Para m�s informaci�n, consulte: http://go.microsoft.com/fwlink/?LinkID=291337(@font-face detect� un error desconocido.?@font-face no pudo realizar la comprobaci�n de integridad WOFF.VError de coincidencia @font-face entre el origen de documento y la cadena de ra�z EOT.s@font-face no pudo realizar la comprobaci�n de permiso de incrustaci�n de OpenType. El permiso debe ser instalable.7@font-face no pudo cargar la fuente OpenType no v�lida.u:visitado y :estilo de l�neas de v�nculo solo pueden diferir en el color. Algunos estilos no se aplicaron a :visitadoiSe omiti� la etiqueta META compatible con X-UA ('<0s>') debido a que el modo de documento ya se finaliz�.ySe omiti� la etiqueta META compatible con X-UA ('<0s>') debido a una etiqueta META compatible con X-UA ('<1s>') anterior.CLa protecci�n de rastreo bloque� una descarga en esta p�gina.

<0s>bFall� la solicitud de origen cruzado de @font-face. Sin encabezado de Access-Control-Allow-Origin.ZFall� la solicitud de origen cruzado de @font-face. El acceso al recurso est� restringido.^No pudo crearse una nueva hoja de estilo. Existen m�s de <0d> hojas de estilo en el documento.ySe pas� por alto la instrucci�n de procesamiento compatible con x-UA ('<0s>') porque ya se complet� el modo de documento.Navegaci�n realizada.H'url' de argumento no v�lido. No pudo revocarse la URL del blob: '<0s>'.DAcceso denegado. No pudo revocarse la URL de origen cruzado: '<0s>'.!No se encontr� el recurso '<0s>'.PApError de la solicitud de red a <0s>.

El manifiesto de la aplicaci�n no declara las siguientes capacidades: <1s>pError de la solicitud de red a <0s>.

Esta sesi�n de Internet Explorer no tiene las siguientes capacidades: <1s>gAcceso denegado. El acceso a recursos est� restringido para la direcci�n URL de origen cruzado: '<0s>'.bSe detectaron posibles scripts entre sitios en '<0s>'. El contenido se modific� con el filtro XSS.1El recurso no existe en la memoria cach�: '<0s>'.,El recurso no existe en el servidor: '<0s>'./El manifiesto no existe en el servidor: '<0s>'.(Error de an�lisis de manifiesto: '<0s>'.DEl manifiesto cambi� mientras se ejecutaba la actualizaci�n: '<0s>'.Error grave de AppCache(Creando AppCache con manifiesto: '<0s>'.jLa base de datos indizada solo est� disponible en sitios web con esquemas de direcciones URL http o https._Una o m�s direcciones URL del blob no se revocaron antes de navegar a un nuevo documento. Dado que las direcciones URL del blob sin revocar pueden seguir usando recursos del sistema,

rev�quelas manualmente; para ello, llame a URL.revokeObjectURL o use la marca {oneTimeOnly} cuando llame a URL.createObjectURL para crear las direcciones URL del blob.OSe detect� un objeto blob de terceros con un modelo de subprocesos incompatible�Se revocaron una o varias direcciones URL de blob mediante el cierre del blog para el que se crearon. Estas direcciones URL ya no se resolver�n porque se han liberado los datos compatibles con la URL.!No se encontr� el recurso '<0s>'.HNo se pudo recuperar IUriToStreamResolver para la direcci�n URL: '<0s>'.gAcceso denegado. El acceso a recursos est� restringido para la direcci�n URL de origen cruzado: '<0s>'.kLa llamada a UriToStreamAsync fue correcta, pero devolvi� una operaci�n nula para la direcci�n URL: '<0s>'.>No se pudo descodificar la imagen en la direcci�n URL: '<0s>'.�No se puede recibir un evento ScriptNotify desde: '<0s>'. El sitio web intent� enviar un evento ScriptNotify a la aplicaci�n desde un identificador URI WebView que no est� incluido en las ApplicationContentUriRules para esta aplicaci�n. Para permitir este evento, agrega el identificador URI a la secci�n ApplicationContentUriRules del manifiesto del paquete. (En Visual Studio, agrega este identificador URI a la pesta�a URI de contenido del Dise�ador de manifiestos.)No se puede recibir un evento ScriptNotify desde: '<0s>'. El sitio web intent� enviar un evento ScriptNotify a la aplicaci�n desde un identificador URI WebView que no est� incluido en la propiedad AllowedNotifyUris. Agrega este URI a la propiedad AllowedNotifyUris de WebView.�El formato de imagen DDS no es compatible con Internet Explorer en Windows 7. Obtenga m�s informaci�n en http://go.microsoft.com/fwlink/?LinkId=291257�La imagen '<0s>' usa un formato de codificaci�n no compatible. Consulte la lista de formatos compatibles en http://go.microsoft.com/fwlink/?LinkId=291257.�La imagen '<0s>' tiene unos valores de canal alfa ambiguos. Solo se pueden mostrar las im�genes DDS que de forma expl�cita especifiquen el comportamiento de alfa. Obtenga m�s informaci�n en http://go.microsoft.com/fwlink/?LinkId=291257.h"<0s>" se encuentra en la lista de vista de compatibilidad de Internet Explorer con restricciones HTTP2.�La consulta multimedia -ms-view-state est� desusada. Puede que las consultas multimedia -ms-view-state se modifiquen o no est�n disponibles para versiones despu�s de Windows 8.1. En su lugar, use las consultas max-width y min-width.>Internet Explorer is running in Enterprise Mode emulating IE8.dLos datos de ruta de acceso SVG tienen un formato incorrecto y no se pudieron analizar por completo.VLa lista de puntos SVG tiene un formato incorrecto y no se pudo analizar por completo.(Aplicaci�n de control integrado de XSLT.Error de procesamiento de XSLT.0Se deneg� la solicitud para XSLT entre dominios.2XML+XSLT no est� permitido en marcos restringidos.PAMX_E_MXFin de entrada inesperado.Codificaci�n no reconocida.$No se puede cambiar la codificaci�n./Firma de codificaci�n de entrada no reconocida.WC_E_WCSe espera un espacio en blanco.Se espera un punto y coma.Se esperaba ">".Se espera una comilla.Se esperaba "=".6No se permite el car�cter "<" en valores de atributos. Se espera un d�gito hexadecimal.Se espera un d�gito decimalSe esperaba "[".Se esperaba "(".Car�cter XML no v�lido.Car�cter de nombre no v�lido.!Sintaxis de documento incorrecta.%Sintaxis de secci�n CDATA incorrecta."Sintaxis de comentario incorrecta.+Sintaxis de secci�n condicional incorrecta.+Sintaxis de declaraci�n ATTLIST incorrecta.+Sintaxis de declaraci�n DOCTYPE incorrecta.+Sintaxis de declaraci�n ELEMENT incorrecta.*Sintaxis de declaraci�n ENTITY incorrecta.,Sintaxis de declaraci�n NOTATION incorrecta.Se esperaba "NDATA".Se esperaba "PUBLIC".Se esperaba "SYSTEM".Nombre no v�lido.!Solo se permite un elemento ra�z.`El nombre de la etiqueta final no coincide con el nombre de la etiqueta inicial correspondiente.;Ya existe un atributo con el mismo nombre en este elemento.=Una declaraci�n XML solo se permite al principio del archivo."xml" inicial.,Sintaxis de declaraci�n de texto incorrecta.'Sintaxis de declaraci�n XML incorrecta..Sintaxis de nombre de codificaci�n incorrecta.-Sintaxis de identificador p�blico incorrecta.�No se permiten las referencias de la entidad de par�metro dentro de las declaraciones de marcado en un subconjunto interno de DTD.�El texto de reemplazo para las referencias de la entidad de par�metro usadas entre declaraciones de marcado debe contener una serie de declaraciones de marcado completas.UUna entidad analizada no debe contener una referencia directa o indirecta a s� misma.EEl contenido de la entidad especificada no tiene un formato correcto.&No se declar� la entidad especificada.FLa referencia a la entidad no puede contener una entidad no analizada.cLos valores de atributos no pueden contener referencias directas o indirectas a entidades externas.4Sintaxis de instrucci�n de procesamiento incorrecta.PA1Sintaxis de identificador del sistema incorrecta.*Se esperaba un signo de interrogaci�n (?).]El delimitador de cierre, secci�n y CDATA "]]>" no se debe usar en el contenido del elemento.(No se leyeron todos los grupos de datos.$Se encontr� DTD pero est� prohibido.iSe encontr� el atributo xml:space con un valor no v�lido. Los valores v�lidos son "preserve" o "default".NC_E_NC&Car�cter de nombre completo no v�lido.=No se deben usar varios dos puntos ":" en un nombre completo.1No se deben usar los dos puntos ":" en un nombre.Prefijo declarado.&No se declar� el prefijo especificado.WLas declaraciones de espacio de nombres no predeterminadas no deben tener un URI vac�o.WSe reserva el prefijo "xml" y debe tener el URI "http://www.w3.org/XML/1998/namespace".2Se reserva el prefijo "xmlns" para que lo use XML.nEl URI del espacio de nombres xml (http://www.w3.org/XML/1998/namespace) solo debe asignarse al prefijo "xml".bEl URI del espacio de nombres xmlns (http://www.w3.org/2000/xmlns/) es reservado y no debe usarse.SC_E_SC;Se excedi� la profundidad m�xima de los elementos anidados.9Se excedi� el n�mero m�ximo de expansiones de la entidad.WR_E_WROWR_E_NONWHITESPACE: redactor: la cadena especificada no es un espacio en blancoxWR_E_NSPREFIXDECLARED: redactor: el prefijo del espacio de nombres ya est� declarado con un espacio de nombres diferenteiWR_E_NSPREFIXWITHEMPTYNSURI: redactor: no se puede usar el prefijo con un URI de espacio de nombres vac�o5WR_E_DUPLICATEATTRIBUTE: redactor: atributo duplicadoMWR_E_XMLNSPREFIXDECLARATION: redactor: no se puede redefinir el prefijo xmlnsjWR_E_XMLPREFIXDECLARATION: redactor: el prefijo xml debe tener el URI http://www.w3.org/XML/1998/namespace�WR_E_XMLURIDECLARATION: redactor: el URI del espacio de nombres xml (http://www.w3.org/XML/1998/namespace) solo debe asignarse al prefijo 'xml'�WR_E_XMLNSURIDECLARATION: redactor: el URI del espacio de nombres xmlns (http://www.w3.org/2000/xmlns/) es reservado y no debe usarseKWR_E_NAMESPACEUNDECLARED: redactor: el espacio de nombres no est� declaradozWR_E_INVALIDXMLSPACE: redactor: valor no v�lido del atributo xml:space (los valores permitidos son 'default' y 'preserve')aWR_E_INVALIDACTION: redactor: realizar la acci�n solicitada producir�a un documento XML no v�lido_WR_E_INVALIDSURROGATEPAIR: redactor: la entrada contiene un par suplente no v�lido o incompletoJCar�cter inesperado en entidad de car�cter. Se esperaba un d�gito decimal.NCar�cter inesperado en entidad de car�cter. Se esperaba un d�gito hexadecimal.EEl valor Unicode de la entidad de car�cter especificada no es v�lido.Codificaci�n no v�lida.Unspecified XML error.PAinternetClientprivateNetworkClientServerDesconocido
Emular IE9
Emular IE8
Emular IE7No establecidaQuirksEst�ndares de IE7Est�ndares de IE8Est�ndares de IE9<A trav�s de la barra de herramientas del desarrollador (F12)0A trav�s de la etiqueta META compatible con X-UA0A trav�s del encabezado HTTP compatible con X-UA=A trav�s de la configuraci�n local de vista de compatibilidad/A trav�s de la lista de vista de compatibilidad4A trav�s del control de versiones de plataformas web:A trav�s de la configuraci�n de compatibilidad de intranetGOrigen <0s> no encontrado en el encabezado Access-Control-Allow-Origin.wCar�cter comod�n en Access-Control-Allow-Origin no permitido cuando se establece como true el marcador de credenciales.�El marcador de credenciales se estableci� como true, pero Access-Control-Allow-Credentials no estaba presente o no se configur� como "true".\El encabezado de solicitud <0s> no estaba presente en la lista Access-Control-Allow-Headers.XEl m�todo de solicitud <0s> no estaba presente en la lista Access-Control-Allow-Methods.RXMLHttpRequest para <0s> origin� un error de an�lisis de encabezados de respuesta.`No se permiten redireccionamientos para las solicitudes de comprobaciones preparatorias de CORS.;Se bloque� el redireccionamiento para la solicitud de CORS.PA[No se permiten m�ltiples encabezados Access-Control-Allow-Origin para la respuesta de CORS.`No se permiten m�ltiples encabezados Access-Control-Allow-Credentials para la respuesta de CORS.PA\Car�cter inesperado al comienzo de la referencia de caracteres num�ricos. Se esperaba [0-9].yCar�cter inesperado al comienzo de la referencia de caracteres num�ricos hexadecimales. Se esperaba [0-9], [a-f] o [A-F].IFalta un punto y coma ";" de finalizaci�n en la referencia de caracteres.MLa referencia de caracteres num�ricos no se resuelve como un car�cter v�lido.2Referencia de caracteres con nombre no reconocida.BCar�cter no v�lido: NULO U+0000. No deben usarse caracteres nulos.VInicio de etiqueta no v�lido: "<?". Los signos de pregunta no deben iniciar etiquetas.MNombre de etiqueta no v�lido. El primer car�cter debe coincidir con [a-zA-Z].LEtiqueta final "</>" no v�lida. Las etiquetas finales no deben estar vac�as.gCar�cter de nombre de atributo no v�lido. Los nombres de atributo no deben contener ("),('),(<) ni (=).zValor de atributo sin comillas no v�lido. Los valores de atributo sin comilla no deben contener ("), ('), (<), (=) ni (`).Final de archivo inesperado.OComentario formado incorrectamente. Los comentarios deben comenzar con "<!-- ".0Car�cter no esperado: SIGNO MAYOR QUE (>) U+003E5Car�cter no esperado: SIGNO DE EXCLAMACI�N (!) U+0021,Car�cter no esperado: SIGNO MENOS (-) U+002DPA?Car�cter no esperado en final de comentario. Se esperaba "-->".JDOCTYPE vac�o. El tipo de documento v�lido m�s corto es "<!DOCTYPE html>". Car�cter no esperado en DOCTYPE.FPalabra clave no esperada en DOCTYPE. Se esperaba "PUBLIC" o "SYSTEM".]Comilla no esperada en la palabra clave "PUBLIC" o "SYSTEM". Se esperaban espacios en blanco.ZEtiqueta final formada incorrectamente. Las etiquetas finales no deben contener atributos.Etiqueta inicial formada incorrectamente. Una barra diagonal de autocierre debe estar seguida de un SIGNO MAYOR QUE (>) U+003E.eEtiqueta inicial formada incorrectamente. Los atributos deben estar separados por espacios en blanco.Car�cter no v�lidoMLa etiqueta no puede ser de autocierre. Use una etiqueta de cierre expl�cita.Final de archivo inesperado._DOCTYPE inesperado. Solamente se permite un DOCTYPE y debe ocurrir antes de cualquier elemento.Etiqueta inicial inesperada.Etiqueta de cierre inesperada.Token de car�cter no esperado.Token inesperado.CCar�cter inesperado: U+0000 NULO. No deben usarse caracteres nulos. Etiqueta final sin coincidencia. Etiqueta final sin coincidencia.3Los nodos requeridos no se encuentran en el �mbito.>Se encontr� un elemento de nivel inesperado fuera de "<head>".PA Etiqueta final sin coincidencia.hSe encontr� una etiqueta "<html>" adicional. Solamente debe existir una etiqueta "<html>" por documento.hSe encontr� una etiqueta "<body>" adicional. Solamente debe existir una etiqueta "<body>" por documento.sSe encontr� "<frameset>" demasiado abajo en el documento. Esta etiqueta debe ocurrir antes de que se cree "<body>".Anidamiento no v�lido. No debe colocarse una etiqueta de encabezado como "<h1>" o "<h2>" dentro de otra etiqueta de encabezado.`Anidamiento no v�lido. No debe colocarse una etiqueta "<form>" dentro de otra etiqueta "<form>".dAnidamiento no v�lido. No debe colocarse una etiqueta "<button>" dentro de otra etiqueta "<button>".ZAnidamiento no v�lido. No debe colocarse una etiqueta "<a>" dentro de otra etiqueta "<a>".UEtiqueta inicial inesperada: el elemento "<isindex>" est� en desuso y no debe usarse.sFinal de archivo o "</body>" inesperado. Todos los elementos abiertos deben cerrarse antes del final del documento.DEtiqueta final no v�lida: "</br>". Use "<br>" o "<br/>" en su lugar.pEtiqueta final superpuesta. La estructura de la etiqueta debe ser "<b><i></i></b>" en lugar de "<b><i></b></i>".YDOCTYPE HTML5 no v�lido. Considere el uso del formulario interoperable "<!DOCTYPE html>".RSe encontr� una etiqueta HTML inesperada dentro de contenido externo (MathML/SVG).`Anidamiento no v�lido. No debe colocarse una etiqueta "<nobr>" dentro de otra etiqueta "<nobr>".RSe esperaba DOCTYPE. Considere agregar un doctype HTML5 v�lido: "<!DOCTYPE html>".PAA"<image>" no esperado en contenido HTML. Use "<img>" en su lugar.ZValor de atributo xmlns:xlink no v�lido. El valor debe ser "http://www.w3.org/1999/xlink".�Se encontr� texto dentro de un elemento de tabla estructural. El texto de tabla solamente se puede colocar dentro de elementos "<caption>", "<td>" o "<th>".fValor de atributo xmlns no v�lido. Para elementos SVG, el valor debe ser "http://www.w3.org/2000/svg".qValor de atributo xmlns no v�lido. Para elementos MathML, el valor debe ser "http://www.w3.org/1998/Math/MathML". Motor de scripts de diagn�sticos3Pista de texto: Marca de tiempo no v�lida. hr=<0x>..Pista de texto: Memoria insuficiente. hr=<0x>.*Pista de texto: Error inesperado. hr=<0x>./Pista de texto: Tipo MIME desconocido. hr=<0x>.<Pista de texto WebVTT: Final inesperado de archivo. hr=<0x>.;Pista de texto WebVTT: Firma de archivo no v�lida. hr=<0x>.jPista de texto WebVTT: Se esperan dos o m�s terminadores de l�nea despu�s de la firma de archivo. hr=<0x>.NPista de texto WebVTT: La firma de la marca de tiempo debe ser '-->'. hr=<0x>.hPista de texto WebVTT: Se esperan dos terminadores de l�nea despu�s del identificador de pista. hr=<0x>._Pista de texto WebVTT: Error inesperado al intentar encontrar una pista para analizar. hr=<0x>.7Pista de texto WebVTT: L�nea vac�a inesperada. hr=<0x>.]Pista de texto WebVTT: Error de espacio en blanco en la marca de tiempo de la pista. hr=<0x>.gPista de texto WebVTT: Error inesperado al intentar encontrar un texto de pista para analizar. hr=<0x>.<Pista de texto TTML: Valor ttp:tickRate inesperado. hr=<0x>.=Pista de texto TTML: Valor ttp:frameRate inesperado. hr=<0x>.GPista de texto TTML: Valor ttp:frameRateMultiplier inesperado. hr=<0x>.zPista de texto TTML: Se detect� un elemento inesperado (incluye un elemento con un espacio de nombres no v�lido). hr=<0x>.FPista de texto TTML: Se detect� un elemento sin coincidencia. hr=<0x>.8Pista de texto TTML: Error al procesar estilos. hr=<0x>.SPista de texto TTML: Se detect� un XML no v�lido. C�digo de error de XmlLite: <0x>.#AUDIO/V�DEO: Tipo MIME desconocido.PA<0s>INVALID_ENUM: <0s>INVALID_VALUE: <0s>INVALID_OPERATION: <0s>OUT_OF_MEMORY: <0s>CONTEXT_LOST_WEBGL: <0s>#INVALID_FRAMEBUFFER_OPERATION: <0s>DSe encontraron demasiados errores; no se registrar� ning�n error m�s<0s>: modo de dibujo no v�lido.6<0s>: el adjunto de sombreador ya tiene un sombreador.M<0s>: el tipo de uniforme no coincide con el tipo declarado en el sombreador.B<0s>: el tama�o de uniforme no coincide con el m�todo de uniforme.!<0s>: funci�n de fusi�n no v�lida"<0s>: ecuaci�n de fusi�n no v�lidaL<0s>: el tama�o de recurso deseado es mayor que el tama�o de textura m�ximo.6<0s>: el tama�o de la ventanilla no puede ser negativo)<0s>: desplazamiento o recuento negativo.k<0s>: la matriz de elementos enlazados es demasiado peque�a para el recuento y el desplazamiento indicados.X<0s>: desplazamiento de bytes no v�lido para UNSIGNED_SHORT (debe ser un m�ltiplo de 2).8<0s>: debe tener enlace de b�fer de matriz de elementos.t<0s>: un uniforme en los sombreadores del v�rtice y del fragmento tiene el mismo nombre pero son de tipos distintos./<0s>: enumeraci�n de destino de b�fer no v�lida.<0s>: el b�fer ya est� enlazado a otro destino+<0s>: enumeraci�n de uso de b�fer no v�lida"<0s>: tipo de sombreador no v�lido=<0s>: no se puede compilar el sombreador sin el c�digo fuente <0s>: bits de m�scara no v�lidos=<0s>: no se puede tener un valor negativo de altura o anchura"<0s>: tama�o de b�fer insuficienteO<0s>: solo se admite la combinaci�n exacta de formato RGBA y tipo UNSIGNED_BYTE/<0s>: este contexto no tiene un programa actual><0s>: no se puede tener un valor negativo de inicio o recuento$<0s>: par�metro fuera de los l�mites#<0s>: el programa no est� vinculado4<0s>: la variable no forma parte del programa actual@<0s>: el valor de cerca no puede ser mayor que el valor de lejosH<0s>: no puede ser inferior a 0 ni superior al n�mero m�ximo de texturas2<0s>: destino de textura no v�lido o no compatible!<0s>: se debe enlazar una texturaPA<0s>: formato no v�lido<0s>: tipo no v�lido6<0s>: el formato debe coincidir con el formato interno-<0s>: combinaci�n de formato y tipo no v�lida%<0s>: nivel de detalle fuera de rango<0s>: formato interno no v�lido<0s>: el borde debe ser 0}<0s>: la altura y la anchura de la textura no pueden tener un valor negativo ni pueden exceder el tama�o m�ximo de la textura%<0s>: se requiere un b�fer habilitado+<0s>: solo se admite el tipo UNSIGNED_SHORT*<0s>: no puede haber un intervalo negativo=<0s>: el tama�o del atributo del v�rtice debe ser 1, 2, 3 o 4"<0s>: un b�fer debe estar enlazado/<0s>: tipo de precisi�n no v�lido o no admitido(<0s>: el sombreador debe estar compiladoG<0s>: no puede ser inferior a 0 o superior al n�mero m�ximo de texturasPA=<0s>: el inicio o el recuento va m�s all� del final del b�ferH<0s>: los par�metros suministrados se desbordan en el b�fer suministrado%<0s>: se espera un objeto WebGLShader&<0s>: se espera un objeto WebGLProgramL<0s>: el tipo de matriz con tipo y el tipo de datos de p�xel deben coincidirL<0s>: se espera una matriz con tipo para el almacenamiento de datos de p�xel<<0s>: solo se admite el formato RGBA y el tipo UNSIGNED_BYTE5<0s>: los datos para esta imagen no est�n disponibles)<0s>: no se admite esta fuente de textura%<0s>: filtro de textura no reconocido-<0s>: modo de ajuste de textura no reconocido<0s>: modo Cull no reconocido'<0s>: se requiere sombreador de v�rtice)<0s>: se requiere sombreador de fragmento;<0s>: el tama�o del b�fer no se alinea con el tipo de datosB<0s>: el objeto WebGL est� asociado con otro WebGLRenderingContextG<0s>: nombre de par�metro no v�lido para datos adjuntos de renderbuffer'<0s>: destino de renderbuffer no v�lido&<0s>: destino de framebuffer no v�lido(<0s>: un framebuffer debe estar enlazado)<0s>: un renderbuffer debe estar enlazado><0s>: el nivel del mapa MIP debe ser 0 al adjuntar una textura~<0s>: la anchura y altura de renderbuffer no pueden tener valores negativos y no pueden exceder el tama�o m�ximo de la texturaS<0s>: el tipo de datos adjuntos debe ser compatible con el objeto de datos adjuntos%<0s>: no hay datos adjuntos presentes.<0s>: configuraci�n de framebuffer no admitida9<0s>: los datos adjuntos no tienen las mismas dimensiones&<0s>: tipo de datos adjuntos no v�lidoE<0s>: la anchura y la altura de renderbuffer deben ser superiores a 04<0s>: valor internalformat de renderbuffer no v�lido2<0s>: la enumeraci�n <1s> no se admite actualmente(<0s>: el m�todo no se admite actualmentePAF<0s>: no se ha especificado un valor de src para el elemento de imagenD<0s>: la fuente de la textura infringe las restricciones del dominioV<0s>: la textura es una textura que no es potencia de dos o no es un mapa MIP completo-<0s>: el mapa de cubo actual no est� completoL<0s>: las dimensiones especificadas est�n fuera de los l�mites de la textura�<0s>: Todas las variables cambiantes usadas estad�sticamente en el sombreador de fragmento necesitan una variable correspondiente del mismo tipo en el sombreador de v�rtice!<0s>: Error de vinculador interno7<0s>: El objeto no se puede usar porque se ha eliminado:<0s>: No se permiten los atributos que comienzan por 'gl_'�<0s>: Las variables de diferentes tipos de muestra dentro de un objeto de programa no pueden apuntar a la misma unidad de imagen de texturaW<0s>: El n�mero de muestras definido en el programa supera el l�mite para este hardwareL<0s>: La complejidad de al menos un sombreador supera los l�mites permitidosf<0s>: La asignaci�n del atributo del v�rtice no tiene espacio suficiente para el atributo de la matriz9<0s>: TEXTURE_MAX_ANISOTROPY debe ser igual o mayor que 1:<0s>: La alineaci�n de desempaquetado debe ser 1, 2, 4 o 8}<0s>: El formato y el destino de la textura pasada deben coincidir con los que se usaron inicialmente para definir la texturaL<0s>: Todas las caras del mapa de cubo deben tener la misma altura y anchura�<0s>: La textura no tiene mapas de cubo completos. Todas las caras de los mapas de cubo deben estar definidas y tener el mismo tama�o.R<0s>: El sombreador que se va a separar debe estar actualmente adjunto al programas<0s>: Las dimensiones de la textura comprimida deben coincidir exactamente con las dimensiones de los datos pasadosQ<0s>: Los par�metros de anchura, altura y desplazamiento deben ser m�ltiplos de 4D<0s>: Las texturas comprimidas no admiten la generaci�n de mapas MIPR<0s>: Las texturas comprimidas no pueden establecerse como destinos de framebufferPA_<0s>: bufferData debe tener un tama�o o una matriz. Los valores Null y undefined no son v�lidosB<0s>: bufferSubData espera una matriz. Null no es un valor v�lido.0<0s>: Deben pasarse datos en una matriz con tipoS<0s>: El desplazamiento y el intervalo deben ser m�ltiplos del tipo de datos pasado[<0s>: Las texturas de punto flotante requieren los filtros NEAREST o NEAREST_MIPMAP_NEARESTe<0s>: el formato interno debe contener un subconjunto del formato de framebuffer actualmente enlazado�<0s>: los valores de referencia de la galer�a de s�mbolos y los valores de m�scara deben ser iguales en los tri�ngulos delanteros y traseros?<0s>: el atributo de contexto <1s> no es compatible actualmenteW<0s>: se super� el recuento variable m�ximo de vectores en el momento de la vinculaci�nP<0s>: como m�nimo, uno de los atributos habilitados debe tener un divisor o cero/<0s>: Primcount debe ser mayor o igual que cero�<0s>: si se especifican valores de formato y de tipo de textura, estos deben coincidir con los valores originales de definici�n de texturaG<0s>: la longitud de la ubicaci�n no debe ser superior a 256 caracteresU<0s>: los atributos de v�rtice y fragmentos uniformes no pueden tener el mismo nombreQ<0s>: no se permiten los atributos que comienzan con "gl_", "webgl_", o "_webgl_"i<0s>: el hardware actual no admite un n�mero superior a 65536 tri�ngulos en drawArrays. Llamada ignorada.�<0s>: CONSTANT_COLOR (o ONE_MINUS_CONSTANT_COLOR) y CONSTANT_ALPHA (o ONE_MINUS_CONSTANT_ALPHA) no se pueden usar de forma conjunta como factores de origen y de destino en la funci�n de combinaci�n.T<0s>: SRC_ALPHA_SATURATE no se permite como funci�n de combinaci�n en este hardware.?<0s>: solo se admiten los tipos UNSIGNED_SHORT y UNSIGNED_BYTE.M<0s>: solo se admiten los tipos UNSIGNED_SHORT, UNSIGNED_BYTE y UNSIGNED_INT.;<0s>: el hardware actual no admite SAMPLE_ALPHA_TO_COVERAGEI<0s>: el factor de combinaci�n de destino no puede ser SRC_ALPHA_SATURATEPAaSe ha detectado un restablecimiento de GPU. Cambiando temporalmente a procesamiento por software.|El contenido de WebGL est� tardando demasiado en procesarse en su GPU. Cambiando temporalmente a procesamiento por software.UCambiando temporalmente a procesamiento por software para mostrar contenido de WebGL.$Regresar a %s (Alt+Flecha izquierda)Ir a %s (Alt+Flecha derecha)Atr�sAdelante
P�gina actualEl objeto no acepta esta acci�nArgumento no opcional7Asignaci�n para el campo o la propiedad de solo lecturaObjeto de llamada no v�lidoAgregar a diccionarioOmitirDetener la correcci�n de "%1"Eliminar palabra repetidaIdiomaM�sAdministrar configuraci�n...Administrar idioma...PA-Debe escribir texto con %d o menos caracteresEscriba un valor mayor que Escriba un valor menor que $Debe escribir un valor entre %1 y %2 Debe especificar un valor v�lidoDebe escribir una URL v�lida8Debe escribir una direcci�n de correo electr�nico v�lida�ste es un campo necesario)Debe activar esta casilla de verificaci�nDebe elegir una opci�nDebe elegir un archivo#Debe elegir un elemento de la listaDebe usar este formato: +Debe especificar una URL con este formato: GDebe especificar una direcci�n de correo electr�nico con este formato: PA!La tecla Bloq May�s est� activadaPA�     <div style='color: #2a2a2a'>    <div style='position: fixed;                 top: 10.2px;                 left: 0px;                 border: solid 1px #2a2a2a;                 padding: 15px 20px 15px 15px;                 margin: 0px;                 font-size: 11pt;                 line-height: 15pt;                 color: #1a1a1a;                 min-width: 150px;                 max-width: 320px;'                 unselectable='on'                 id='contentContainer'>     </div>     <svg style='position: fixed; top: 0.5px; left: 15px' unselectable='on'>         <line x1='19.3' y1='10' x2='0.7' y2='10' stroke='window' stroke-width='2px' stroke-linecap='round'/>         <line x1='0' y1='10' x2='10' y2='0' stroke='currentColor' stroke-width='1px' stroke-linecap='round'/>         <line x1='10' y1='0' x2='20' y2='10' stroke='currentColor' stroke-width='1px' stroke-linecap='round'/>     </svg>    </div>�     <div style='color: #2a2a2a'>    <div style='position: fixed;                 top: 0.2px;                 left: 0px;                 border: solid 1px #2a2a2a;                 padding: 10px 10px 10px 10px;                 margin: 0px;                 font-size: 11pt;                 line-height: 15pt;                 color: #1a1a1a;                 min-width: 150px;                 max-width: 320px;'                 unselectable='on'                 id='contentContainer'>     </div>     </div>PAVentanas"Windows necesita una actualizaci�n`Obtenga la actualizaci�n necesaria en l�nea, inst�lela en el equipo y luego use esta aplicaci�n.Obtener actualizaci�nCancelarNo se puede agregar el contenido din�mico '<0s>'. Un script intent� inyectar contenido din�mico, o elementos anteriormente modificados din�micamente, que probablemente no sea seguro. Por ejemplo, el uso de la propiedad innerHTML para agregar un script o HTML con un formato incorrecto generar� esta excepci�n. Recurra al m�todo toStaticHTML para filtrar el contenido din�mico o cree elementos y atributos expresamente con un m�todo como createElement. Para obtener m�s informaci�n, consulte http://go.microsoft.com/fwlink/?LinkID=247104.P�gina siguientePrecargando %1DRepresentaci�n previa solicitada por <0s> iniciada para la URL: <1s>SRepresentaci�n previa solicitada por <0s> rechazada debido a <1s> para la URL: <2s>una etiqueta de v�nculo	FlipAheadun motivo desconocido#representaci�n previa deshabilitadaCse alcanz� el n�mero m�ximo de solicitudes de representaci�n previa'un esquema de direcciones URL no v�lido6ser el mismo URI que ya se ha representado previamente)el destino ya se represent� anteriormente1restricciones de lista de vista de compatibilidadLLa representaci�n previa de destino finaliz� debido a <0s> para la URL: <1s>un destino de sustituci�ncarga previa de apagadoQno se us� el destino de representaci�n previa porque se agot� el tiempo de esperaCopiarCortarDeshacerPegarSeleccionar todoNotificar como seguroContinuar de todos modosCerrarHospedado por %1

;Se notific� que el contenido de este sitio web no es seguroPA�%1

%2

Microsoft ha recibido una notificaci�n acerca del contenido de este sitio web que podr�a contener amenazas para su PC que podr�an poner en riesgo su informaci�n personal o financiera.Fhttp://go.microsoft.com/fwlink/?LinkID=109695&result=block&t=%1&URL=%2PAcommentsocialsharebar	sharetool
share-toolcontrolscontrolmboxdefaultbuttonsbuttonsharehiddenhideleft-ear	right-earadPAad_widget	nocontent
nocontentspromo_holderpromo-componentplaygoogleadsky_addapifbylinetitle	liveblog_sidebarfeedmaplogo
stb-processedPAfiled undervotes:related stories
related posts	copyright&copy;
subscribe nowrelated articlesmore on:-| �U�U��%�'�	C	-	A	e	P	O�qFt��t�	Z++	Y	X.	C	-	V-.	.\	A	e
	P	O�qF
C�
V�
 k
F�
P�r�	B4	U?	I8
B4
U?
I8
Z�	 �
j�	E�	L�!�	Q�
N�	L�	SF	FC�KL	X.	C	-	V-.
 kr�	Z++	Y�A	X.	C	-	V-.
 kr�	Z++	Y�A�e��e��FC	SF�FC
C��FC
C�
V�
 k
F�
P�r�	B4	U?	I8
B4
U?
I8
Z�	 �
j�	E�	L�!�	Q�
N�	L�	SF	FC�KL
C��FC
C�
V�
 k
F�
P�r�	B4	U?	I8
B4
U?
I8
Z�	 �
j�	E�	L�!�	Q�
N�	L�	SF	FC	HI	G��KL �	M�	&�	(�	$�		%�	#�		'�	%�	'�	%�	'�	k�	��	��	m�	��	T�	K�	J�	A�	A�	Z�	
�	��	 �	M�	&�	(�	$�		%�	#�		'�	%�	'�	%�	'�	k�	��	��	m�	��	T�	K�	J�	A�	A�	Z�	
�	��	11�00�11�PPRR(RRT��l������ҩ����0Tiempo de respuesta

Iniciar

Detener

 Informaci�n

 Informaci�n

Error

Warning

Verbose

8Microsoft-IEResp-MSHTML

8Microsoft-IE-JSDumpHeap

$Microsoft-IE

(capturing phase

at target

(bubbling phase

 setTimeout

 setInterval

$setImmediate

4requestAnimationFrame

,telephone number

None

,HostConfiguration

$LoadFromInfo

$MissingAnchor

8ScrollingToFoundAnchor

0ScrollingToPosition

4BookmarkTaskComplete

$SwitchMarkup

4ContinuationHostRules

@ContinuationIncompletePaint

0LoadStatusParseDone

4SwitchMarkupEmptyTab

@LoadStatusParseDoneEmptyTab

Unknown

$CanvasElement

$CanvasPattern

(CanvasGradient

Markup

Blob

ActiveX

$ImageElement

,MSWebViewElement

,WebGLSmallObjects

,WebGLLargeObjects

$MediaElement

None

 Concurrent

 Synchronous

None

Forced

 TotalWeight

 TotalCount

NewWeight

NewCount

Normal

 Concurrent

Building

Enabled

Disabled

Running

Inertia

Ready

Suspended

Invalid

Enabled

Ready

Running

Inertia

Suspended

Disabled

Stopped

8IHTWaitForSecondContact

8PostWMAppIHTPointerDown

$IHTSetContact

HCrossSlideDragHasPendingPreview

THoldDragIgnoreDManipDragDropDragging

`DraggableTouchTargetClearDmanipFromDragging

hDraggableTouchTargetAddDragPreviewToRootVisual

DDraggableTouchTargetPassivate

dDraggableTouchTargetReleaseDragPreviewPending

dDraggableTouchTargetReleaseDragPreviewActive

lDraggableTouchTargetTransferDragPreviewOwnership

TDraggableTouchTargetHandlerOnDropped

Begin

$Manipulation

 GestureTap

 GestureHold

,GestureCrossSlide

,GesturePinchZoom

End

Ready

Preselect

Selecting

Dragging

Cancelled

Committed

Initial

 ShouldPulse

TooBig

4ThinVerticalRectangle

8ThinHorizontalRectangle

TooSmall

 ThinColumn

Row

,VerticalRectangle

Column

0HorizontalRectangle

Ideal

Unzooming

Rest

$Manipulation

Inertia

Preselect

Selecting

Dragging

Cancelled

Committed

Stopped

(Unknown Reason

4Prerendering Disabled

TReached Maximum Number Of Prerenders

0Invalid URL Scheme

MetaTag

0Navigation Failure

$Duplicate URI

@Failed To Create Hidden Tab

HPage Was Previously Prerendered

DUninitialized Preload Manager

@Prerendering CV Restricted

DDefer Active-X Object Loading

@Defer Audio/Video Playback

@Defer History Object Action

8Defer Background Sound

,Defer For Suspend

4Defer Open New Window

0Defer Window Focus

4Defer Session Storage

No Target

WebMaster

 Rules Based

Document

Element

Free

Offer

IndexedDB

$CacheStorage

TINDEXED_DB_DATABASE_HANDLE_SERIALIZE

lINDEXED_DB_DATABASE_OPENBLOCKED_HANDLE_SERIALIZE

XINDEXED_DB_OBJECTSTORE_HANDLE_SERIALIZE

LINDEXED_DB_INDEX_HANDLE_SERIALIZE

PINDEXED_DB_CURSOR_HANDLE_SERIALIZE

XINDEXED_DB_TRANSACTION_HANDLE_SERIALIZE

HCACHE_STORAGE_HANDLE_SERIALIZE

8CACHE_HANDLE_SERIALIZE

@CACHE_PUT_HANDLE_SERIALIZE

0CreateCacheStorage

0DeleteCacheStorage

8DeleteAllCacheStorages

,CacheStorage_open

,CacheStorage_has

0CacheStorage_delete

0CacheStorage_match

,CacheStorage_keys

0CacheStorage_close

Cache_put

0Cache_put_complete

 Cache_match

(Cache_matchAll

$Cache_delete

 Cache_keys

 Cache_close

Readback

8CommandDoesNotSupportIR

4CommandListRequested

$WebGLContext

$ContentScript

4ContentScriptPolyfill

4InjectedContentScript

@ContentScriptFramePolyfill

$EventHandler

 HostBridge

,default canceled

Dimmediate propagation stopped

0propagation stopped

0Child List Changed

,Attribute Changed

8Character Data Changed

0CrossSlideVertical

4CrossSlideHorizontal

PinchZoom

Vertical

 Horizontal

 SelectOnly

 SelectDrag

HoldDrag

�4VS_VERSION_INFO��aJaJ?StringFileInfo�0C0A04B0LCompanyNameMicrosoft Corporation`FileDescriptionVisor HTML de Microsoft (R)p(FileVersion11.00.19041.4123 (WinBuild.160101.0800).InternalNameMSHTML�8LegalCopyright� Microsoft Corporation. Todos los derechos reservados.FOriginalFilenameMSHTML.DLL.MUIDProductNameInternet ExplorerFProductVersion11.00.19041.4123(OleSelfRegisterDVarFileInfo$Translation
�<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 40 50" xml:space="preserve">
<g id="arrow-up">
	<rect x="3" fill="#406274" width="1" height="1"/>
	<rect x="2" y="1" fill="#3C5E72" width="1" height="1"/>
	<rect x="3" y="1" fill="#569BC0" width="1" height="1"/>
	<rect x="4" y="1" fill="#5F88A1" width="1" height="1"/>
	<rect x="1" y="2" fill="#3C596C" width="1" height="1"/>
	<rect x="2" y="2" fill="#6195B6" width="1" height="1"/>
	<rect x="3" y="2" fill="#86C8EB" width="1" height="1"/>
	<rect x="4" y="2" fill="#91CBEC" width="1" height="1"/>
	<rect x="5" y="2" fill="#9AB6C5" width="1" height="1"/>
	<rect y="3" fill="#435F6F" width="1" height="1"/>
	<rect x="1" y="3" fill="#87B1C5" width="1" height="1"/>
	<rect x="2" y="3" fill="#BAE2F4" width="1" height="1"/>
	<rect x="3" y="3" fill="#B5DDF2" width="1" height="1"/>
	<rect x="4" y="3" fill="#C4E3F4" width="1" height="1"/>
	<rect x="5" y="3" fill="#CAE6F5" width="1" height="1"/>
	<rect x="6" y="3" fill="#C3E4F5" width="1" height="1"/>
</g>
<g id="arrow-down">
	<rect x="13" y="3" fill="#406274" width="1" height="1"/>
	<rect x="12" y="2" fill="#3C5E72" width="1" height="1"/>
	<rect x="13" y="2" fill="#569BC0" width="1" height="1"/>
	<rect x="14" y="2" fill="#5F88A1" width="1" height="1"/>
	<rect x="11" y="1" fill="#3C596C" width="1" height="1"/>
	<rect x="12" y="1" fill="#6195B6" width="1" height="1"/>
	<rect x="13" y="1" fill="#86C8EB" width="1" height="1"/>
	<rect x="14" y="1" fill="#91CBEC" width="1" height="1"/>
	<rect x="15" y="1" fill="#9AB6C5" width="1" height="1"/>
	<rect x="10" fill="#435F6F" width="1" height="1"/>
	<rect x="11" fill="#87B1C5" width="1" height="1"/>
	<rect x="12" fill="#BAE2F4" width="1" height="1"/>
	<rect x="13" fill="#B5DDF2" width="1" height="1"/>
	<rect x="14" fill="#C4E3F4" width="1" height="1"/>
	<rect x="15" fill="#CAE6F5" width="1" height="1"/>
	<rect x="16" fill="#C3E4F5" width="1" height="1"/>
</g>
<g id="plus">
	<rect x="1" y="11" fill="#FCFCFC" width="7" height="4"/>
	<rect x="1" y="15" fill="#EBEBEA" width="7" height="1"/>
	<rect x="1" y="16" fill="#E0E0E0" width="7" height="2"/>
	<path fill="none" stroke="#000000" stroke-opacity="0.5" stroke-miterlimit="10" d="M8.5,17.5c0,0.5-0.4,1-1,1h-6c-0.6,0-1-0.5-1-1v-6c0-0.6,0.4-1,1-1h6
		c0.6,0,1,0.4,1,1V17.5z"/>
	<line fill="none" stroke="#213867" stroke-miterlimit="10" x1="4.5" y1="17" x2="4.5" y2="12"/>
	<line fill="none" stroke="#40589E" stroke-miterlimit="10" x1="2" y1="14.5" x2="7" y2="14.5"/>
</g>
<g id="minus">
	<rect x="11" y="11" fill="#FCFCFC" width="7" height="4"/>
	<rect x="11" y="15" fill="#EBEBEA" width="7" height="1"/>
	<rect x="11" y="16" fill="#E0E0E0" width="7" height="2"/>
	<path fill="none" stroke="#000000" stroke-opacity="0.5" stroke-miterlimit="10" d="M18.5,17.5c0,0.5-0.5,1-1,1h-6c-0.6,0-1-0.5-1-1v-6c0-0.6,0.4-1,1-1
		h6c0.5,0,1,0.4,1,1V17.5z"/>
	<line fill="none" stroke="#40589E" stroke-miterlimit="10" x1="12" y1="14.5" x2="17" y2="14.5"/>
</g>
<g id="search-hover">
	<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="26.3535" y1="32.707" x2="26.3535" y2="20">
		<stop offset="0" style="stop-color:#1784CE"/>
		<stop offset="0.3023" style="stop-color:#1A87D0"/>
		<stop offset="0.5451" style="stop-color:#2490D4"/>
		<stop offset="0.7671" style="stop-color:#359FDC"/>
		<stop offset="0.9756" style="stop-color:#4DB5E7"/>
		<stop offset="1" style="stop-color:#50B8E9"/>
	</linearGradient>
	<path fill="url(#SVGID_1_)" d="M27.7,20c-2.8,0-5,2.2-5,5c0,1,0.3,2,0.8,2.8L20,31.3l1.4,1.4l3.5-3.5c0.8,0.5,1.7,0.8,2.8,0.8
		c2.8,0,5-2.2,5-5S30.5,20,27.7,20z M27.7,28c-1.7,0-3-1.3-3-3s1.3-3,3-3s3,1.3,3,3S29.4,28,27.7,28z"/>
</g>
<g id="search">
	<path fill="#8A8A8A" d="M7.7,20c-2.8,0-5,2.2-5,5c0,1,0.3,2,0.8,2.8L0,31.3l1.4,1.4L5,29.2C5.7,29.7,6.7,30,7.7,30c2.8,0,5-2.2,5-5
		S10.5,20,7.7,20z M7.7,28c-1.7,0-3-1.3-3-3s1.3-3,3-3s3,1.3,3,3S9.4,28,7.7,28z"/>
</g>
<g id="x">
	<polygon fill="#8A8A8A" points="8.7,41.7 7.3,40.3 4.5,43.1 1.7,40.3 0.3,41.7 3.1,44.5 0.3,47.3 1.7,48.7 4.5,45.9 7.3,48.7 
		8.7,47.3 5.9,44.5 "/>
</g>
<g id="x-hover">
	<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="24.207" y1="48.707" x2="24.207" y2="40.293">
		<stop offset="0" style="stop-color:#EF2122"/>
		<stop offset="0.2728" style="stop-color:#F02425"/>
		<stop offset="0.4919" style="stop-color:#F12E2F"/>
		<stop offset="0.6923" style="stop-color:#F43F40"/>
		<stop offset="0.8805" style="stop-color:#F95757"/>
		<stop offset="1" style="stop-color:#FC6A6A"/>
	</linearGradient>
	<polygon fill="url(#SVGID_2_)" points="28.4,41.7 27,40.3 24.2,43.1 21.4,40.3 20,41.7 22.8,44.5 20,47.3 21.4,48.7 24.2,45.9 
		27,48.7 28.4,47.3 25.6,44.5 "/>
</g>
</svg>
PAD<HTML>
<HEAD>
<BODY bgcolor="#000080" text="#FFFFFF">
</BODY>
</HTML>PADp {
    margin: 20px 0px;
}
.sprite {
    display: inline-block;
    margin-right: 6px;
    cursor: pointer;
    width: 10px;
    height: 10px;
}
.plus {
    background: url('about-compat-icons.svg') no-repeat;
    background-position: 0px -15px;
    background-size: 40px 60px;
}
.minus {
    background: url('about-compat-icons.svg') no-repeat;
    background-position: -10px -15px;
    background-size: 40px 60px;
}
.up {
    background: url('about-compat-icons.svg') no-repeat;
    background-position: 0px 0px;
    background-size: 40px 60px;
    position: absolute;
    left: 50%;
    margin-left: -5px;
    top: 2px;
}
th {
    position: relative;
}
.down {
    background: url('about-compat-icons.svg') no-repeat;
    background-size: 40px 60px;
    background-position: -10px 0px;
    position: absolute;
    left: 50%;
    margin-left: -5px;
    top: 2px;
}
.collapsible-row {
    background: linear-gradient(#fff, #e8f1fb);
}
.applied-row td:nth-child(2):after {
    content: " (applied)";
}
.last-sub-row {
    border-bottom: 1px solid #e8f1fb;
}
.sub-row {
    background: white !important;
    opacity: 0.6;
}
.table {
    border: 1px solid #e8f1fb;
}
#wrap {
    height: 1000px;
    overflow-x:scroll;
}
#aboutcompat-description, #filters {
    max-width: 30rem;
}
.sub-list {
    font-size: 0.6875rem;
    color: rgba(0,0,0,0.6);
    line-height: 1;
    display:  block;
    margin-top: 4px;
}
.sortable-column {
    cursor: pointer;
    background: linear-gradient(to bottom,  #f2f9fc 0%,#f2f9fc 40%,#e1f1fa 41%,#d8ecf6 100%) !important;
    border: 1px solid #96d9f9 !important;
}
.list-name {
    font-weight: 600;
}
@media (min-width: 700px) {
    .table-section {
        float: left;
        width: calc(100% - 18rem);
    }
    #filters {
        float: right;
        width: 15rem;
    }
}
.invisible {
    display: none;
}PADvar table;

function updateCountOfResults() {
    'use strict';
    document.getElementById("SitesCount").innerHTML = "Included sites (" + table.countOfResults() + " number of results)";
}

function createTable(arrayObj) {
    'use strict';

    var columns = [
        new Column('Domain', 'Domain', '16em', true, true),
        new Column('List Type', 'SiteLists', '6.875em', true),
        new Column('Document Mode', 'DocMode', '6.875em', true),
        new Column('User Agent String', 'UaString', '18.75em', true),
        new Column('Additional Attributes', 'AdditionalAttributes', '12em', true),
        new Column('Enterprise Mode', 'IsEMIE', '6em', document.getElementById('checkbox-emie').checked),
        new Column('Open in Microsoft Edge', 'Transition', '6em', document.getElementById('checkbox-openedge').checked),
        new Column('Minimum layout width', 'Min', '6em', document.getElementById('checkbox-min').checked),
        new Column('Exclude from back forward cache', 'Exclude', '6em', document.getElementById('checkbox-exclude').checked),
        new Column('Override X-UA-Compatible Meta tag', 'OverrideXUA', '6em', document.getElementById('checkbox-overridexua').checked),
        new Column('Create Element with Markup', 'CreateElementMarkup', '6em', document.getElementById('checkbox-cem').checked),
        new Column('No HTTP2', 'NoHTTP2', '6em', document.getElementById('checkbox-nohttp2').checked),
        new Column('Enable UTF8 Query String', 'UTF8QS', '6em', document.getElementById('checkbox-utf8qs').checked),
        new Column('No Pre-render', 'NoPrerender', '6em', document.getElementById('checkbox-noprerender').checked),
        new Column('Allow SSL3 Fallback', 'SSL3Fallback', '6em', document.getElementById('checkbox-ssl3fallback').checked),
        new Column('No HSTS', 'NoHSTS', '6em', document.getElementById('checkbox-nohsts').checked),
        new Column('Disable Pointer Events', 'NoPointer', '6em', document.getElementById('checkbox-nopointer').checked),
    ];
    table = new GridTable('mainTable', arrayObj, 35, columns, "wrap");
    updateCountOfResults();
}

function getDomainFromArray(arrayObj, url) {
    'use strict';
    var i;
    for (i = 0; i < arrayObj.length; i++) {
        if (arrayObj[i].Domain === url) {
            return arrayObj[i];
        }
    }
    return null;
}

function loadJSON(arrayObj, apiResponse, listName) {
    'use strict';
    var i, jsonItem, DomainEntry, jsonObj;

    if (apiResponse && apiResponse.length > 0) {
        jsonObj = JSON.parse(apiResponse);
        for (i = 0; jsonObj.data && i < jsonObj.data.length; i++) {
            jsonItem = jsonObj.data[i];
            if (jsonItem.site) {
                DomainEntry = getDomainFromArray(arrayObj, jsonItem.site);
                if (DomainEntry !== null) {
                    DomainEntry.add(jsonItem, listName);
                } else {
                    arrayObj.push(new DomainRowEntry(jsonItem, listName, true));
                }
            }
        }
    }
}

function changeVisibilityOfElementWithId (id, condition) {
   'use strict';
   if(condition) {
       document.getElementById(id).className = "invisible";
   }
   else {
       document.getElementById(id).className = "";
   }
}

function updateAttributeVisibility() {
    'use strict';
    changeVisibilityOfElementWithId("li-exclude",           !GlobalAttributeTracker.IsExcludePresent);
    changeVisibilityOfElementWithId("li-overridexua",       !GlobalAttributeTracker.IsOverrideXUAPresent);
    changeVisibilityOfElementWithId("li-cem",               !GlobalAttributeTracker.IsCreateElementMarkupPresent);
    changeVisibilityOfElementWithId("li-emie",              !GlobalAttributeTracker.IsEMIEPresent);
    changeVisibilityOfElementWithId("li-openedge",          !GlobalAttributeTracker.IsTransitionPresent);
    changeVisibilityOfElementWithId("li-min",               !GlobalAttributeTracker.IsMinPresent);
    changeVisibilityOfElementWithId("li-nohttp2",           !GlobalAttributeTracker.IsNoHTTP2Present);
    changeVisibilityOfElementWithId("li-utf8qs",            !GlobalAttributeTracker.IsUTF8QSPresent);
    changeVisibilityOfElementWithId("li-noprerender",       !GlobalAttributeTracker.IsNoPrerenderPresent);
    changeVisibilityOfElementWithId("li-ssl3fallback",      !GlobalAttributeTracker.IsSSL3FallbackPresent);
    changeVisibilityOfElementWithId("li-nohsts",            !GlobalAttributeTracker.IsNoHSTSPresent);
    changeVisibilityOfElementWithId("li-nopointer",         !GlobalAttributeTracker.IsNoPointerPresent);
}

function createData() {
    'use strict';
    var localEmieData, emieData, localCVData, cvData;
    document.getElementById('search-box').value = "";

    // reset value of global object tracking which attributes are used
    GlobalAttributeTracker = new G_AttributeTracker();

    var arrayObj = [];
    if (document.getElementById("checkbox-emielist-local").checked) {
        try {
            localEmieData = window.external.GetEMIEListLocalData();
            loadJSON(arrayObj, localEmieData, "Enterprise Mode Site List (local)");
        } catch (ex) {
            // do nothing
        }
    }

    if (document.getElementById("checkbox-emielist").checked) {
        try {
            emieData = window.external.GetEMIEListData();
            loadJSON(arrayObj, emieData, "Enterprise Mode");
        } catch(ex){
            // do nothing
        }
    }

    if (document.getElementById("checkbox-cvlist-local").checked) {
        try {
            localCVData = window.external.GetCVListLocalData();
            loadJSON(arrayObj, localCVData, "Compatibility List (local)");
        } catch (ex) {
            // do nothing
        }
    }

    if (document.getElementById("checkbox-cvlist").checked) {
        try {
            cvData = window.external.GetCVListData();
            loadJSON(arrayObj, cvData, "Compatibility List");
        } catch (ex) {
            // do nothing
        }
    }
    createTable(arrayObj);

    // make unused list of attributes invsible
    updateAttributeVisibility();
}

function changeColumnVisibility(id, column) {
    'use strict';
    var isChecked = document.getElementById(id).checked;
    table.columnVisibility(column, isChecked);
}

function startSearch() {
    'use strict';
    var searchValue = document.getElementById('search-box').value;
    table.search(searchValue);
    updateCountOfResults();
}

function onClear() {
    'use strict';
    document.getElementById('search-box').value = "";
    startSearch();
}

window.addEventListener('load', createData);PADfunction G_AttributeTracker() {
    'use strict';
    this.IsExcludePresent = false;
    this.IsOverrideXUAPresent = false;
    this.IsCreateElementMarkupPresent = false;
    this.IsEMIEPresent = false;
    this.IsTransitionPresent = false;
    this.IsMinPresent = false;
    this.IsNoHTTP2Present = false;
    this.IsUTF8QSPresent = false;
    this.IsNoPrerenderPresent = false;
    this.IsSSL3FallbackPresent = false;
    this.IsNoHSTSPresent = false;
    this.IsNoPointerPresent = false;
}

var GlobalAttributeTracker = new G_AttributeTracker();

function DomainRowEntry(domainEntry, listName, isParent) {
    'use strict';
    this.Domain = domainEntry.site;
    this.SiteLists = listName;
    this.Section = domainEntry.section;
    this.NumberOfAttributes = 0;

    this.merge(domainEntry);

    this.SubRows = [];
    this.IsExpandRow = false;

    if (isParent) {
        this.SubRows.push(new DomainRowEntry(domainEntry, listName, false));
        if (this.NumberOfAttributes > 0) {
            this.IsExpandRow = true;
        }
        this.createStringForAdditionalAttributes(this.NumberOfAttributes);
    }
}

DomainRowEntry.prototype.add = function (domainEntry, listName) {
    'use strict';
    var i, j, totalAttributes = 0, hasMerged = false;

    for (j = 0; j < this.SubRows.length; j++) {
        if (listName === "Compatibility List" && this.SubRows[j].SiteLists === listName && this.SubRows[j].Section.indexOf(domainEntry.section) == -1) {
            // if domainEntry belongs to a different section of the same list then merge this with domainEntry
            this.merge(domainEntry);
            this.Section += domainEntry.section;
            // also merge the sub row
            this.SubRows[j].merge(domainEntry);
            hasMerged = true;
            break;
        } else if (listName === "Enterprise Mode" && this.SubRows[j].SiteLists === listName) {
            // if domainEntry belongs to a different section of the same list then merge this with domainEntry
            this.merge(domainEntry);
            this.SubRows[j].merge(domainEntry);
            hasMerged = true;
            break;
        }
    }

    if (!hasMerged) {
        // if the domainEntry cannot be merged then add the entry as a sub row.
        // This happens if domainEntry is from a different list or if the list has a duplicate value for the same site.
        this.SiteLists += "<span class='sub-list'>" + listName + "</span>";
        this.SubRows.push(new DomainRowEntry(domainEntry, listName, false));
    }

    // Count total number of additional attributes by adding the additional attributes for each sub row
    for (i = 0; i < this.SubRows.length; i++) {
        totalAttributes += this.SubRows[i].NumberOfAttributes;
    }

    if (this.SubRows.length > 1 || totalAttributes > 0) {
        this.IsExpandRow = true;
    }

    this.createStringForAdditionalAttributes(totalAttributes);
};

DomainRowEntry.prototype.merge = function (domainEntry) {
    'use strict';

    if (domainEntry.docMode) {
        this.DocMode = domainEntry.docMode;
    }

    if (domainEntry.uaString) {
        this.UaString = domainEntry.uaString;
    }

    if (domainEntry.exclude) {
        this.Exclude = domainEntry.exclude;
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsExcludePresent = true;
    }

    if (domainEntry.overrideXUACompatible) {
        this.OverrideXUA = domainEntry.overrideXUACompatible;
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsOverrideXUAPresent = true;
    }

    if (domainEntry.createElementWithMarkup) {
        this.CreateElementMarkup = domainEntry.createElementWithMarkup;
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsCreateElementMarkupPresent = true;
    }

    if (domainEntry.isEMIE) {
        this.IsEMIE = "IE" + this.DocMode + " Enterprise Mode";
        this.DocMode = "";
        GlobalAttributeTracker.IsEMIEPresent = true;
        this.NumberOfAttributes++;
    }

    if (domainEntry.transition == "Edge") {
        this.Transition = "true";
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsTransitionPresent = true;
    }

    if (domainEntry.min) {
        // convert number to string so that the user can do a string search on it.
        this.Min = domainEntry.min.toString();
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsMinPresent = true;
    }

    switch (domainEntry.section) {
    case "nohttp2":
        this.NoHTTP2 = "true";
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsNoHTTP2Present = true;
        break;
    case "enableutf8qs":
        this.UTF8QS = "true";
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsUTF8QSPresent = true;
        break;
    case "noprerender":
        this.NoPrerender = "true";
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsNoPrerenderPresent = true;
        break;
    case "allowssl3fallback":
        this.SSL3Fallback = "true";
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsSSL3FallbackPresent = true;
        break;
    case "nohsts":
        this.NoHSTS = "true";
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsNoHSTSPresent = true;
        break;
    case "disablepointerevents":
        this.NoPointer = "true";
        this.NumberOfAttributes++;
        GlobalAttributeTracker.IsNoPointerPresent = true;
        break;
    }

    // create Additional Attributes string
    this.AdditionalAttributes = "<ul>";

    if (this.Exclude) {
        this.AdditionalAttributes += "<li>Exclude from back forward cache: " + this.Exclude + "</li>";
    }

    if (this.OverrideXUA) {
        this.AdditionalAttributes += "<li>Override X-UA-Compatible Meta tag: " + this.OverrideXUA + "</li>";
    }

    if (this.CreateElementMarkup) {
        this.AdditionalAttributes += "<li>Create Element with Markup: " + this.CreateElementMarkup + "</li>";
    }

    if (this.IsEMIE) {
        this.AdditionalAttributes += "<li>Enterprise Mode: " + this.IsEMIE + "</li>";
    }

    if (this.Transition) {
        this.AdditionalAttributes += "<li>Open in: Microsoft Edge" + "</li>";
    }

    if (this.Min) {
        this.AdditionalAttributes += "<li>Minimum layout width: " + this.Min + "</li>";
    }

    if (this.NoHTTP2) {
        this.AdditionalAttributes += "<li>No HTTP2: true</li>";
    }

    if (this.UTF8QS) {
        this.AdditionalAttributes += "<li>Enable UTF8 Query String: true</li>";
    }

    if (this.NoPrerender) {
        this.AdditionalAttributes += "<li>No Pre-render: true</li>";
    }

    if (this.SSL3Fallback) {
        this.AdditionalAttributes += "<li>Allow SSL3 Fallback: true</li>";
    }

    if (this.NoHSTS) {
        this.AdditionalAttributes += "<li>No HSTS: true</li>";
    }

    if (this.NoPointer) {
        this.AdditionalAttributes += "<li>Disable Pointer Events: true</li>";
    }
    this.AdditionalAttributes += "</ul>";
};

DomainRowEntry.prototype.createStringForAdditionalAttributes = function (numberOfAttributes) {
    'use strict';
    if (numberOfAttributes > 0) {
        this.AdditionalAttributes = "<a>" + numberOfAttributes + " attribute";
        if (numberOfAttributes > 1) {
            this.AdditionalAttributes += "s";
        }
        this.AdditionalAttributes += "</a>";
    } else {
        this.AdditionalAttributes = "";
    }
};
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
</HTML>PA<!DOCTYPE html>
<html>
    <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
        <title>about:compat</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <link rel="stylesheet" type="text/css" href="global.css">
        <link rel="stylesheet" type="text/css" href="aboutcompat.css">
        <script src="table.js"></script>
        <script src="aboutcompatdata.js"></script>
        <script src="aboutcompat.js"></script>
    </head>
    <body>
        <h1>Compatibility Settings</h1>
        <p id="aboutcompat-description">Revisa todos los sitios web incluidos en la lista de compatibilidad, que Microsoft actualiza y mantiene, y en la Lista de sitios de modo de 
        empresa, que se actualiza y se mantiene por tu empresa si est� habilitada. Para obtener m�s informaci�n, consulta nuestras <a href="http://go.microsoft.com/fwlink/?LinkID=624361">herramientas de prueba.</a></p>
        <div id="filters">
            <h3>Filter:</h3>
            <div class="search-container">
              <div class="form-group form-searchbox">
                 <form>
                    <label class="text-base" id="aboutcompat-search">Buscar un sitio web o atributo:</label>
                    <input type="text" id="search-box" name="focus" required="" class="form-control" placeholder="example.com" autocomplete="off" onkeyup="startSearch();">
                    <button class="clear-icon" type="reset" onclick="onClear();"><span class="win-icon win-icon-Clear"></span></button>
                    <span class="search-icon" onclick="startSearch();"></span>
                </form>
              </div>
            </div>

            <div class="form-group">
                <label class="text-base" id="aboutcompat-checkbox">Mostrar sitios web, seg�n el tipo&nbsp;de lista:</label>
                <label class="text-caption-alt" id="aboutcompat-checkbox-description">Para elegir qu� lista de configuraci�n de compatibilidad quieres ver, haz clic en las siguientes casillas.</label>
                <ul>
                    <li>
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-emielist" name="EMIE" checked onclick="createData();">
                                <span class="text-body list-name"><!--_locComment_text="{Locked}"-->Enterprise Mode Site List</span>
                                <div class="text-caption-alt" id="aboutcompat-emie-description">Los sitios de esta lista se representan mediante una configuraci�n de explorador modificada que 
                                emula IE8, IE7 e IE8, los modos de documento de IE11 para ayudarte a evitar problemas de compatibilidad comunes asociados a las aplicaciones web escritas y probadas 
                                en una versi�n anterior de Internet Explorer. Si crees que alg�n sitio debe quitarse de la lista, ponte en contacto con el 
                                administrador del sistema.</div>
                            </label>
                        </div>
                    </li>
                    <li>
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-emielist-local" name="EMIELocal" checked onclick="createData();">
                                <span class="text-body list-name"><!--_locComment_text="{Locked}"-->Enterprise Mode Site List (local)</span>
                                <div class="text-caption-alt" id="aboutcompat-emielocal-description">Has agregado los sitios de esta lista a la lista de sitios de modo de empresa local 
                                y se representan mediante el modo de empresa de IE8. <a href="http://go.microsoft.com/fwlink/?LinkID=624359">Haz clic aqu�</a> para ver c�mo se quita un sitio de la lista.</div>
                            </label>
                        </div>
                    </li>
                    <li>
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-cvlist" name="CVList" checked onclick="createData();">
                                <span class="text-body list-name"><!--_locComment_text="{Locked}"-->Microsoft Compatibility List</span>
                                <div class="text-caption-alt" id="aboutcompat-cv-description">Los sitios de esta lista, con problemas de compatibilidad conocidos, se representar�n autom�ticamente como 
                                si los estuvieses visualizando en una versi�n anterior de Internet Explorer. Para quitar el sitio de la lista, env�a un correo a 
                                <a href="mailto:iepo@microsoft.com">IEPO@microsoft.com</a>.</div>
                            </label>
                        </div>
                    </li>
                    <li>
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-cvlist-local" name="CVListLocal" checked onclick="createData();">
                                <span class="text-body list-name"><!--_locComment_text="{Locked}"-->Compatibility List (local)</span>
                                <div class="text-caption-alt" id="aboutcompat-cvlocal-description">Has agregado los sitios de esta lista a la lista de compatibilidad local 
                                y se representan mediante la emulaci�n de IE7. <a href="http://go.microsoft.com/fwlink/?LinkID=624360">Haz clic aqu�</a> para ver c�mo se quita un sitio de la lista.</div>
                            </label>
                        </div>
                    </li>
                </ul>
            </div>

            <div class="form-group">
                <label class="text-base" id="aboutcompat-attr">Atributos adicionales:</label>
                <label class="text-caption-alt" id="aboutcompat-attr-description">Selecciona los atributos adicionales que quiera agregar como nuevas columnas.</label>
                <ul>
                    <li id="li-emie">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-emie" onclick="changeColumnVisibility('checkbox-emie', 'IsEMIE');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->Enterprise Mode</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-openedge">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-openedge" onclick="changeColumnVisibility('checkbox-openedge', 'Transition');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->Open in Microsoft Edge</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-min">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-min" onclick="changeColumnVisibility('checkbox-min', 'Min');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->Minimum layout width</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-exclude">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-exclude" onclick="changeColumnVisibility('checkbox-exclude', 'Exclude');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->Exclude from back forward cache</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-overridexua">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-overridexua" onclick="changeColumnVisibility('checkbox-overridexua', 'OverrideXUA');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->Override X-UA-Compatible Meta tag</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-cem">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-cem" onclick="changeColumnVisibility('checkbox-cem', 'CreateElementMarkup');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->Create Element with Markup</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-nohttp2">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-nohttp2" onclick="changeColumnVisibility('checkbox-nohttp2', 'NoHTTP2');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->No HTTP2</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-utf8qs">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-utf8qs" onclick="changeColumnVisibility('checkbox-utf8qs', 'UTF8QS');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->Enable UTF8 Query String</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-noprerender">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-noprerender" onclick="changeColumnVisibility('checkbox-noprerender', 'NoPrerender');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->No Pre-render</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-ssl3fallback">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-ssl3fallback" onclick="changeColumnVisibility('checkbox-ssl3fallback', 'SSL3Fallback');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->Allow SSL3 Fallback</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-nohsts">
                        <div class="new-nohsts">
                            <label>
                                <input type="checkbox" id="checkbox-nohsts" onclick="changeColumnVisibility('checkbox-nohsts', 'NoHSTS');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->No HSTS</span>
                            </label>
                        </div>
                    </li>
                    <li id="li-nopointer">
                        <div class="new-checkbox">
                            <label>
                                <input type="checkbox" id="checkbox-nopointer" onclick="changeColumnVisibility('checkbox-nopointer', 'NoPointer');">
                                <span class="text-body"><!--_locComment_text="{Locked}"-->Disable Pointer Events</span>
                            </label>
                        </div>
                    </li>
                </ul>
            </div>
        </div>
        <section class="section table-section">
            <header class="section-header">
                <h3 class="section-title" id="SitesCount">T�tulo de secci�n</h3>
            </header>
            <div class="section-body" id="wrap">
                <table class="table" id="mainTable"></table>
            </div>
        </section>
    </body>
</html>body {
    margin: 0;
}
html {
    font-family: sans-serif;
    -ms-text-size-adjust: 100%;
}
h1 {
    font-size: 1rem;
    margin: .67em 0;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
    display: block;
}
table {
    border-spacing: 0;
    border-collapse: collapse;
}
col {
    word-wrap: break-word;
}
td, th {
    padding: 0;
}
td {
    border-left: 1px solid #e8f1fb;
}
hr {
    box-sizing: content-box;
    height: 0px;
}
button, input, optgroup, select, textarea {
    color: inherit;
    font: inherit;
    margin: 0;
}
*, ::after, ::before {
    box-sizing: border-box;
}
a {
    background-color: transparent;
}
body {
    font-family: "Segoe UI","Segoe UI Web","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
    padding-bottom: 0.23px;
    padding-top: 0.23px;
    color: #000;
    background-color: #FFF;
}
html {
    font-size: 100%;
}
hr {
    border-top: 1px solid #888;
}
body, div, hr, html, span {
    outline: 0;
}
body {
    margin: 24px;
}
label, span, td {
    font-size: 0.81rem;
}
label {
    display: inline-block;
    max-width: 100%;
}
.text-base, .text-body, .text-caption, .text-caption-alt, .text-header, .text-headline, .text-subcaption, .text-subheader, .text-subtitle, .text-title, h1, h2, h3, h4, h5, h6, p {
    margin-top: 0px;
    margin-bottom: 0px;
    outline: 0;
    vertical-align: top;
}
h1, h2, h3, h4, h5, h6 {
    color: #003399;
    font-weight: 400;
}
.text-body, p {
    font-size: 0.81rem;
    line-height: 1.25;
    font-weight: 400;
}
p {
    margin: 24px 0;
}
.pull-right {
    float: right !important;
}
.list-unstyled, ul {
    padding-left: 0px;
    list-style: none;
}
ol, ul {
    margin: 0;
}
.pager, .pagination {
    display: inline-block;
    margin: 20px 0;
    border-radius: 4px;
}
.pager, .pagination {
    padding: 0;
}
ol li, ul li {
    margin-bottom: 20px;
}
/* @media all and (min-width:1400px) */
ol li, ul li {
    margin-bottom: 12px;
}
a {
    color: #0066CC;
    text-decoration: none;
}
a:hover {
    color: #3399FF;
    text-decoration: underline;
}
.section .section-header {
    margin-bottom: 20px;
}
table {
    background-color: transparent;
}
.table {
    width: 100%;
    max-width: 100%;
}
th {
    text-align: left;
    font-weight: 400;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
    padding: 6px;
}
th, td {
    vertical-align: top;
}
.table > thead > tr > th {
    padding: 6px;
    background: linear-gradient(to bottom,  #ffffff 0%,#ffffff 40%,#f7f8fa 41%,#f1f2f4 100%);
    border-top: 1px solid #d5d5d5;
    border-bottom: 1px solid #d5d5d5;
    border-right: 1px solid rgba(0,0,0,0.06);
}
.text-caption, h3 {
    font-size: 0.94rem;
}
th {
    font-size: 0.81rem;
}
.section .section-title {
    display: block;
    margin-top: 0px;
    margin-bottom: 0px;
}
.form-group {
    margin-top: 20px;
    position: relative;
}
.form-group label {
    margin-top: 0px;
    margin-bottom: 8px;
}
.text-base {
    font-size: 0.93rem;
    line-height: 1.25;
    font-weight: 600;
}
.text-caption-alt, h6 {
    font-size: 0.68rem;
    line-height: 1.2727;
    font-weight: 400;
}
.new-checkbox label {
    margin-bottom: 0px;
    cursor: pointer;
}
.new-checkbox .text-caption-alt {
    margin-left: 1.5em;
}
.new-checkbox input {
    margin-top: 2px;
}
button, input, select, textarea {
    font-family: inherit;
    font-size: inherit;
}
button, input, option, progress, select, textarea {
    max-width: 100%;
    line-height: inherit;
}
.form-searchbox {
    display: block;
}
.form-control {
    display: block;
    width: 100%;
    background-image: none;
}
input[type=color], input[type=date], input[type=datetime-local], input[type=datetime], input[type=email], input[type=month], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], input[type=week], textarea {
    padding: 4px 8px;
    border-style: solid;
    border-width: 2px;
    border-color: rgba(0, 0, 0, .4);
    background-color: rgba(255,255,255,.4);
    height: 32px;
    height: 2rem;
}
input[type=color]:-ms-input-placeholder, input[type=date]:-ms-input-placeholder, input[type=datetime-local]:-ms-input-placeholder, input[type=datetime]:-ms-input-placeholder, input[type=email]:-ms-input-placeholder, input[type=month]:-ms-input-placeholder, input[type=number]:-ms-input-placeholder, input[type=password]:-ms-input-placeholder, input[type=search]:-ms-input-placeholder, input[type=tel]:-ms-input-placeholder, input[type=text]:-ms-input-placeholder, input[type=time]:-ms-input-placeholder, input[type=url]:-ms-input-placeholder, input[type=week]:-ms-input-placeholder, textarea:-ms-input-placeholder {
    color: rgba(0, 0, 0, 0.6);
}
.form-searchbox input[type=text] {
    background-color: rgba(255,255,255,.4);
    border-color: rgba(0, 0, 0, .6);
    border-width: 1px;
    color: #000;
    height: 36px;
    padding: .23px 35px .23px 12px;
}
.form-searchbox input[type=text] {
    font-size: 0.81rem;
    line-height: 1.3333;
    font-weight: 400;
}
.clear-icon, .search-icon {
    position: absolute;
    bottom: 0px;
    right: 0px;
    line-height: 0;
    margin: auto;
    text-align: center;
    color: rgba(0, 0, 0, 0.6);
    height: 20px;
    width: 20px;
    padding: 9px 0;
    font-size: 0.81rem;
    cursor: pointer;
    margin: 3px;
}
.search-icon {
    background: url('about-compat-icons.svg') no-repeat;
    background-size: 40px 60px;
    background-position: 0px -25px;
}
.search-icon:hover {
    background: url('about-compat-icons.svg') no-repeat;
    background-size: 40px 60px;
    background-position: -20px -25px;
}
.clear-icon {
    background: transparent;
    right: 37px;
    min-width: inherit;
    border: none;
    outline: 0;
    height: 30px;
}<!ENTITY Tab "&#x9;">
<!ENTITY NewLine "&#xA;">
<!ENTITY excl "&#x21;">
<!ENTITY quot "&#x22;">
<!ENTITY QUOT "&#x22;">
<!ENTITY num "&#x23;">
<!ENTITY dollar "&#x24;">
<!ENTITY percnt "&#x25;">
<!ENTITY amp "&#x26;">
<!ENTITY AMP "&#x26;">
<!ENTITY apos "&#x27;">
<!ENTITY lpar "&#x28;">
<!ENTITY rpar "&#x29;">
<!ENTITY ast "&#x2A;">
<!ENTITY midast "&#x2A;">
<!ENTITY plus "&#x2B;">
<!ENTITY comma "&#x2C;">
<!ENTITY period "&#x2E;">
<!ENTITY sol "&#x2F;">
<!ENTITY colon "&#x3A;">
<!ENTITY semi "&#x3B;">
<!ENTITY lt "&#x3C;">
<!ENTITY LT "&#x3C;">
<!ENTITY equals "&#x3D;">
<!ENTITY gt "&#x3E;">
<!ENTITY GT "&#x3E;">
<!ENTITY quest "&#x3F;">
<!ENTITY commat "&#x40;">
<!ENTITY lsqb "&#x5B;">
<!ENTITY lbrack "&#x5B;">
<!ENTITY bsol "&#x5C;">
<!ENTITY rsqb "&#x5D;">
<!ENTITY rbrack "&#x5D;">
<!ENTITY Hat "&#x5E;">
<!ENTITY lowbar "&#x5F;">
<!ENTITY UnderBar "&#x5F;">
<!ENTITY grave "&#x60;">
<!ENTITY DiacriticalGrave "&#x60;">
<!ENTITY lcub "&#x7B;">
<!ENTITY lbrace "&#x7B;">
<!ENTITY verbar "&#x7C;">
<!ENTITY vert "&#x7C;">
<!ENTITY VerticalLine "&#x7C;">
<!ENTITY rcub "&#x7D;">
<!ENTITY rbrace "&#x7D;">
<!ENTITY nbsp "&#xA0;">
<!ENTITY NonBreakingSpace "&#xA0;">
<!ENTITY iexcl "&#xA1;">
<!ENTITY cent "&#xA2;">
<!ENTITY pound "&#xA3;">
<!ENTITY curren "&#xA4;">
<!ENTITY yen "&#xA5;">
<!ENTITY brvbar "&#xA6;">
<!ENTITY sect "&#xA7;">
<!ENTITY Dot "&#xA8;">
<!ENTITY die "&#xA8;">
<!ENTITY DoubleDot "&#xA8;">
<!ENTITY uml "&#xA8;">
<!ENTITY copy "&#xA9;">
<!ENTITY COPY "&#xA9;">
<!ENTITY ordf "&#xAA;">
<!ENTITY laquo "&#xAB;">
<!ENTITY not "&#xAC;">
<!ENTITY shy "&#xAD;">
<!ENTITY reg "&#xAE;">
<!ENTITY circledR "&#xAE;">
<!ENTITY REG "&#xAE;">
<!ENTITY macr "&#xAF;">
<!ENTITY strns "&#xAF;">
<!ENTITY deg "&#xB0;">
<!ENTITY plusmn "&#xB1;">
<!ENTITY pm "&#xB1;">
<!ENTITY PlusMinus "&#xB1;">
<!ENTITY sup2 "&#xB2;">
<!ENTITY sup3 "&#xB3;">
<!ENTITY acute "&#xB4;">
<!ENTITY DiacriticalAcute "&#xB4;">
<!ENTITY micro "&#xB5;">
<!ENTITY para "&#xB6;">
<!ENTITY middot "&#xB7;">
<!ENTITY centerdot "&#xB7;">
<!ENTITY CenterDot "&#xB7;">
<!ENTITY cedil "&#xB8;">
<!ENTITY Cedilla "&#xB8;">
<!ENTITY sup1 "&#xB9;">
<!ENTITY ordm "&#xBA;">
<!ENTITY raquo "&#xBB;">
<!ENTITY frac14 "&#xBC;">
<!ENTITY frac12 "&#xBD;">
<!ENTITY half "&#xBD;">
<!ENTITY frac34 "&#xBE;">
<!ENTITY iquest "&#xBF;">
<!ENTITY Agrave "&#xC0;">
<!ENTITY Aacute "&#xC1;">
<!ENTITY Acirc "&#xC2;">
<!ENTITY Atilde "&#xC3;">
<!ENTITY Auml "&#xC4;">
<!ENTITY Aring "&#xC5;">
<!ENTITY angst "&#xC5;">
<!ENTITY AElig "&#xC6;">
<!ENTITY Ccedil "&#xC7;">
<!ENTITY Egrave "&#xC8;">
<!ENTITY Eacute "&#xC9;">
<!ENTITY Ecirc "&#xCA;">
<!ENTITY Euml "&#xCB;">
<!ENTITY Igrave "&#xCC;">
<!ENTITY Iacute "&#xCD;">
<!ENTITY Icirc "&#xCE;">
<!ENTITY Iuml "&#xCF;">
<!ENTITY ETH "&#xD0;">
<!ENTITY Ntilde "&#xD1;">
<!ENTITY Ograve "&#xD2;">
<!ENTITY Oacute "&#xD3;">
<!ENTITY Ocirc "&#xD4;">
<!ENTITY Otilde "&#xD5;">
<!ENTITY Ouml "&#xD6;">
<!ENTITY times "&#xD7;">
<!ENTITY Oslash "&#xD8;">
<!ENTITY Ugrave "&#xD9;">
<!ENTITY Uacute "&#xDA;">
<!ENTITY Ucirc "&#xDB;">
<!ENTITY Uuml "&#xDC;">
<!ENTITY Yacute "&#xDD;">
<!ENTITY THORN "&#xDE;">
<!ENTITY szlig "&#xDF;">
<!ENTITY agrave "&#xE0;">
<!ENTITY aacute "&#xE1;">
<!ENTITY acirc "&#xE2;">
<!ENTITY atilde "&#xE3;">
<!ENTITY auml "&#xE4;">
<!ENTITY aring "&#xE5;">
<!ENTITY aelig "&#xE6;">
<!ENTITY ccedil "&#xE7;">
<!ENTITY egrave "&#xE8;">
<!ENTITY eacute "&#xE9;">
<!ENTITY ecirc "&#xEA;">
<!ENTITY euml "&#xEB;">
<!ENTITY igrave "&#xEC;">
<!ENTITY iacute "&#xED;">
<!ENTITY icirc "&#xEE;">
<!ENTITY iuml "&#xEF;">
<!ENTITY eth "&#xF0;">
<!ENTITY ntilde "&#xF1;">
<!ENTITY ograve "&#xF2;">
<!ENTITY oacute "&#xF3;">
<!ENTITY ocirc "&#xF4;">
<!ENTITY otilde "&#xF5;">
<!ENTITY ouml "&#xF6;">
<!ENTITY divide "&#xF7;">
<!ENTITY div "&#xF7;">
<!ENTITY oslash "&#xF8;">
<!ENTITY ugrave "&#xF9;">
<!ENTITY uacute "&#xFA;">
<!ENTITY ucirc "&#xFB;">
<!ENTITY uuml "&#xFC;">
<!ENTITY yacute "&#xFD;">
<!ENTITY thorn "&#xFE;">
<!ENTITY yuml "&#xFF;">
<!ENTITY Amacr "&#x100;">
<!ENTITY amacr "&#x101;">
<!ENTITY Abreve "&#x102;">
<!ENTITY abreve "&#x103;">
<!ENTITY Aogon "&#x104;">
<!ENTITY aogon "&#x105;">
<!ENTITY Cacute "&#x106;">
<!ENTITY cacute "&#x107;">
<!ENTITY Ccirc "&#x108;">
<!ENTITY ccirc "&#x109;">
<!ENTITY Cdot "&#x10A;">
<!ENTITY cdot "&#x10B;">
<!ENTITY Ccaron "&#x10C;">
<!ENTITY ccaron "&#x10D;">
<!ENTITY Dcaron "&#x10E;">
<!ENTITY dcaron "&#x10F;">
<!ENTITY Dstrok "&#x110;">
<!ENTITY dstrok "&#x111;">
<!ENTITY Emacr "&#x112;">
<!ENTITY emacr "&#x113;">
<!ENTITY Edot "&#x116;">
<!ENTITY edot "&#x117;">
<!ENTITY Eogon "&#x118;">
<!ENTITY eogon "&#x119;">
<!ENTITY Ecaron "&#x11A;">
<!ENTITY ecaron "&#x11B;">
<!ENTITY Gcirc "&#x11C;">
<!ENTITY gcirc "&#x11D;">
<!ENTITY Gbreve "&#x11E;">
<!ENTITY gbreve "&#x11F;">
<!ENTITY Gdot "&#x120;">
<!ENTITY gdot "&#x121;">
<!ENTITY Gcedil "&#x122;">
<!ENTITY Hcirc "&#x124;">
<!ENTITY hcirc "&#x125;">
<!ENTITY Hstrok "&#x126;">
<!ENTITY hstrok "&#x127;">
<!ENTITY Itilde "&#x128;">
<!ENTITY itilde "&#x129;">
<!ENTITY Imacr "&#x12A;">
<!ENTITY imacr "&#x12B;">
<!ENTITY Iogon "&#x12E;">
<!ENTITY iogon "&#x12F;">
<!ENTITY Idot "&#x130;">
<!ENTITY imath "&#x131;">
<!ENTITY inodot "&#x131;">
<!ENTITY IJlig "&#x132;">
<!ENTITY ijlig "&#x133;">
<!ENTITY Jcirc "&#x134;">
<!ENTITY jcirc "&#x135;">
<!ENTITY Kcedil "&#x136;">
<!ENTITY kcedil "&#x137;">
<!ENTITY kgreen "&#x138;">
<!ENTITY Lacute "&#x139;">
<!ENTITY lacute "&#x13A;">
<!ENTITY Lcedil "&#x13B;">
<!ENTITY lcedil "&#x13C;">
<!ENTITY Lcaron "&#x13D;">
<!ENTITY lcaron "&#x13E;">
<!ENTITY Lmidot "&#x13F;">
<!ENTITY lmidot "&#x140;">
<!ENTITY Lstrok "&#x141;">
<!ENTITY lstrok "&#x142;">
<!ENTITY Nacute "&#x143;">
<!ENTITY nacute "&#x144;">
<!ENTITY Ncedil "&#x145;">
<!ENTITY ncedil "&#x146;">
<!ENTITY Ncaron "&#x147;">
<!ENTITY ncaron "&#x148;">
<!ENTITY napos "&#x149;">
<!ENTITY ENG "&#x14A;">
<!ENTITY eng "&#x14B;">
<!ENTITY Omacr "&#x14C;">
<!ENTITY omacr "&#x14D;">
<!ENTITY Odblac "&#x150;">
<!ENTITY odblac "&#x151;">
<!ENTITY OElig "&#x152;">
<!ENTITY oelig "&#x153;">
<!ENTITY Racute "&#x154;">
<!ENTITY racute "&#x155;">
<!ENTITY Rcedil "&#x156;">
<!ENTITY rcedil "&#x157;">
<!ENTITY Rcaron "&#x158;">
<!ENTITY rcaron "&#x159;">
<!ENTITY Sacute "&#x15A;">
<!ENTITY sacute "&#x15B;">
<!ENTITY Scirc "&#x15C;">
<!ENTITY scirc "&#x15D;">
<!ENTITY Scedil "&#x15E;">
<!ENTITY scedil "&#x15F;">
<!ENTITY Scaron "&#x160;">
<!ENTITY scaron "&#x161;">
<!ENTITY Tcedil "&#x162;">
<!ENTITY tcedil "&#x163;">
<!ENTITY Tcaron "&#x164;">
<!ENTITY tcaron "&#x165;">
<!ENTITY Tstrok "&#x166;">
<!ENTITY tstrok "&#x167;">
<!ENTITY Utilde "&#x168;">
<!ENTITY utilde "&#x169;">
<!ENTITY Umacr "&#x16A;">
<!ENTITY umacr "&#x16B;">
<!ENTITY Ubreve "&#x16C;">
<!ENTITY ubreve "&#x16D;">
<!ENTITY Uring "&#x16E;">
<!ENTITY uring "&#x16F;">
<!ENTITY Udblac "&#x170;">
<!ENTITY udblac "&#x171;">
<!ENTITY Uogon "&#x172;">
<!ENTITY uogon "&#x173;">
<!ENTITY Wcirc "&#x174;">
<!ENTITY wcirc "&#x175;">
<!ENTITY Ycirc "&#x176;">
<!ENTITY ycirc "&#x177;">
<!ENTITY Yuml "&#x178;">
<!ENTITY Zacute "&#x179;">
<!ENTITY zacute "&#x17A;">
<!ENTITY Zdot "&#x17B;">
<!ENTITY zdot "&#x17C;">
<!ENTITY Zcaron "&#x17D;">
<!ENTITY zcaron "&#x17E;">
<!ENTITY fnof "&#x192;">
<!ENTITY imped "&#x1B5;">
<!ENTITY gacute "&#x1F5;">
<!ENTITY jmath "&#x237;">
<!ENTITY circ "&#x2C6;">
<!ENTITY caron "&#x2C7;">
<!ENTITY Hacek "&#x2C7;">
<!ENTITY breve "&#x2D8;">
<!ENTITY Breve "&#x2D8;">
<!ENTITY dot "&#x2D9;">
<!ENTITY DiacriticalDot "&#x2D9;">
<!ENTITY ring "&#x2DA;">
<!ENTITY ogon "&#x2DB;">
<!ENTITY tilde "&#x2DC;">
<!ENTITY DiacriticalTilde "&#x2DC;">
<!ENTITY dblac "&#x2DD;">
<!ENTITY DiacriticalDoubleAcute "&#x2DD;">
<!ENTITY DownBreve "&#x311;">
<!ENTITY Alpha "&#x391;">
<!ENTITY Beta "&#x392;">
<!ENTITY Gamma "&#x393;">
<!ENTITY Delta "&#x394;">
<!ENTITY Epsilon "&#x395;">
<!ENTITY Zeta "&#x396;">
<!ENTITY Eta "&#x397;">
<!ENTITY Theta "&#x398;">
<!ENTITY Iota "&#x399;">
<!ENTITY Kappa "&#x39A;">
<!ENTITY Lambda "&#x39B;">
<!ENTITY Mu "&#x39C;">
<!ENTITY Nu "&#x39D;">
<!ENTITY Xi "&#x39E;">
<!ENTITY Omicron "&#x39F;">
<!ENTITY Pi "&#x3A0;">
<!ENTITY Rho "&#x3A1;">
<!ENTITY Sigma "&#x3A3;">
<!ENTITY Tau "&#x3A4;">
<!ENTITY Upsilon "&#x3A5;">
<!ENTITY Phi "&#x3A6;">
<!ENTITY Chi "&#x3A7;">
<!ENTITY Psi "&#x3A8;">
<!ENTITY Omega "&#x3A9;">
<!ENTITY ohm "&#x3A9;">
<!ENTITY alpha "&#x3B1;">
<!ENTITY beta "&#x3B2;">
<!ENTITY gamma "&#x3B3;">
<!ENTITY delta "&#x3B4;">
<!ENTITY epsi "&#x3B5;">
<!ENTITY epsilon "&#x3B5;">
<!ENTITY zeta "&#x3B6;">
<!ENTITY eta "&#x3B7;">
<!ENTITY theta "&#x3B8;">
<!ENTITY iota "&#x3B9;">
<!ENTITY kappa "&#x3BA;">
<!ENTITY lambda "&#x3BB;">
<!ENTITY mu "&#x3BC;">
<!ENTITY nu "&#x3BD;">
<!ENTITY xi "&#x3BE;">
<!ENTITY omicron "&#x3BF;">
<!ENTITY pi "&#x3C0;">
<!ENTITY rho "&#x3C1;">
<!ENTITY sigmav "&#x3C2;">
<!ENTITY varsigma "&#x3C2;">
<!ENTITY sigmaf "&#x3C2;">
<!ENTITY sigma "&#x3C3;">
<!ENTITY tau "&#x3C4;">
<!ENTITY upsi "&#x3C5;">
<!ENTITY upsilon "&#x3C5;">
<!ENTITY phi "&#x3C6;">
<!ENTITY chi "&#x3C7;">
<!ENTITY psi "&#x3C8;">
<!ENTITY omega "&#x3C9;">
<!ENTITY thetav "&#x3D1;">
<!ENTITY vartheta "&#x3D1;">
<!ENTITY thetasym "&#x3D1;">
<!ENTITY Upsi "&#x3D2;">
<!ENTITY upsih "&#x3D2;">
<!ENTITY straightphi "&#x3D5;">
<!ENTITY phiv "&#x3D5;">
<!ENTITY varphi "&#x3D5;">
<!ENTITY piv "&#x3D6;">
<!ENTITY varpi "&#x3D6;">
<!ENTITY Gammad "&#x3DC;">
<!ENTITY gammad "&#x3DD;">
<!ENTITY digamma "&#x3DD;">
<!ENTITY kappav "&#x3F0;">
<!ENTITY varkappa "&#x3F0;">
<!ENTITY rhov "&#x3F1;">
<!ENTITY varrho "&#x3F1;">
<!ENTITY epsiv "&#x3F5;">
<!ENTITY straightepsilon "&#x3F5;">
<!ENTITY varepsilon "&#x3F5;">
<!ENTITY bepsi "&#x3F6;">
<!ENTITY backepsilon "&#x3F6;">
<!ENTITY IOcy "&#x401;">
<!ENTITY DJcy "&#x402;">
<!ENTITY GJcy "&#x403;">
<!ENTITY Jukcy "&#x404;">
<!ENTITY DScy "&#x405;">
<!ENTITY Iukcy "&#x406;">
<!ENTITY YIcy "&#x407;">
<!ENTITY Jsercy "&#x408;">
<!ENTITY LJcy "&#x409;">
<!ENTITY NJcy "&#x40A;">
<!ENTITY TSHcy "&#x40B;">
<!ENTITY KJcy "&#x40C;">
<!ENTITY Ubrcy "&#x40E;">
<!ENTITY DZcy "&#x40F;">
<!ENTITY Acy "&#x410;">
<!ENTITY Bcy "&#x411;">
<!ENTITY Vcy "&#x412;">
<!ENTITY Gcy "&#x413;">
<!ENTITY Dcy "&#x414;">
<!ENTITY IEcy "&#x415;">
<!ENTITY ZHcy "&#x416;">
<!ENTITY Zcy "&#x417;">
<!ENTITY Icy "&#x418;">
<!ENTITY Jcy "&#x419;">
<!ENTITY Kcy "&#x41A;">
<!ENTITY Lcy "&#x41B;">
<!ENTITY Mcy "&#x41C;">
<!ENTITY Ncy "&#x41D;">
<!ENTITY Ocy "&#x41E;">
<!ENTITY Pcy "&#x41F;">
<!ENTITY Rcy "&#x420;">
<!ENTITY Scy "&#x421;">
<!ENTITY Tcy "&#x422;">
<!ENTITY Ucy "&#x423;">
<!ENTITY Fcy "&#x424;">
<!ENTITY KHcy "&#x425;">
<!ENTITY TScy "&#x426;">
<!ENTITY CHcy "&#x427;">
<!ENTITY SHcy "&#x428;">
<!ENTITY SHCHcy "&#x429;">
<!ENTITY HARDcy "&#x42A;">
<!ENTITY Ycy "&#x42B;">
<!ENTITY SOFTcy "&#x42C;">
<!ENTITY Ecy "&#x42D;">
<!ENTITY YUcy "&#x42E;">
<!ENTITY YAcy "&#x42F;">
<!ENTITY acy "&#x430;">
<!ENTITY bcy "&#x431;">
<!ENTITY vcy "&#x432;">
<!ENTITY gcy "&#x433;">
<!ENTITY dcy "&#x434;">
<!ENTITY iecy "&#x435;">
<!ENTITY zhcy "&#x436;">
<!ENTITY zcy "&#x437;">
<!ENTITY icy "&#x438;">
<!ENTITY jcy "&#x439;">
<!ENTITY kcy "&#x43A;">
<!ENTITY lcy "&#x43B;">
<!ENTITY mcy "&#x43C;">
<!ENTITY ncy "&#x43D;">
<!ENTITY ocy "&#x43E;">
<!ENTITY pcy "&#x43F;">
<!ENTITY rcy "&#x440;">
<!ENTITY scy "&#x441;">
<!ENTITY tcy "&#x442;">
<!ENTITY ucy "&#x443;">
<!ENTITY fcy "&#x444;">
<!ENTITY khcy "&#x445;">
<!ENTITY tscy "&#x446;">
<!ENTITY chcy "&#x447;">
<!ENTITY shcy "&#x448;">
<!ENTITY shchcy "&#x449;">
<!ENTITY hardcy "&#x44A;">
<!ENTITY ycy "&#x44B;">
<!ENTITY softcy "&#x44C;">
<!ENTITY ecy "&#x44D;">
<!ENTITY yucy "&#x44E;">
<!ENTITY yacy "&#x44F;">
<!ENTITY iocy "&#x451;">
<!ENTITY djcy "&#x452;">
<!ENTITY gjcy "&#x453;">
<!ENTITY jukcy "&#x454;">
<!ENTITY dscy "&#x455;">
<!ENTITY iukcy "&#x456;">
<!ENTITY yicy "&#x457;">
<!ENTITY jsercy "&#x458;">
<!ENTITY ljcy "&#x459;">
<!ENTITY njcy "&#x45A;">
<!ENTITY tshcy "&#x45B;">
<!ENTITY kjcy "&#x45C;">
<!ENTITY ubrcy "&#x45E;">
<!ENTITY dzcy "&#x45F;">
<!ENTITY ensp "&#x2002;">
<!ENTITY emsp "&#x2003;">
<!ENTITY emsp13 "&#x2004;">
<!ENTITY emsp14 "&#x2005;">
<!ENTITY numsp "&#x2007;">
<!ENTITY puncsp "&#x2008;">
<!ENTITY thinsp "&#x2009;">
<!ENTITY ThinSpace "&#x2009;">
<!ENTITY hairsp "&#x200A;">
<!ENTITY VeryThinSpace "&#x200A;">
<!ENTITY ZeroWidthSpace "&#x200B;">
<!ENTITY NegativeVeryThinSpace "&#x200B;">
<!ENTITY NegativeThinSpace "&#x200B;">
<!ENTITY NegativeMediumSpace "&#x200B;">
<!ENTITY NegativeThickSpace "&#x200B;">
<!ENTITY zwnj "&#x200C;">
<!ENTITY zwj "&#x200D;">
<!ENTITY lrm "&#x200E;">
<!ENTITY rlm "&#x200F;">
<!ENTITY hyphen "&#x2010;">
<!ENTITY dash "&#x2010;">
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY horbar "&#x2015;">
<!ENTITY Verbar "&#x2016;">
<!ENTITY Vert "&#x2016;">
<!ENTITY lsquo "&#x2018;">
<!ENTITY OpenCurlyQuote "&#x2018;">
<!ENTITY rsquo "&#x2019;">
<!ENTITY rsquor "&#x2019;">
<!ENTITY CloseCurlyQuote "&#x2019;">
<!ENTITY lsquor "&#x201A;">
<!ENTITY sbquo "&#x201A;">
<!ENTITY ldquo "&#x201C;">
<!ENTITY OpenCurlyDoubleQuote "&#x201C;">
<!ENTITY rdquo "&#x201D;">
<!ENTITY rdquor "&#x201D;">
<!ENTITY CloseCurlyDoubleQuote "&#x201D;">
<!ENTITY ldquor "&#x201E;">
<!ENTITY bdquo "&#x201E;">
<!ENTITY dagger "&#x2020;">
<!ENTITY Dagger "&#x2021;">
<!ENTITY ddagger "&#x2021;">
<!ENTITY bull "&#x2022;">
<!ENTITY bullet "&#x2022;">
<!ENTITY nldr "&#x2025;">
<!ENTITY hellip "&#x2026;">
<!ENTITY mldr "&#x2026;">
<!ENTITY permil "&#x2030;">
<!ENTITY pertenk "&#x2031;">
<!ENTITY prime "&#x2032;">
<!ENTITY Prime "&#x2033;">
<!ENTITY tprime "&#x2034;">
<!ENTITY bprime "&#x2035;">
<!ENTITY backprime "&#x2035;">
<!ENTITY lsaquo "&#x2039;">
<!ENTITY rsaquo "&#x203A;">
<!ENTITY oline "&#x203E;">
<!ENTITY OverBar "&#x203E;">
<!ENTITY caret "&#x2041;">
<!ENTITY hybull "&#x2043;">
<!ENTITY frasl "&#x2044;">
<!ENTITY bsemi "&#x204F;">
<!ENTITY qprime "&#x2057;">
<!ENTITY MediumSpace "&#x205F;">
<!ENTITY NoBreak "&#x2060;">
<!ENTITY ApplyFunction "&#x2061;">
<!ENTITY af "&#x2061;">
<!ENTITY InvisibleTimes "&#x2062;">
<!ENTITY it "&#x2062;">
<!ENTITY InvisibleComma "&#x2063;">
<!ENTITY ic "&#x2063;">
<!ENTITY euro "&#x20AC;">
<!ENTITY tdot "&#x20DB;">
<!ENTITY TripleDot "&#x20DB;">
<!ENTITY DotDot "&#x20DC;">
<!ENTITY Copf "&#x2102;">
<!ENTITY complexes "&#x2102;">
<!ENTITY incare "&#x2105;">
<!ENTITY gscr "&#x210A;">
<!ENTITY hamilt "&#x210B;">
<!ENTITY HilbertSpace "&#x210B;">
<!ENTITY Hscr "&#x210B;">
<!ENTITY Hfr "&#x210C;">
<!ENTITY Poincareplane "&#x210C;">
<!ENTITY quaternions "&#x210D;">
<!ENTITY Hopf "&#x210D;">
<!ENTITY planckh "&#x210E;">
<!ENTITY planck "&#x210F;">
<!ENTITY hbar "&#x210F;">
<!ENTITY plankv "&#x210F;">
<!ENTITY hslash "&#x210F;">
<!ENTITY Iscr "&#x2110;">
<!ENTITY imagline "&#x2110;">
<!ENTITY image "&#x2111;">
<!ENTITY Im "&#x2111;">
<!ENTITY imagpart "&#x2111;">
<!ENTITY Ifr "&#x2111;">
<!ENTITY Lscr "&#x2112;">
<!ENTITY lagran "&#x2112;">
<!ENTITY Laplacetrf "&#x2112;">
<!ENTITY ell "&#x2113;">
<!ENTITY Nopf "&#x2115;">
<!ENTITY naturals "&#x2115;">
<!ENTITY numero "&#x2116;">
<!ENTITY copysr "&#x2117;">
<!ENTITY weierp "&#x2118;">
<!ENTITY wp "&#x2118;">
<!ENTITY Popf "&#x2119;">
<!ENTITY primes "&#x2119;">
<!ENTITY rationals "&#x211A;">
<!ENTITY Qopf "&#x211A;">
<!ENTITY Rscr "&#x211B;">
<!ENTITY realine "&#x211B;">
<!ENTITY real "&#x211C;">
<!ENTITY Re "&#x211C;">
<!ENTITY realpart "&#x211C;">
<!ENTITY Rfr "&#x211C;">
<!ENTITY reals "&#x211D;">
<!ENTITY Ropf "&#x211D;">
<!ENTITY rx "&#x211E;">
<!ENTITY trade "&#x2122;">
<!ENTITY TRADE "&#x2122;">
<!ENTITY integers "&#x2124;">
<!ENTITY Zopf "&#x2124;">
<!ENTITY mho "&#x2127;">
<!ENTITY Zfr "&#x2128;">
<!ENTITY zeetrf "&#x2128;">
<!ENTITY iiota "&#x2129;">
<!ENTITY bernou "&#x212C;">
<!ENTITY Bernoullis "&#x212C;">
<!ENTITY Bscr "&#x212C;">
<!ENTITY Cfr "&#x212D;">
<!ENTITY Cayleys "&#x212D;">
<!ENTITY escr "&#x212F;">
<!ENTITY Escr "&#x2130;">
<!ENTITY expectation "&#x2130;">
<!ENTITY Fscr "&#x2131;">
<!ENTITY Fouriertrf "&#x2131;">
<!ENTITY phmmat "&#x2133;">
<!ENTITY Mellintrf "&#x2133;">
<!ENTITY Mscr "&#x2133;">
<!ENTITY order "&#x2134;">
<!ENTITY orderof "&#x2134;">
<!ENTITY oscr "&#x2134;">
<!ENTITY alefsym "&#x2135;">
<!ENTITY aleph "&#x2135;">
<!ENTITY beth "&#x2136;">
<!ENTITY gimel "&#x2137;">
<!ENTITY daleth "&#x2138;">
<!ENTITY CapitalDifferentialD "&#x2145;">
<!ENTITY DD "&#x2145;">
<!ENTITY DifferentialD "&#x2146;">
<!ENTITY dd "&#x2146;">
<!ENTITY ExponentialE "&#x2147;">
<!ENTITY exponentiale "&#x2147;">
<!ENTITY ee "&#x2147;">
<!ENTITY ImaginaryI "&#x2148;">
<!ENTITY ii "&#x2148;">
<!ENTITY frac13 "&#x2153;">
<!ENTITY frac23 "&#x2154;">
<!ENTITY frac15 "&#x2155;">
<!ENTITY frac25 "&#x2156;">
<!ENTITY frac35 "&#x2157;">
<!ENTITY frac45 "&#x2158;">
<!ENTITY frac16 "&#x2159;">
<!ENTITY frac56 "&#x215A;">
<!ENTITY frac18 "&#x215B;">
<!ENTITY frac38 "&#x215C;">
<!ENTITY frac58 "&#x215D;">
<!ENTITY frac78 "&#x215E;">
<!ENTITY larr "&#x2190;">
<!ENTITY leftarrow "&#x2190;">
<!ENTITY LeftArrow "&#x2190;">
<!ENTITY slarr "&#x2190;">
<!ENTITY ShortLeftArrow "&#x2190;">
<!ENTITY uarr "&#x2191;">
<!ENTITY uparrow "&#x2191;">
<!ENTITY UpArrow "&#x2191;">
<!ENTITY ShortUpArrow "&#x2191;">
<!ENTITY rarr "&#x2192;">
<!ENTITY rightarrow "&#x2192;">
<!ENTITY RightArrow "&#x2192;">
<!ENTITY srarr "&#x2192;">
<!ENTITY ShortRightArrow "&#x2192;">
<!ENTITY darr "&#x2193;">
<!ENTITY downarrow "&#x2193;">
<!ENTITY DownArrow "&#x2193;">
<!ENTITY ShortDownArrow "&#x2193;">
<!ENTITY harr "&#x2194;">
<!ENTITY leftrightarrow "&#x2194;">
<!ENTITY LeftRightArrow "&#x2194;">
<!ENTITY varr "&#x2195;">
<!ENTITY updownarrow "&#x2195;">
<!ENTITY UpDownArrow "&#x2195;">
<!ENTITY nwarr "&#x2196;">
<!ENTITY UpperLeftArrow "&#x2196;">
<!ENTITY nwarrow "&#x2196;">
<!ENTITY nearr "&#x2197;">
<!ENTITY UpperRightArrow "&#x2197;">
<!ENTITY nearrow "&#x2197;">
<!ENTITY searr "&#x2198;">
<!ENTITY searrow "&#x2198;">
<!ENTITY LowerRightArrow "&#x2198;">
<!ENTITY swarr "&#x2199;">
<!ENTITY swarrow "&#x2199;">
<!ENTITY LowerLeftArrow "&#x2199;">
<!ENTITY nlarr "&#x219A;">
<!ENTITY nleftarrow "&#x219A;">
<!ENTITY nrarr "&#x219B;">
<!ENTITY nrightarrow "&#x219B;">
<!ENTITY rarrw "&#x219D;">
<!ENTITY rightsquigarrow "&#x219D;">
<!ENTITY Larr "&#x219E;">
<!ENTITY twoheadleftarrow "&#x219E;">
<!ENTITY Uarr "&#x219F;">
<!ENTITY Rarr "&#x21A0;">
<!ENTITY twoheadrightarrow "&#x21A0;">
<!ENTITY Darr "&#x21A1;">
<!ENTITY larrtl "&#x21A2;">
<!ENTITY leftarrowtail "&#x21A2;">
<!ENTITY rarrtl "&#x21A3;">
<!ENTITY rightarrowtail "&#x21A3;">
<!ENTITY LeftTeeArrow "&#x21A4;">
<!ENTITY mapstoleft "&#x21A4;">
<!ENTITY UpTeeArrow "&#x21A5;">
<!ENTITY mapstoup "&#x21A5;">
<!ENTITY map "&#x21A6;">
<!ENTITY RightTeeArrow "&#x21A6;">
<!ENTITY mapsto "&#x21A6;">
<!ENTITY DownTeeArrow "&#x21A7;">
<!ENTITY mapstodown "&#x21A7;">
<!ENTITY larrhk "&#x21A9;">
<!ENTITY hookleftarrow "&#x21A9;">
<!ENTITY rarrhk "&#x21AA;">
<!ENTITY hookrightarrow "&#x21AA;">
<!ENTITY larrlp "&#x21AB;">
<!ENTITY looparrowleft "&#x21AB;">
<!ENTITY rarrlp "&#x21AC;">
<!ENTITY looparrowright "&#x21AC;">
<!ENTITY harrw "&#x21AD;">
<!ENTITY leftrightsquigarrow "&#x21AD;">
<!ENTITY nharr "&#x21AE;">
<!ENTITY nleftrightarrow "&#x21AE;">
<!ENTITY lsh "&#x21B0;">
<!ENTITY Lsh "&#x21B0;">
<!ENTITY rsh "&#x21B1;">
<!ENTITY Rsh "&#x21B1;">
<!ENTITY ldsh "&#x21B2;">
<!ENTITY rdsh "&#x21B3;">
<!ENTITY crarr "&#x21B5;">
<!ENTITY cularr "&#x21B6;">
<!ENTITY curvearrowleft "&#x21B6;">
<!ENTITY curarr "&#x21B7;">
<!ENTITY curvearrowright "&#x21B7;">
<!ENTITY olarr "&#x21BA;">
<!ENTITY circlearrowleft "&#x21BA;">
<!ENTITY orarr "&#x21BB;">
<!ENTITY circlearrowright "&#x21BB;">
<!ENTITY lharu "&#x21BC;">
<!ENTITY LeftVector "&#x21BC;">
<!ENTITY leftharpoonup "&#x21BC;">
<!ENTITY lhard "&#x21BD;">
<!ENTITY leftharpoondown "&#x21BD;">
<!ENTITY DownLeftVector "&#x21BD;">
<!ENTITY uharr "&#x21BE;">
<!ENTITY upharpoonright "&#x21BE;">
<!ENTITY RightUpVector "&#x21BE;">
<!ENTITY uharl "&#x21BF;">
<!ENTITY upharpoonleft "&#x21BF;">
<!ENTITY LeftUpVector "&#x21BF;">
<!ENTITY rharu "&#x21C0;">
<!ENTITY RightVector "&#x21C0;">
<!ENTITY rightharpoonup "&#x21C0;">
<!ENTITY rhard "&#x21C1;">
<!ENTITY rightharpoondown "&#x21C1;">
<!ENTITY DownRightVector "&#x21C1;">
<!ENTITY dharr "&#x21C2;">
<!ENTITY RightDownVector "&#x21C2;">
<!ENTITY downharpoonright "&#x21C2;">
<!ENTITY dharl "&#x21C3;">
<!ENTITY LeftDownVector "&#x21C3;">
<!ENTITY downharpoonleft "&#x21C3;">
<!ENTITY rlarr "&#x21C4;">
<!ENTITY rightleftarrows "&#x21C4;">
<!ENTITY RightArrowLeftArrow "&#x21C4;">
<!ENTITY udarr "&#x21C5;">
<!ENTITY UpArrowDownArrow "&#x21C5;">
<!ENTITY lrarr "&#x21C6;">
<!ENTITY leftrightarrows "&#x21C6;">
<!ENTITY LeftArrowRightArrow "&#x21C6;">
<!ENTITY llarr "&#x21C7;">
<!ENTITY leftleftarrows "&#x21C7;">
<!ENTITY uuarr "&#x21C8;">
<!ENTITY upuparrows "&#x21C8;">
<!ENTITY rrarr "&#x21C9;">
<!ENTITY rightrightarrows "&#x21C9;">
<!ENTITY ddarr "&#x21CA;">
<!ENTITY downdownarrows "&#x21CA;">
<!ENTITY lrhar "&#x21CB;">
<!ENTITY ReverseEquilibrium "&#x21CB;">
<!ENTITY leftrightharpoons "&#x21CB;">
<!ENTITY rlhar "&#x21CC;">
<!ENTITY rightleftharpoons "&#x21CC;">
<!ENTITY Equilibrium "&#x21CC;">
<!ENTITY nlArr "&#x21CD;">
<!ENTITY nLeftarrow "&#x21CD;">
<!ENTITY nhArr "&#x21CE;">
<!ENTITY nLeftrightarrow "&#x21CE;">
<!ENTITY nrArr "&#x21CF;">
<!ENTITY nRightarrow "&#x21CF;">
<!ENTITY lArr "&#x21D0;">
<!ENTITY Leftarrow "&#x21D0;">
<!ENTITY DoubleLeftArrow "&#x21D0;">
<!ENTITY uArr "&#x21D1;">
<!ENTITY Uparrow "&#x21D1;">
<!ENTITY DoubleUpArrow "&#x21D1;">
<!ENTITY rArr "&#x21D2;">
<!ENTITY Rightarrow "&#x21D2;">
<!ENTITY Implies "&#x21D2;">
<!ENTITY DoubleRightArrow "&#x21D2;">
<!ENTITY dArr "&#x21D3;">
<!ENTITY Downarrow "&#x21D3;">
<!ENTITY DoubleDownArrow "&#x21D3;">
<!ENTITY hArr "&#x21D4;">
<!ENTITY Leftrightarrow "&#x21D4;">
<!ENTITY DoubleLeftRightArrow "&#x21D4;">
<!ENTITY iff "&#x21D4;">
<!ENTITY vArr "&#x21D5;">
<!ENTITY Updownarrow "&#x21D5;">
<!ENTITY DoubleUpDownArrow "&#x21D5;">
<!ENTITY nwArr "&#x21D6;">
<!ENTITY neArr "&#x21D7;">
<!ENTITY seArr "&#x21D8;">
<!ENTITY swArr "&#x21D9;">
<!ENTITY lAarr "&#x21DA;">
<!ENTITY Lleftarrow "&#x21DA;">
<!ENTITY rAarr "&#x21DB;">
<!ENTITY Rrightarrow "&#x21DB;">
<!ENTITY zigrarr "&#x21DD;">
<!ENTITY larrb "&#x21E4;">
<!ENTITY LeftArrowBar "&#x21E4;">
<!ENTITY rarrb "&#x21E5;">
<!ENTITY RightArrowBar "&#x21E5;">
<!ENTITY duarr "&#x21F5;">
<!ENTITY DownArrowUpArrow "&#x21F5;">
<!ENTITY loarr "&#x21FD;">
<!ENTITY roarr "&#x21FE;">
<!ENTITY hoarr "&#x21FF;">
<!ENTITY forall "&#x2200;">
<!ENTITY ForAll "&#x2200;">
<!ENTITY comp "&#x2201;">
<!ENTITY complement "&#x2201;">
<!ENTITY part "&#x2202;">
<!ENTITY PartialD "&#x2202;">
<!ENTITY exist "&#x2203;">
<!ENTITY Exists "&#x2203;">
<!ENTITY nexist "&#x2204;">
<!ENTITY NotExists "&#x2204;">
<!ENTITY nexists "&#x2204;">
<!ENTITY empty "&#x2205;">
<!ENTITY emptyset "&#x2205;">
<!ENTITY emptyv "&#x2205;">
<!ENTITY varnothing "&#x2205;">
<!ENTITY nabla "&#x2207;">
<!ENTITY Del "&#x2207;">
<!ENTITY isin "&#x2208;">
<!ENTITY isinv "&#x2208;">
<!ENTITY Element "&#x2208;">
<!ENTITY in "&#x2208;">
<!ENTITY notin "&#x2209;">
<!ENTITY NotElement "&#x2209;">
<!ENTITY notinva "&#x2209;">
<!ENTITY niv "&#x220B;">
<!ENTITY ReverseElement "&#x220B;">
<!ENTITY ni "&#x220B;">
<!ENTITY SuchThat "&#x220B;">
<!ENTITY notni "&#x220C;">
<!ENTITY notniva "&#x220C;">
<!ENTITY NotReverseElement "&#x220C;">
<!ENTITY prod "&#x220F;">
<!ENTITY Product "&#x220F;">
<!ENTITY coprod "&#x2210;">
<!ENTITY Coproduct "&#x2210;">
<!ENTITY sum "&#x2211;">
<!ENTITY Sum "&#x2211;">
<!ENTITY minus "&#x2212;">
<!ENTITY mnplus "&#x2213;">
<!ENTITY mp "&#x2213;">
<!ENTITY MinusPlus "&#x2213;">
<!ENTITY plusdo "&#x2214;">
<!ENTITY dotplus "&#x2214;">
<!ENTITY setmn "&#x2216;">
<!ENTITY setminus "&#x2216;">
<!ENTITY Backslash "&#x2216;">
<!ENTITY ssetmn "&#x2216;">
<!ENTITY smallsetminus "&#x2216;">
<!ENTITY lowast "&#x2217;">
<!ENTITY compfn "&#x2218;">
<!ENTITY SmallCircle "&#x2218;">
<!ENTITY radic "&#x221A;">
<!ENTITY Sqrt "&#x221A;">
<!ENTITY prop "&#x221D;">
<!ENTITY propto "&#x221D;">
<!ENTITY Proportional "&#x221D;">
<!ENTITY vprop "&#x221D;">
<!ENTITY varpropto "&#x221D;">
<!ENTITY infin "&#x221E;">
<!ENTITY angrt "&#x221F;">
<!ENTITY ang "&#x2220;">
<!ENTITY angle "&#x2220;">
<!ENTITY angmsd "&#x2221;">
<!ENTITY measuredangle "&#x2221;">
<!ENTITY angsph "&#x2222;">
<!ENTITY mid "&#x2223;">
<!ENTITY VerticalBar "&#x2223;">
<!ENTITY smid "&#x2223;">
<!ENTITY shortmid "&#x2223;">
<!ENTITY nmid "&#x2224;">
<!ENTITY NotVerticalBar "&#x2224;">
<!ENTITY nsmid "&#x2224;">
<!ENTITY nshortmid "&#x2224;">
<!ENTITY par "&#x2225;">
<!ENTITY parallel "&#x2225;">
<!ENTITY DoubleVerticalBar "&#x2225;">
<!ENTITY spar "&#x2225;">
<!ENTITY shortparallel "&#x2225;">
<!ENTITY npar "&#x2226;">
<!ENTITY nparallel "&#x2226;">
<!ENTITY NotDoubleVerticalBar "&#x2226;">
<!ENTITY nspar "&#x2226;">
<!ENTITY nshortparallel "&#x2226;">
<!ENTITY and "&#x2227;">
<!ENTITY wedge "&#x2227;">
<!ENTITY or "&#x2228;">
<!ENTITY vee "&#x2228;">
<!ENTITY cap "&#x2229;">
<!ENTITY cup "&#x222A;">
<!ENTITY int "&#x222B;">
<!ENTITY Integral "&#x222B;">
<!ENTITY Int "&#x222C;">
<!ENTITY tint "&#x222D;">
<!ENTITY iiint "&#x222D;">
<!ENTITY conint "&#x222E;">
<!ENTITY oint "&#x222E;">
<!ENTITY ContourIntegral "&#x222E;">
<!ENTITY Conint "&#x222F;">
<!ENTITY DoubleContourIntegral "&#x222F;">
<!ENTITY Cconint "&#x2230;">
<!ENTITY cwint "&#x2231;">
<!ENTITY cwconint "&#x2232;">
<!ENTITY ClockwiseContourIntegral "&#x2232;">
<!ENTITY awconint "&#x2233;">
<!ENTITY CounterClockwiseContourIntegral "&#x2233;">
<!ENTITY there4 "&#x2234;">
<!ENTITY therefore "&#x2234;">
<!ENTITY Therefore "&#x2234;">
<!ENTITY becaus "&#x2235;">
<!ENTITY because "&#x2235;">
<!ENTITY Because "&#x2235;">
<!ENTITY ratio "&#x2236;">
<!ENTITY Colon "&#x2237;">
<!ENTITY Proportion "&#x2237;">
<!ENTITY minusd "&#x2238;">
<!ENTITY dotminus "&#x2238;">
<!ENTITY mDDot "&#x223A;">
<!ENTITY homtht "&#x223B;">
<!ENTITY sim "&#x223C;">
<!ENTITY Tilde "&#x223C;">
<!ENTITY thksim "&#x223C;">
<!ENTITY thicksim "&#x223C;">
<!ENTITY bsim "&#x223D;">
<!ENTITY backsim "&#x223D;">
<!ENTITY ac "&#x223E;">
<!ENTITY mstpos "&#x223E;">
<!ENTITY acd "&#x223F;">
<!ENTITY wreath "&#x2240;">
<!ENTITY VerticalTilde "&#x2240;">
<!ENTITY wr "&#x2240;">
<!ENTITY nsim "&#x2241;">
<!ENTITY NotTilde "&#x2241;">
<!ENTITY esim "&#x2242;">
<!ENTITY EqualTilde "&#x2242;">
<!ENTITY eqsim "&#x2242;">
<!ENTITY sime "&#x2243;">
<!ENTITY TildeEqual "&#x2243;">
<!ENTITY simeq "&#x2243;">
<!ENTITY nsime "&#x2244;">
<!ENTITY nsimeq "&#x2244;">
<!ENTITY NotTildeEqual "&#x2244;">
<!ENTITY cong "&#x2245;">
<!ENTITY TildeFullEqual "&#x2245;">
<!ENTITY simne "&#x2246;">
<!ENTITY ncong "&#x2247;">
<!ENTITY NotTildeFullEqual "&#x2247;">
<!ENTITY asymp "&#x2248;">
<!ENTITY ap "&#x2248;">
<!ENTITY TildeTilde "&#x2248;">
<!ENTITY approx "&#x2248;">
<!ENTITY thkap "&#x2248;">
<!ENTITY thickapprox "&#x2248;">
<!ENTITY nap "&#x2249;">
<!ENTITY NotTildeTilde "&#x2249;">
<!ENTITY napprox "&#x2249;">
<!ENTITY ape "&#x224A;">
<!ENTITY approxeq "&#x224A;">
<!ENTITY apid "&#x224B;">
<!ENTITY bcong "&#x224C;">
<!ENTITY backcong "&#x224C;">
<!ENTITY asympeq "&#x224D;">
<!ENTITY CupCap "&#x224D;">
<!ENTITY bump "&#x224E;">
<!ENTITY HumpDownHump "&#x224E;">
<!ENTITY Bumpeq "&#x224E;">
<!ENTITY bumpe "&#x224F;">
<!ENTITY HumpEqual "&#x224F;">
<!ENTITY bumpeq "&#x224F;">
<!ENTITY esdot "&#x2250;">
<!ENTITY DotEqual "&#x2250;">
<!ENTITY doteq "&#x2250;">
<!ENTITY eDot "&#x2251;">
<!ENTITY doteqdot "&#x2251;">
<!ENTITY efDot "&#x2252;">
<!ENTITY fallingdotseq "&#x2252;">
<!ENTITY erDot "&#x2253;">
<!ENTITY risingdotseq "&#x2253;">
<!ENTITY colone "&#x2254;">
<!ENTITY coloneq "&#x2254;">
<!ENTITY Assign "&#x2254;">
<!ENTITY ecolon "&#x2255;">
<!ENTITY eqcolon "&#x2255;">
<!ENTITY ecir "&#x2256;">
<!ENTITY eqcirc "&#x2256;">
<!ENTITY cire "&#x2257;">
<!ENTITY circeq "&#x2257;">
<!ENTITY wedgeq "&#x2259;">
<!ENTITY veeeq "&#x225A;">
<!ENTITY trie "&#x225C;">
<!ENTITY triangleq "&#x225C;">
<!ENTITY equest "&#x225F;">
<!ENTITY questeq "&#x225F;">
<!ENTITY ne "&#x2260;">
<!ENTITY NotEqual "&#x2260;">
<!ENTITY equiv "&#x2261;">
<!ENTITY Congruent "&#x2261;">
<!ENTITY nequiv "&#x2262;">
<!ENTITY NotCongruent "&#x2262;">
<!ENTITY le "&#x2264;">
<!ENTITY leq "&#x2264;">
<!ENTITY ge "&#x2265;">
<!ENTITY GreaterEqual "&#x2265;">
<!ENTITY geq "&#x2265;">
<!ENTITY lE "&#x2266;">
<!ENTITY LessFullEqual "&#x2266;">
<!ENTITY leqq "&#x2266;">
<!ENTITY gE "&#x2267;">
<!ENTITY GreaterFullEqual "&#x2267;">
<!ENTITY geqq "&#x2267;">
<!ENTITY lnE "&#x2268;">
<!ENTITY lneqq "&#x2268;">
<!ENTITY gnE "&#x2269;">
<!ENTITY gneqq "&#x2269;">
<!ENTITY Lt "&#x226A;">
<!ENTITY NestedLessLess "&#x226A;">
<!ENTITY ll "&#x226A;">
<!ENTITY Gt "&#x226B;">
<!ENTITY NestedGreaterGreater "&#x226B;">
<!ENTITY gg "&#x226B;">
<!ENTITY twixt "&#x226C;">
<!ENTITY between "&#x226C;">
<!ENTITY NotCupCap "&#x226D;">
<!ENTITY nlt "&#x226E;">
<!ENTITY NotLess "&#x226E;">
<!ENTITY nless "&#x226E;">
<!ENTITY ngt "&#x226F;">
<!ENTITY NotGreater "&#x226F;">
<!ENTITY ngtr "&#x226F;">
<!ENTITY nle "&#x2270;">
<!ENTITY NotLessEqual "&#x2270;">
<!ENTITY nleq "&#x2270;">
<!ENTITY nge "&#x2271;">
<!ENTITY NotGreaterEqual "&#x2271;">
<!ENTITY ngeq "&#x2271;">
<!ENTITY lsim "&#x2272;">
<!ENTITY LessTilde "&#x2272;">
<!ENTITY lesssim "&#x2272;">
<!ENTITY gsim "&#x2273;">
<!ENTITY gtrsim "&#x2273;">
<!ENTITY GreaterTilde "&#x2273;">
<!ENTITY nlsim "&#x2274;">
<!ENTITY NotLessTilde "&#x2274;">
<!ENTITY ngsim "&#x2275;">
<!ENTITY NotGreaterTilde "&#x2275;">
<!ENTITY lg "&#x2276;">
<!ENTITY lessgtr "&#x2276;">
<!ENTITY LessGreater "&#x2276;">
<!ENTITY gl "&#x2277;">
<!ENTITY gtrless "&#x2277;">
<!ENTITY GreaterLess "&#x2277;">
<!ENTITY ntlg "&#x2278;">
<!ENTITY NotLessGreater "&#x2278;">
<!ENTITY ntgl "&#x2279;">
<!ENTITY NotGreaterLess "&#x2279;">
<!ENTITY pr "&#x227A;">
<!ENTITY Precedes "&#x227A;">
<!ENTITY prec "&#x227A;">
<!ENTITY sc "&#x227B;">
<!ENTITY Succeeds "&#x227B;">
<!ENTITY succ "&#x227B;">
<!ENTITY prcue "&#x227C;">
<!ENTITY PrecedesSlantEqual "&#x227C;">
<!ENTITY preccurlyeq "&#x227C;">
<!ENTITY sccue "&#x227D;">
<!ENTITY SucceedsSlantEqual "&#x227D;">
<!ENTITY succcurlyeq "&#x227D;">
<!ENTITY prsim "&#x227E;">
<!ENTITY precsim "&#x227E;">
<!ENTITY PrecedesTilde "&#x227E;">
<!ENTITY scsim "&#x227F;">
<!ENTITY succsim "&#x227F;">
<!ENTITY SucceedsTilde "&#x227F;">
<!ENTITY npr "&#x2280;">
<!ENTITY nprec "&#x2280;">
<!ENTITY NotPrecedes "&#x2280;">
<!ENTITY nsc "&#x2281;">
<!ENTITY nsucc "&#x2281;">
<!ENTITY NotSucceeds "&#x2281;">
<!ENTITY sub "&#x2282;">
<!ENTITY subset "&#x2282;">
<!ENTITY sup "&#x2283;">
<!ENTITY supset "&#x2283;">
<!ENTITY Superset "&#x2283;">
<!ENTITY nsub "&#x2284;">
<!ENTITY nsup "&#x2285;">
<!ENTITY sube "&#x2286;">
<!ENTITY SubsetEqual "&#x2286;">
<!ENTITY subseteq "&#x2286;">
<!ENTITY supe "&#x2287;">
<!ENTITY supseteq "&#x2287;">
<!ENTITY SupersetEqual "&#x2287;">
<!ENTITY nsube "&#x2288;">
<!ENTITY nsubseteq "&#x2288;">
<!ENTITY NotSubsetEqual "&#x2288;">
<!ENTITY nsupe "&#x2289;">
<!ENTITY nsupseteq "&#x2289;">
<!ENTITY NotSupersetEqual "&#x2289;">
<!ENTITY subne "&#x228A;">
<!ENTITY subsetneq "&#x228A;">
<!ENTITY supne "&#x228B;">
<!ENTITY supsetneq "&#x228B;">
<!ENTITY cupdot "&#x228D;">
<!ENTITY uplus "&#x228E;">
<!ENTITY UnionPlus "&#x228E;">
<!ENTITY sqsub "&#x228F;">
<!ENTITY SquareSubset "&#x228F;">
<!ENTITY sqsubset "&#x228F;">
<!ENTITY sqsup "&#x2290;">
<!ENTITY SquareSuperset "&#x2290;">
<!ENTITY sqsupset "&#x2290;">
<!ENTITY sqsube "&#x2291;">
<!ENTITY SquareSubsetEqual "&#x2291;">
<!ENTITY sqsubseteq "&#x2291;">
<!ENTITY sqsupe "&#x2292;">
<!ENTITY SquareSupersetEqual "&#x2292;">
<!ENTITY sqsupseteq "&#x2292;">
<!ENTITY sqcap "&#x2293;">
<!ENTITY SquareIntersection "&#x2293;">
<!ENTITY sqcup "&#x2294;">
<!ENTITY SquareUnion "&#x2294;">
<!ENTITY oplus "&#x2295;">
<!ENTITY CirclePlus "&#x2295;">
<!ENTITY ominus "&#x2296;">
<!ENTITY CircleMinus "&#x2296;">
<!ENTITY otimes "&#x2297;">
<!ENTITY CircleTimes "&#x2297;">
<!ENTITY osol "&#x2298;">
<!ENTITY odot "&#x2299;">
<!ENTITY CircleDot "&#x2299;">
<!ENTITY ocir "&#x229A;">
<!ENTITY circledcirc "&#x229A;">
<!ENTITY oast "&#x229B;">
<!ENTITY circledast "&#x229B;">
<!ENTITY odash "&#x229D;">
<!ENTITY circleddash "&#x229D;">
<!ENTITY plusb "&#x229E;">
<!ENTITY boxplus "&#x229E;">
<!ENTITY minusb "&#x229F;">
<!ENTITY boxminus "&#x229F;">
<!ENTITY timesb "&#x22A0;">
<!ENTITY boxtimes "&#x22A0;">
<!ENTITY sdotb "&#x22A1;">
<!ENTITY dotsquare "&#x22A1;">
<!ENTITY vdash "&#x22A2;">
<!ENTITY RightTee "&#x22A2;">
<!ENTITY dashv "&#x22A3;">
<!ENTITY LeftTee "&#x22A3;">
<!ENTITY top "&#x22A4;">
<!ENTITY DownTee "&#x22A4;">
<!ENTITY bottom "&#x22A5;">
<!ENTITY bot "&#x22A5;">
<!ENTITY perp "&#x22A5;">
<!ENTITY UpTee "&#x22A5;">
<!ENTITY models "&#x22A7;">
<!ENTITY vDash "&#x22A8;">
<!ENTITY DoubleRightTee "&#x22A8;">
<!ENTITY Vdash "&#x22A9;">
<!ENTITY Vvdash "&#x22AA;">
<!ENTITY VDash "&#x22AB;">
<!ENTITY nvdash "&#x22AC;">
<!ENTITY nvDash "&#x22AD;">
<!ENTITY nVdash "&#x22AE;">
<!ENTITY nVDash "&#x22AF;">
<!ENTITY prurel "&#x22B0;">
<!ENTITY vltri "&#x22B2;">
<!ENTITY vartriangleleft "&#x22B2;">
<!ENTITY LeftTriangle "&#x22B2;">
<!ENTITY vrtri "&#x22B3;">
<!ENTITY vartriangleright "&#x22B3;">
<!ENTITY RightTriangle "&#x22B3;">
<!ENTITY ltrie "&#x22B4;">
<!ENTITY trianglelefteq "&#x22B4;">
<!ENTITY LeftTriangleEqual "&#x22B4;">
<!ENTITY rtrie "&#x22B5;">
<!ENTITY trianglerighteq "&#x22B5;">
<!ENTITY RightTriangleEqual "&#x22B5;">
<!ENTITY origof "&#x22B6;">
<!ENTITY imof "&#x22B7;">
<!ENTITY mumap "&#x22B8;">
<!ENTITY multimap "&#x22B8;">
<!ENTITY hercon "&#x22B9;">
<!ENTITY intcal "&#x22BA;">
<!ENTITY intercal "&#x22BA;">
<!ENTITY veebar "&#x22BB;">
<!ENTITY barvee "&#x22BD;">
<!ENTITY angrtvb "&#x22BE;">
<!ENTITY lrtri "&#x22BF;">
<!ENTITY xwedge "&#x22C0;">
<!ENTITY Wedge "&#x22C0;">
<!ENTITY bigwedge "&#x22C0;">
<!ENTITY xvee "&#x22C1;">
<!ENTITY Vee "&#x22C1;">
<!ENTITY bigvee "&#x22C1;">
<!ENTITY xcap "&#x22C2;">
<!ENTITY Intersection "&#x22C2;">
<!ENTITY bigcap "&#x22C2;">
<!ENTITY xcup "&#x22C3;">
<!ENTITY Union "&#x22C3;">
<!ENTITY bigcup "&#x22C3;">
<!ENTITY diam "&#x22C4;">
<!ENTITY diamond "&#x22C4;">
<!ENTITY Diamond "&#x22C4;">
<!ENTITY sdot "&#x22C5;">
<!ENTITY sstarf "&#x22C6;">
<!ENTITY Star "&#x22C6;">
<!ENTITY divonx "&#x22C7;">
<!ENTITY divideontimes "&#x22C7;">
<!ENTITY bowtie "&#x22C8;">
<!ENTITY ltimes "&#x22C9;">
<!ENTITY rtimes "&#x22CA;">
<!ENTITY lthree "&#x22CB;">
<!ENTITY leftthreetimes "&#x22CB;">
<!ENTITY rthree "&#x22CC;">
<!ENTITY rightthreetimes "&#x22CC;">
<!ENTITY bsime "&#x22CD;">
<!ENTITY backsimeq "&#x22CD;">
<!ENTITY cuvee "&#x22CE;">
<!ENTITY curlyvee "&#x22CE;">
<!ENTITY cuwed "&#x22CF;">
<!ENTITY curlywedge "&#x22CF;">
<!ENTITY Sub "&#x22D0;">
<!ENTITY Subset "&#x22D0;">
<!ENTITY Sup "&#x22D1;">
<!ENTITY Supset "&#x22D1;">
<!ENTITY Cap "&#x22D2;">
<!ENTITY Cup "&#x22D3;">
<!ENTITY fork "&#x22D4;">
<!ENTITY pitchfork "&#x22D4;">
<!ENTITY epar "&#x22D5;">
<!ENTITY ltdot "&#x22D6;">
<!ENTITY lessdot "&#x22D6;">
<!ENTITY gtdot "&#x22D7;">
<!ENTITY gtrdot "&#x22D7;">
<!ENTITY Ll "&#x22D8;">
<!ENTITY Gg "&#x22D9;">
<!ENTITY ggg "&#x22D9;">
<!ENTITY leg "&#x22DA;">
<!ENTITY LessEqualGreater "&#x22DA;">
<!ENTITY lesseqgtr "&#x22DA;">
<!ENTITY gel "&#x22DB;">
<!ENTITY gtreqless "&#x22DB;">
<!ENTITY GreaterEqualLess "&#x22DB;">
<!ENTITY cuepr "&#x22DE;">
<!ENTITY curlyeqprec "&#x22DE;">
<!ENTITY cuesc "&#x22DF;">
<!ENTITY curlyeqsucc "&#x22DF;">
<!ENTITY nprcue "&#x22E0;">
<!ENTITY NotPrecedesSlantEqual "&#x22E0;">
<!ENTITY nsccue "&#x22E1;">
<!ENTITY NotSucceedsSlantEqual "&#x22E1;">
<!ENTITY nsqsube "&#x22E2;">
<!ENTITY NotSquareSubsetEqual "&#x22E2;">
<!ENTITY nsqsupe "&#x22E3;">
<!ENTITY NotSquareSupersetEqual "&#x22E3;">
<!ENTITY lnsim "&#x22E6;">
<!ENTITY gnsim "&#x22E7;">
<!ENTITY prnsim "&#x22E8;">
<!ENTITY precnsim "&#x22E8;">
<!ENTITY scnsim "&#x22E9;">
<!ENTITY succnsim "&#x22E9;">
<!ENTITY nltri "&#x22EA;">
<!ENTITY ntriangleleft "&#x22EA;">
<!ENTITY NotLeftTriangle "&#x22EA;">
<!ENTITY nrtri "&#x22EB;">
<!ENTITY ntriangleright "&#x22EB;">
<!ENTITY NotRightTriangle "&#x22EB;">
<!ENTITY nltrie "&#x22EC;">
<!ENTITY ntrianglelefteq "&#x22EC;">
<!ENTITY NotLeftTriangleEqual "&#x22EC;">
<!ENTITY nrtrie "&#x22ED;">
<!ENTITY ntrianglerighteq "&#x22ED;">
<!ENTITY NotRightTriangleEqual "&#x22ED;">
<!ENTITY vellip "&#x22EE;">
<!ENTITY ctdot "&#x22EF;">
<!ENTITY utdot "&#x22F0;">
<!ENTITY dtdot "&#x22F1;">
<!ENTITY disin "&#x22F2;">
<!ENTITY isinsv "&#x22F3;">
<!ENTITY isins "&#x22F4;">
<!ENTITY isindot "&#x22F5;">
<!ENTITY notinvc "&#x22F6;">
<!ENTITY notinvb "&#x22F7;">
<!ENTITY isinE "&#x22F9;">
<!ENTITY nisd "&#x22FA;">
<!ENTITY xnis "&#x22FB;">
<!ENTITY nis "&#x22FC;">
<!ENTITY notnivc "&#x22FD;">
<!ENTITY notnivb "&#x22FE;">
<!ENTITY barwed "&#x2305;">
<!ENTITY barwedge "&#x2305;">
<!ENTITY Barwed "&#x2306;">
<!ENTITY doublebarwedge "&#x2306;">
<!ENTITY lceil "&#x2308;">
<!ENTITY LeftCeiling "&#x2308;">
<!ENTITY rceil "&#x2309;">
<!ENTITY RightCeiling "&#x2309;">
<!ENTITY lfloor "&#x230A;">
<!ENTITY LeftFloor "&#x230A;">
<!ENTITY rfloor "&#x230B;">
<!ENTITY RightFloor "&#x230B;">
<!ENTITY drcrop "&#x230C;">
<!ENTITY dlcrop "&#x230D;">
<!ENTITY urcrop "&#x230E;">
<!ENTITY ulcrop "&#x230F;">
<!ENTITY bnot "&#x2310;">
<!ENTITY profline "&#x2312;">
<!ENTITY profsurf "&#x2313;">
<!ENTITY telrec "&#x2315;">
<!ENTITY target "&#x2316;">
<!ENTITY ulcorn "&#x231C;">
<!ENTITY ulcorner "&#x231C;">
<!ENTITY urcorn "&#x231D;">
<!ENTITY urcorner "&#x231D;">
<!ENTITY dlcorn "&#x231E;">
<!ENTITY llcorner "&#x231E;">
<!ENTITY drcorn "&#x231F;">
<!ENTITY lrcorner "&#x231F;">
<!ENTITY frown "&#x2322;">
<!ENTITY sfrown "&#x2322;">
<!ENTITY smile "&#x2323;">
<!ENTITY ssmile "&#x2323;">
<!ENTITY cylcty "&#x232D;">
<!ENTITY profalar "&#x232E;">
<!ENTITY topbot "&#x2336;">
<!ENTITY ovbar "&#x233D;">
<!ENTITY solbar "&#x233F;">
<!ENTITY angzarr "&#x237C;">
<!ENTITY lmoust "&#x23B0;">
<!ENTITY lmoustache "&#x23B0;">
<!ENTITY rmoust "&#x23B1;">
<!ENTITY rmoustache "&#x23B1;">
<!ENTITY tbrk "&#x23B4;">
<!ENTITY OverBracket "&#x23B4;">
<!ENTITY bbrk "&#x23B5;">
<!ENTITY UnderBracket "&#x23B5;">
<!ENTITY bbrktbrk "&#x23B6;">
<!ENTITY OverParenthesis "&#x23DC;">
<!ENTITY UnderParenthesis "&#x23DD;">
<!ENTITY OverBrace "&#x23DE;">
<!ENTITY UnderBrace "&#x23DF;">
<!ENTITY trpezium "&#x23E2;">
<!ENTITY elinters "&#x23E7;">
<!ENTITY blank "&#x2423;">
<!ENTITY oS "&#x24C8;">
<!ENTITY circledS "&#x24C8;">
<!ENTITY boxh "&#x2500;">
<!ENTITY HorizontalLine "&#x2500;">
<!ENTITY boxv "&#x2502;">
<!ENTITY boxdr "&#x250C;">
<!ENTITY boxdl "&#x2510;">
<!ENTITY boxur "&#x2514;">
<!ENTITY boxul "&#x2518;">
<!ENTITY boxvr "&#x251C;">
<!ENTITY boxvl "&#x2524;">
<!ENTITY boxhd "&#x252C;">
<!ENTITY boxhu "&#x2534;">
<!ENTITY boxvh "&#x253C;">
<!ENTITY boxH "&#x2550;">
<!ENTITY boxV "&#x2551;">
<!ENTITY boxdR "&#x2552;">
<!ENTITY boxDr "&#x2553;">
<!ENTITY boxDR "&#x2554;">
<!ENTITY boxdL "&#x2555;">
<!ENTITY boxDl "&#x2556;">
<!ENTITY boxDL "&#x2557;">
<!ENTITY boxuR "&#x2558;">
<!ENTITY boxUr "&#x2559;">
<!ENTITY boxUR "&#x255A;">
<!ENTITY boxuL "&#x255B;">
<!ENTITY boxUl "&#x255C;">
<!ENTITY boxUL "&#x255D;">
<!ENTITY boxvR "&#x255E;">
<!ENTITY boxVr "&#x255F;">
<!ENTITY boxVR "&#x2560;">
<!ENTITY boxvL "&#x2561;">
<!ENTITY boxVl "&#x2562;">
<!ENTITY boxVL "&#x2563;">
<!ENTITY boxHd "&#x2564;">
<!ENTITY boxhD "&#x2565;">
<!ENTITY boxHD "&#x2566;">
<!ENTITY boxHu "&#x2567;">
<!ENTITY boxhU "&#x2568;">
<!ENTITY boxHU "&#x2569;">
<!ENTITY boxvH "&#x256A;">
<!ENTITY boxVh "&#x256B;">
<!ENTITY boxVH "&#x256C;">
<!ENTITY uhblk "&#x2580;">
<!ENTITY lhblk "&#x2584;">
<!ENTITY block "&#x2588;">
<!ENTITY blk14 "&#x2591;">
<!ENTITY blk12 "&#x2592;">
<!ENTITY blk34 "&#x2593;">
<!ENTITY squ "&#x25A1;">
<!ENTITY square "&#x25A1;">
<!ENTITY Square "&#x25A1;">
<!ENTITY squf "&#x25AA;">
<!ENTITY squarf "&#x25AA;">
<!ENTITY blacksquare "&#x25AA;">
<!ENTITY FilledVerySmallSquare "&#x25AA;">
<!ENTITY EmptyVerySmallSquare "&#x25AB;">
<!ENTITY rect "&#x25AD;">
<!ENTITY marker "&#x25AE;">
<!ENTITY fltns "&#x25B1;">
<!ENTITY xutri "&#x25B3;">
<!ENTITY bigtriangleup "&#x25B3;">
<!ENTITY utrif "&#x25B4;">
<!ENTITY blacktriangle "&#x25B4;">
<!ENTITY utri "&#x25B5;">
<!ENTITY triangle "&#x25B5;">
<!ENTITY rtrif "&#x25B8;">
<!ENTITY blacktriangleright "&#x25B8;">
<!ENTITY rtri "&#x25B9;">
<!ENTITY triangleright "&#x25B9;">
<!ENTITY xdtri "&#x25BD;">
<!ENTITY bigtriangledown "&#x25BD;">
<!ENTITY dtrif "&#x25BE;">
<!ENTITY blacktriangledown "&#x25BE;">
<!ENTITY dtri "&#x25BF;">
<!ENTITY triangledown "&#x25BF;">
<!ENTITY ltrif "&#x25C2;">
<!ENTITY blacktriangleleft "&#x25C2;">
<!ENTITY ltri "&#x25C3;">
<!ENTITY triangleleft "&#x25C3;">
<!ENTITY loz "&#x25CA;">
<!ENTITY lozenge "&#x25CA;">
<!ENTITY cir "&#x25CB;">
<!ENTITY tridot "&#x25EC;">
<!ENTITY xcirc "&#x25EF;">
<!ENTITY bigcirc "&#x25EF;">
<!ENTITY ultri "&#x25F8;">
<!ENTITY urtri "&#x25F9;">
<!ENTITY lltri "&#x25FA;">
<!ENTITY EmptySmallSquare "&#x25FB;">
<!ENTITY FilledSmallSquare "&#x25FC;">
<!ENTITY starf "&#x2605;">
<!ENTITY bigstar "&#x2605;">
<!ENTITY star "&#x2606;">
<!ENTITY phone "&#x260E;">
<!ENTITY female "&#x2640;">
<!ENTITY male "&#x2642;">
<!ENTITY spades "&#x2660;">
<!ENTITY spadesuit "&#x2660;">
<!ENTITY clubs "&#x2663;">
<!ENTITY clubsuit "&#x2663;">
<!ENTITY hearts "&#x2665;">
<!ENTITY heartsuit "&#x2665;">
<!ENTITY diams "&#x2666;">
<!ENTITY diamondsuit "&#x2666;">
<!ENTITY sung "&#x266A;">
<!ENTITY flat "&#x266D;">
<!ENTITY natur "&#x266E;">
<!ENTITY natural "&#x266E;">
<!ENTITY sharp "&#x266F;">
<!ENTITY check "&#x2713;">
<!ENTITY checkmark "&#x2713;">
<!ENTITY cross "&#x2717;">
<!ENTITY malt "&#x2720;">
<!ENTITY maltese "&#x2720;">
<!ENTITY sext "&#x2736;">
<!ENTITY VerticalSeparator "&#x2758;">
<!ENTITY lbbrk "&#x2772;">
<!ENTITY rbbrk "&#x2773;">
<!ENTITY bsolhsub "&#x27C8;">
<!ENTITY suphsol "&#x27C9;">
<!ENTITY lobrk "&#x27E6;">
<!ENTITY LeftDoubleBracket "&#x27E6;">
<!ENTITY robrk "&#x27E7;">
<!ENTITY RightDoubleBracket "&#x27E7;">
<!ENTITY lang "&#x27E8;">
<!ENTITY LeftAngleBracket "&#x27E8;">
<!ENTITY langle "&#x27E8;">
<!ENTITY rang "&#x27E9;">
<!ENTITY RightAngleBracket "&#x27E9;">
<!ENTITY rangle "&#x27E9;">
<!ENTITY Lang "&#x27EA;">
<!ENTITY Rang "&#x27EB;">
<!ENTITY loang "&#x27EC;">
<!ENTITY roang "&#x27ED;">
<!ENTITY xlarr "&#x27F5;">
<!ENTITY longleftarrow "&#x27F5;">
<!ENTITY LongLeftArrow "&#x27F5;">
<!ENTITY xrarr "&#x27F6;">
<!ENTITY longrightarrow "&#x27F6;">
<!ENTITY LongRightArrow "&#x27F6;">
<!ENTITY xharr "&#x27F7;">
<!ENTITY longleftrightarrow "&#x27F7;">
<!ENTITY LongLeftRightArrow "&#x27F7;">
<!ENTITY xlArr "&#x27F8;">
<!ENTITY Longleftarrow "&#x27F8;">
<!ENTITY DoubleLongLeftArrow "&#x27F8;">
<!ENTITY xrArr "&#x27F9;">
<!ENTITY Longrightarrow "&#x27F9;">
<!ENTITY DoubleLongRightArrow "&#x27F9;">
<!ENTITY xhArr "&#x27FA;">
<!ENTITY Longleftrightarrow "&#x27FA;">
<!ENTITY DoubleLongLeftRightArrow "&#x27FA;">
<!ENTITY xmap "&#x27FC;">
<!ENTITY longmapsto "&#x27FC;">
<!ENTITY dzigrarr "&#x27FF;">
<!ENTITY nvlArr "&#x2902;">
<!ENTITY nvrArr "&#x2903;">
<!ENTITY nvHarr "&#x2904;">
<!ENTITY Map "&#x2905;">
<!ENTITY lbarr "&#x290C;">
<!ENTITY rbarr "&#x290D;">
<!ENTITY bkarow "&#x290D;">
<!ENTITY lBarr "&#x290E;">
<!ENTITY rBarr "&#x290F;">
<!ENTITY dbkarow "&#x290F;">
<!ENTITY RBarr "&#x2910;">
<!ENTITY drbkarow "&#x2910;">
<!ENTITY DDotrahd "&#x2911;">
<!ENTITY UpArrowBar "&#x2912;">
<!ENTITY DownArrowBar "&#x2913;">
<!ENTITY Rarrtl "&#x2916;">
<!ENTITY latail "&#x2919;">
<!ENTITY ratail "&#x291A;">
<!ENTITY lAtail "&#x291B;">
<!ENTITY rAtail "&#x291C;">
<!ENTITY larrfs "&#x291D;">
<!ENTITY rarrfs "&#x291E;">
<!ENTITY larrbfs "&#x291F;">
<!ENTITY rarrbfs "&#x2920;">
<!ENTITY nwarhk "&#x2923;">
<!ENTITY nearhk "&#x2924;">
<!ENTITY searhk "&#x2925;">
<!ENTITY hksearow "&#x2925;">
<!ENTITY swarhk "&#x2926;">
<!ENTITY hkswarow "&#x2926;">
<!ENTITY nwnear "&#x2927;">
<!ENTITY nesear "&#x2928;">
<!ENTITY toea "&#x2928;">
<!ENTITY seswar "&#x2929;">
<!ENTITY tosa "&#x2929;">
<!ENTITY swnwar "&#x292A;">
<!ENTITY rarrc "&#x2933;">
<!ENTITY cudarrr "&#x2935;">
<!ENTITY ldca "&#x2936;">
<!ENTITY rdca "&#x2937;">
<!ENTITY cudarrl "&#x2938;">
<!ENTITY larrpl "&#x2939;">
<!ENTITY curarrm "&#x293C;">
<!ENTITY cularrp "&#x293D;">
<!ENTITY rarrpl "&#x2945;">
<!ENTITY harrcir "&#x2948;">
<!ENTITY Uarrocir "&#x2949;">
<!ENTITY lurdshar "&#x294A;">
<!ENTITY ldrushar "&#x294B;">
<!ENTITY LeftRightVector "&#x294E;">
<!ENTITY RightUpDownVector "&#x294F;">
<!ENTITY DownLeftRightVector "&#x2950;">
<!ENTITY LeftUpDownVector "&#x2951;">
<!ENTITY LeftVectorBar "&#x2952;">
<!ENTITY RightVectorBar "&#x2953;">
<!ENTITY RightUpVectorBar "&#x2954;">
<!ENTITY RightDownVectorBar "&#x2955;">
<!ENTITY DownLeftVectorBar "&#x2956;">
<!ENTITY DownRightVectorBar "&#x2957;">
<!ENTITY LeftUpVectorBar "&#x2958;">
<!ENTITY LeftDownVectorBar "&#x2959;">
<!ENTITY LeftTeeVector "&#x295A;">
<!ENTITY RightTeeVector "&#x295B;">
<!ENTITY RightUpTeeVector "&#x295C;">
<!ENTITY RightDownTeeVector "&#x295D;">
<!ENTITY DownLeftTeeVector "&#x295E;">
<!ENTITY DownRightTeeVector "&#x295F;">
<!ENTITY LeftUpTeeVector "&#x2960;">
<!ENTITY LeftDownTeeVector "&#x2961;">
<!ENTITY lHar "&#x2962;">
<!ENTITY uHar "&#x2963;">
<!ENTITY rHar "&#x2964;">
<!ENTITY dHar "&#x2965;">
<!ENTITY luruhar "&#x2966;">
<!ENTITY ldrdhar "&#x2967;">
<!ENTITY ruluhar "&#x2968;">
<!ENTITY rdldhar "&#x2969;">
<!ENTITY lharul "&#x296A;">
<!ENTITY llhard "&#x296B;">
<!ENTITY rharul "&#x296C;">
<!ENTITY lrhard "&#x296D;">
<!ENTITY udhar "&#x296E;">
<!ENTITY UpEquilibrium "&#x296E;">
<!ENTITY duhar "&#x296F;">
<!ENTITY ReverseUpEquilibrium "&#x296F;">
<!ENTITY RoundImplies "&#x2970;">
<!ENTITY erarr "&#x2971;">
<!ENTITY simrarr "&#x2972;">
<!ENTITY larrsim "&#x2973;">
<!ENTITY rarrsim "&#x2974;">
<!ENTITY rarrap "&#x2975;">
<!ENTITY ltlarr "&#x2976;">
<!ENTITY gtrarr "&#x2978;">
<!ENTITY subrarr "&#x2979;">
<!ENTITY suplarr "&#x297B;">
<!ENTITY lfisht "&#x297C;">
<!ENTITY rfisht "&#x297D;">
<!ENTITY ufisht "&#x297E;">
<!ENTITY dfisht "&#x297F;">
<!ENTITY lopar "&#x2985;">
<!ENTITY ropar "&#x2986;">
<!ENTITY lbrke "&#x298B;">
<!ENTITY rbrke "&#x298C;">
<!ENTITY lbrkslu "&#x298D;">
<!ENTITY rbrksld "&#x298E;">
<!ENTITY lbrksld "&#x298F;">
<!ENTITY rbrkslu "&#x2990;">
<!ENTITY langd "&#x2991;">
<!ENTITY rangd "&#x2992;">
<!ENTITY lparlt "&#x2993;">
<!ENTITY rpargt "&#x2994;">
<!ENTITY gtlPar "&#x2995;">
<!ENTITY ltrPar "&#x2996;">
<!ENTITY vzigzag "&#x299A;">
<!ENTITY vangrt "&#x299C;">
<!ENTITY angrtvbd "&#x299D;">
<!ENTITY ange "&#x29A4;">
<!ENTITY range "&#x29A5;">
<!ENTITY dwangle "&#x29A6;">
<!ENTITY uwangle "&#x29A7;">
<!ENTITY angmsdaa "&#x29A8;">
<!ENTITY angmsdab "&#x29A9;">
<!ENTITY angmsdac "&#x29AA;">
<!ENTITY angmsdad "&#x29AB;">
<!ENTITY angmsdae "&#x29AC;">
<!ENTITY angmsdaf "&#x29AD;">
<!ENTITY angmsdag "&#x29AE;">
<!ENTITY angmsdah "&#x29AF;">
<!ENTITY bemptyv "&#x29B0;">
<!ENTITY demptyv "&#x29B1;">
<!ENTITY cemptyv "&#x29B2;">
<!ENTITY raemptyv "&#x29B3;">
<!ENTITY laemptyv "&#x29B4;">
<!ENTITY ohbar "&#x29B5;">
<!ENTITY omid "&#x29B6;">
<!ENTITY opar "&#x29B7;">
<!ENTITY operp "&#x29B9;">
<!ENTITY olcross "&#x29BB;">
<!ENTITY odsold "&#x29BC;">
<!ENTITY olcir "&#x29BE;">
<!ENTITY ofcir "&#x29BF;">
<!ENTITY olt "&#x29C0;">
<!ENTITY ogt "&#x29C1;">
<!ENTITY cirscir "&#x29C2;">
<!ENTITY cirE "&#x29C3;">
<!ENTITY solb "&#x29C4;">
<!ENTITY bsolb "&#x29C5;">
<!ENTITY boxbox "&#x29C9;">
<!ENTITY trisb "&#x29CD;">
<!ENTITY rtriltri "&#x29CE;">
<!ENTITY LeftTriangleBar "&#x29CF;">
<!ENTITY RightTriangleBar "&#x29D0;">
<!ENTITY iinfin "&#x29DC;">
<!ENTITY infintie "&#x29DD;">
<!ENTITY nvinfin "&#x29DE;">
<!ENTITY eparsl "&#x29E3;">
<!ENTITY smeparsl "&#x29E4;">
<!ENTITY eqvparsl "&#x29E5;">
<!ENTITY lozf "&#x29EB;">
<!ENTITY blacklozenge "&#x29EB;">
<!ENTITY RuleDelayed "&#x29F4;">
<!ENTITY dsol "&#x29F6;">
<!ENTITY xodot "&#x2A00;">
<!ENTITY bigodot "&#x2A00;">
<!ENTITY xoplus "&#x2A01;">
<!ENTITY bigoplus "&#x2A01;">
<!ENTITY xotime "&#x2A02;">
<!ENTITY bigotimes "&#x2A02;">
<!ENTITY xuplus "&#x2A04;">
<!ENTITY biguplus "&#x2A04;">
<!ENTITY xsqcup "&#x2A06;">
<!ENTITY bigsqcup "&#x2A06;">
<!ENTITY qint "&#x2A0C;">
<!ENTITY iiiint "&#x2A0C;">
<!ENTITY fpartint "&#x2A0D;">
<!ENTITY cirfnint "&#x2A10;">
<!ENTITY awint "&#x2A11;">
<!ENTITY rppolint "&#x2A12;">
<!ENTITY scpolint "&#x2A13;">
<!ENTITY npolint "&#x2A14;">
<!ENTITY pointint "&#x2A15;">
<!ENTITY quatint "&#x2A16;">
<!ENTITY intlarhk "&#x2A17;">
<!ENTITY pluscir "&#x2A22;">
<!ENTITY plusacir "&#x2A23;">
<!ENTITY simplus "&#x2A24;">
<!ENTITY plusdu "&#x2A25;">
<!ENTITY plussim "&#x2A26;">
<!ENTITY plustwo "&#x2A27;">
<!ENTITY mcomma "&#x2A29;">
<!ENTITY minusdu "&#x2A2A;">
<!ENTITY loplus "&#x2A2D;">
<!ENTITY roplus "&#x2A2E;">
<!ENTITY Cross "&#x2A2F;">
<!ENTITY timesd "&#x2A30;">
<!ENTITY timesbar "&#x2A31;">
<!ENTITY smashp "&#x2A33;">
<!ENTITY lotimes "&#x2A34;">
<!ENTITY rotimes "&#x2A35;">
<!ENTITY otimesas "&#x2A36;">
<!ENTITY Otimes "&#x2A37;">
<!ENTITY odiv "&#x2A38;">
<!ENTITY triplus "&#x2A39;">
<!ENTITY triminus "&#x2A3A;">
<!ENTITY tritime "&#x2A3B;">
<!ENTITY iprod "&#x2A3C;">
<!ENTITY intprod "&#x2A3C;">
<!ENTITY amalg "&#x2A3F;">
<!ENTITY capdot "&#x2A40;">
<!ENTITY ncup "&#x2A42;">
<!ENTITY ncap "&#x2A43;">
<!ENTITY capand "&#x2A44;">
<!ENTITY cupor "&#x2A45;">
<!ENTITY cupcap "&#x2A46;">
<!ENTITY capcup "&#x2A47;">
<!ENTITY cupbrcap "&#x2A48;">
<!ENTITY capbrcup "&#x2A49;">
<!ENTITY cupcup "&#x2A4A;">
<!ENTITY capcap "&#x2A4B;">
<!ENTITY ccups "&#x2A4C;">
<!ENTITY ccaps "&#x2A4D;">
<!ENTITY ccupssm "&#x2A50;">
<!ENTITY And "&#x2A53;">
<!ENTITY Or "&#x2A54;">
<!ENTITY andand "&#x2A55;">
<!ENTITY oror "&#x2A56;">
<!ENTITY orslope "&#x2A57;">
<!ENTITY andslope "&#x2A58;">
<!ENTITY andv "&#x2A5A;">
<!ENTITY orv "&#x2A5B;">
<!ENTITY andd "&#x2A5C;">
<!ENTITY ord "&#x2A5D;">
<!ENTITY wedbar "&#x2A5F;">
<!ENTITY sdote "&#x2A66;">
<!ENTITY simdot "&#x2A6A;">
<!ENTITY congdot "&#x2A6D;">
<!ENTITY easter "&#x2A6E;">
<!ENTITY apacir "&#x2A6F;">
<!ENTITY apE "&#x2A70;">
<!ENTITY eplus "&#x2A71;">
<!ENTITY pluse "&#x2A72;">
<!ENTITY Esim "&#x2A73;">
<!ENTITY Colone "&#x2A74;">
<!ENTITY Equal "&#x2A75;">
<!ENTITY eDDot "&#x2A77;">
<!ENTITY ddotseq "&#x2A77;">
<!ENTITY equivDD "&#x2A78;">
<!ENTITY ltcir "&#x2A79;">
<!ENTITY gtcir "&#x2A7A;">
<!ENTITY ltquest "&#x2A7B;">
<!ENTITY gtquest "&#x2A7C;">
<!ENTITY les "&#x2A7D;">
<!ENTITY LessSlantEqual "&#x2A7D;">
<!ENTITY leqslant "&#x2A7D;">
<!ENTITY ges "&#x2A7E;">
<!ENTITY GreaterSlantEqual "&#x2A7E;">
<!ENTITY geqslant "&#x2A7E;">
<!ENTITY lesdot "&#x2A7F;">
<!ENTITY gesdot "&#x2A80;">
<!ENTITY lesdoto "&#x2A81;">
<!ENTITY gesdoto "&#x2A82;">
<!ENTITY lesdotor "&#x2A83;">
<!ENTITY gesdotol "&#x2A84;">
<!ENTITY lap "&#x2A85;">
<!ENTITY lessapprox "&#x2A85;">
<!ENTITY gap "&#x2A86;">
<!ENTITY gtrapprox "&#x2A86;">
<!ENTITY lne "&#x2A87;">
<!ENTITY lneq "&#x2A87;">
<!ENTITY gne "&#x2A88;">
<!ENTITY gneq "&#x2A88;">
<!ENTITY lnap "&#x2A89;">
<!ENTITY lnapprox "&#x2A89;">
<!ENTITY gnap "&#x2A8A;">
<!ENTITY gnapprox "&#x2A8A;">
<!ENTITY lEg "&#x2A8B;">
<!ENTITY lesseqqgtr "&#x2A8B;">
<!ENTITY gEl "&#x2A8C;">
<!ENTITY gtreqqless "&#x2A8C;">
<!ENTITY lsime "&#x2A8D;">
<!ENTITY gsime "&#x2A8E;">
<!ENTITY lsimg "&#x2A8F;">
<!ENTITY gsiml "&#x2A90;">
<!ENTITY lgE "&#x2A91;">
<!ENTITY glE "&#x2A92;">
<!ENTITY lesges "&#x2A93;">
<!ENTITY gesles "&#x2A94;">
<!ENTITY els "&#x2A95;">
<!ENTITY eqslantless "&#x2A95;">
<!ENTITY egs "&#x2A96;">
<!ENTITY eqslantgtr "&#x2A96;">
<!ENTITY elsdot "&#x2A97;">
<!ENTITY egsdot "&#x2A98;">
<!ENTITY el "&#x2A99;">
<!ENTITY eg "&#x2A9A;">
<!ENTITY siml "&#x2A9D;">
<!ENTITY simg "&#x2A9E;">
<!ENTITY simlE "&#x2A9F;">
<!ENTITY simgE "&#x2AA0;">
<!ENTITY LessLess "&#x2AA1;">
<!ENTITY GreaterGreater "&#x2AA2;">
<!ENTITY glj "&#x2AA4;">
<!ENTITY gla "&#x2AA5;">
<!ENTITY ltcc "&#x2AA6;">
<!ENTITY gtcc "&#x2AA7;">
<!ENTITY lescc "&#x2AA8;">
<!ENTITY gescc "&#x2AA9;">
<!ENTITY smt "&#x2AAA;">
<!ENTITY lat "&#x2AAB;">
<!ENTITY smte "&#x2AAC;">
<!ENTITY late "&#x2AAD;">
<!ENTITY bumpE "&#x2AAE;">
<!ENTITY pre "&#x2AAF;">
<!ENTITY preceq "&#x2AAF;">
<!ENTITY PrecedesEqual "&#x2AAF;">
<!ENTITY sce "&#x2AB0;">
<!ENTITY succeq "&#x2AB0;">
<!ENTITY SucceedsEqual "&#x2AB0;">
<!ENTITY prE "&#x2AB3;">
<!ENTITY scE "&#x2AB4;">
<!ENTITY prnE "&#x2AB5;">
<!ENTITY precneqq "&#x2AB5;">
<!ENTITY scnE "&#x2AB6;">
<!ENTITY succneqq "&#x2AB6;">
<!ENTITY prap "&#x2AB7;">
<!ENTITY precapprox "&#x2AB7;">
<!ENTITY scap "&#x2AB8;">
<!ENTITY succapprox "&#x2AB8;">
<!ENTITY prnap "&#x2AB9;">
<!ENTITY precnapprox "&#x2AB9;">
<!ENTITY scnap "&#x2ABA;">
<!ENTITY succnapprox "&#x2ABA;">
<!ENTITY Pr "&#x2ABB;">
<!ENTITY Sc "&#x2ABC;">
<!ENTITY subdot "&#x2ABD;">
<!ENTITY supdot "&#x2ABE;">
<!ENTITY subplus "&#x2ABF;">
<!ENTITY supplus "&#x2AC0;">
<!ENTITY submult "&#x2AC1;">
<!ENTITY supmult "&#x2AC2;">
<!ENTITY subedot "&#x2AC3;">
<!ENTITY supedot "&#x2AC4;">
<!ENTITY subE "&#x2AC5;">
<!ENTITY subseteqq "&#x2AC5;">
<!ENTITY supE "&#x2AC6;">
<!ENTITY supseteqq "&#x2AC6;">
<!ENTITY subsim "&#x2AC7;">
<!ENTITY supsim "&#x2AC8;">
<!ENTITY subnE "&#x2ACB;">
<!ENTITY subsetneqq "&#x2ACB;">
<!ENTITY supnE "&#x2ACC;">
<!ENTITY supsetneqq "&#x2ACC;">
<!ENTITY csub "&#x2ACF;">
<!ENTITY csup "&#x2AD0;">
<!ENTITY csube "&#x2AD1;">
<!ENTITY csupe "&#x2AD2;">
<!ENTITY subsup "&#x2AD3;">
<!ENTITY supsub "&#x2AD4;">
<!ENTITY subsub "&#x2AD5;">
<!ENTITY supsup "&#x2AD6;">
<!ENTITY suphsub "&#x2AD7;">
<!ENTITY supdsub "&#x2AD8;">
<!ENTITY forkv "&#x2AD9;">
<!ENTITY topfork "&#x2ADA;">
<!ENTITY mlcp "&#x2ADB;">
<!ENTITY Dashv "&#x2AE4;">
<!ENTITY DoubleLeftTee "&#x2AE4;">
<!ENTITY Vdashl "&#x2AE6;">
<!ENTITY Barv "&#x2AE7;">
<!ENTITY vBar "&#x2AE8;">
<!ENTITY vBarv "&#x2AE9;">
<!ENTITY Vbar "&#x2AEB;">
<!ENTITY Not "&#x2AEC;">
<!ENTITY bNot "&#x2AED;">
<!ENTITY rnmid "&#x2AEE;">
<!ENTITY cirmid "&#x2AEF;">
<!ENTITY midcir "&#x2AF0;">
<!ENTITY topcir "&#x2AF1;">
<!ENTITY nhpar "&#x2AF2;">
<!ENTITY parsim "&#x2AF3;">
<!ENTITY parsl "&#x2AFD;">
<!ENTITY fflig "&#xFB00;">
<!ENTITY filig "&#xFB01;">
<!ENTITY fllig "&#xFB02;">
<!ENTITY ffilig "&#xFB03;">
<!ENTITY ffllig "&#xFB04;">
<!ENTITY Ascr "&#x1D49C;">
<!ENTITY Cscr "&#x1D49E;">
<!ENTITY Dscr "&#x1D49F;">
<!ENTITY Gscr "&#x1D4A2;">
<!ENTITY Jscr "&#x1D4A5;">
<!ENTITY Kscr "&#x1D4A6;">
<!ENTITY Nscr "&#x1D4A9;">
<!ENTITY Oscr "&#x1D4AA;">
<!ENTITY Pscr "&#x1D4AB;">
<!ENTITY Qscr "&#x1D4AC;">
<!ENTITY Sscr "&#x1D4AE;">
<!ENTITY Tscr "&#x1D4AF;">
<!ENTITY Uscr "&#x1D4B0;">
<!ENTITY Vscr "&#x1D4B1;">
<!ENTITY Wscr "&#x1D4B2;">
<!ENTITY Xscr "&#x1D4B3;">
<!ENTITY Yscr "&#x1D4B4;">
<!ENTITY Zscr "&#x1D4B5;">
<!ENTITY ascr "&#x1D4B6;">
<!ENTITY bscr "&#x1D4B7;">
<!ENTITY cscr "&#x1D4B8;">
<!ENTITY dscr "&#x1D4B9;">
<!ENTITY fscr "&#x1D4BB;">
<!ENTITY hscr "&#x1D4BD;">
<!ENTITY iscr "&#x1D4BE;">
<!ENTITY jscr "&#x1D4BF;">
<!ENTITY kscr "&#x1D4C0;">
<!ENTITY lscr "&#x1D4C1;">
<!ENTITY mscr "&#x1D4C2;">
<!ENTITY nscr "&#x1D4C3;">
<!ENTITY pscr "&#x1D4C5;">
<!ENTITY qscr "&#x1D4C6;">
<!ENTITY rscr "&#x1D4C7;">
<!ENTITY sscr "&#x1D4C8;">
<!ENTITY tscr "&#x1D4C9;">
<!ENTITY uscr "&#x1D4CA;">
<!ENTITY vscr "&#x1D4CB;">
<!ENTITY wscr "&#x1D4CC;">
<!ENTITY xscr "&#x1D4CD;">
<!ENTITY yscr "&#x1D4CE;">
<!ENTITY zscr "&#x1D4CF;">
<!ENTITY Afr "&#x1D504;">
<!ENTITY Bfr "&#x1D505;">
<!ENTITY Dfr "&#x1D507;">
<!ENTITY Efr "&#x1D508;">
<!ENTITY Ffr "&#x1D509;">
<!ENTITY Gfr "&#x1D50A;">
<!ENTITY Jfr "&#x1D50D;">
<!ENTITY Kfr "&#x1D50E;">
<!ENTITY Lfr "&#x1D50F;">
<!ENTITY Mfr "&#x1D510;">
<!ENTITY Nfr "&#x1D511;">
<!ENTITY Ofr "&#x1D512;">
<!ENTITY Pfr "&#x1D513;">
<!ENTITY Qfr "&#x1D514;">
<!ENTITY Sfr "&#x1D516;">
<!ENTITY Tfr "&#x1D517;">
<!ENTITY Ufr "&#x1D518;">
<!ENTITY Vfr "&#x1D519;">
<!ENTITY Wfr "&#x1D51A;">
<!ENTITY Xfr "&#x1D51B;">
<!ENTITY Yfr "&#x1D51C;">
<!ENTITY afr "&#x1D51E;">
<!ENTITY bfr "&#x1D51F;">
<!ENTITY cfr "&#x1D520;">
<!ENTITY dfr "&#x1D521;">
<!ENTITY efr "&#x1D522;">
<!ENTITY ffr "&#x1D523;">
<!ENTITY gfr "&#x1D524;">
<!ENTITY hfr "&#x1D525;">
<!ENTITY ifr "&#x1D526;">
<!ENTITY jfr "&#x1D527;">
<!ENTITY kfr "&#x1D528;">
<!ENTITY lfr "&#x1D529;">
<!ENTITY mfr "&#x1D52A;">
<!ENTITY nfr "&#x1D52B;">
<!ENTITY ofr "&#x1D52C;">
<!ENTITY pfr "&#x1D52D;">
<!ENTITY qfr "&#x1D52E;">
<!ENTITY rfr "&#x1D52F;">
<!ENTITY sfr "&#x1D530;">
<!ENTITY tfr "&#x1D531;">
<!ENTITY ufr "&#x1D532;">
<!ENTITY vfr "&#x1D533;">
<!ENTITY wfr "&#x1D534;">
<!ENTITY xfr "&#x1D535;">
<!ENTITY yfr "&#x1D536;">
<!ENTITY zfr "&#x1D537;">
<!ENTITY Aopf "&#x1D538;">
<!ENTITY Bopf "&#x1D539;">
<!ENTITY Dopf "&#x1D53B;">
<!ENTITY Eopf "&#x1D53C;">
<!ENTITY Fopf "&#x1D53D;">
<!ENTITY Gopf "&#x1D53E;">
<!ENTITY Iopf "&#x1D540;">
<!ENTITY Jopf "&#x1D541;">
<!ENTITY Kopf "&#x1D542;">
<!ENTITY Lopf "&#x1D543;">
<!ENTITY Mopf "&#x1D544;">
<!ENTITY Oopf "&#x1D546;">
<!ENTITY Sopf "&#x1D54A;">
<!ENTITY Topf "&#x1D54B;">
<!ENTITY Uopf "&#x1D54C;">
<!ENTITY Vopf "&#x1D54D;">
<!ENTITY Wopf "&#x1D54E;">
<!ENTITY Xopf "&#x1D54F;">
<!ENTITY Yopf "&#x1D550;">
<!ENTITY aopf "&#x1D552;">
<!ENTITY bopf "&#x1D553;">
<!ENTITY copf "&#x1D554;">
<!ENTITY dopf "&#x1D555;">
<!ENTITY eopf "&#x1D556;">
<!ENTITY fopf "&#x1D557;">
<!ENTITY gopf "&#x1D558;">
<!ENTITY hopf "&#x1D559;">
<!ENTITY iopf "&#x1D55A;">
<!ENTITY jopf "&#x1D55B;">
<!ENTITY kopf "&#x1D55C;">
<!ENTITY lopf "&#x1D55D;">
<!ENTITY mopf "&#x1D55E;">
<!ENTITY nopf "&#x1D55F;">
<!ENTITY oopf "&#x1D560;">
<!ENTITY popf "&#x1D561;">
<!ENTITY qopf "&#x1D562;">
<!ENTITY ropf "&#x1D563;">
<!ENTITY sopf "&#x1D564;">
<!ENTITY topf "&#x1D565;">
<!ENTITY uopf "&#x1D566;">
<!ENTITY vopf "&#x1D567;">
<!ENTITY wopf "&#x1D568;">
<!ENTITY xopf "&#x1D569;">
<!ENTITY yopf "&#x1D56A;">
<!ENTITY zopf "&#x1D56B;">
PAD<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 12 12" xml:space="preserve">
<g>
	<path fill="#000100" d="M7.9,0C8.3,0,8.6,0,9,0.1s0.7,0.2,1,0.4s0.6,0.4,0.8,0.6s0.5,0.5,0.6,0.8s0.3,0.6,0.4,1S12,3.7,12,4.1
		s0,0.7-0.1,1.1s-0.2,0.7-0.4,1S11,6.8,10.8,7S10.3,7.5,10,7.7S9.3,8,9,8.1S8.3,8.2,7.9,8.2c-0.5,0-1-0.1-1.4-0.2S5.6,7.6,5.2,7.3
		l-4.6,4.6C0.6,12,0.5,12,0.4,12s-0.2,0-0.3-0.1S0,11.7,0,11.6s0-0.2,0.1-0.3l4.6-4.6C4.4,6.4,4.2,6,4,5.5S3.8,4.6,3.8,4.1
		c0-0.4,0-0.7,0.1-1.1s0.2-0.7,0.4-1S4.7,1.5,5,1.2s0.5-0.5,0.8-0.6s0.6-0.3,1-0.4S7.5,0,7.9,0z M7.9,7.5c0.5,0,0.9-0.1,1.3-0.3
		s0.8-0.4,1.1-0.7s0.5-0.7,0.7-1.1s0.3-0.8,0.3-1.3S11.2,3.2,11,2.8S10.6,2,10.3,1.7S9.6,1.2,9.2,1S8.3,0.8,7.9,0.8S7,0.8,6.6,1
		S5.8,1.4,5.5,1.7S4.9,2.4,4.8,2.8S4.5,3.7,4.5,4.1S4.6,5,4.8,5.4s0.4,0.8,0.7,1.1s0.7,0.5,1.1,0.7S7.4,7.5,7.9,7.5z"/>
</g>
</svg>
P<!doctype html>
<html dir="ltr">
  <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta charset="UTF-8"/>
    <style type="text/css">
      .hidden {
          display: none !important;
      }

      body {
          margin: 0px;
          padding: 0px;
      }

      .gripper {
          text-align: center;
          -ms-user-select: none;
          -ms-touch-action: none;
          cursor: move;
          color: #999;
          font-family: "Segoe UI";
          font-size: 14px;
      }

      /* overview */

      #overview {
          box-sizing: border-box;
          width: 283px;
          height: 128px;
          margin: 6px;
          border: solid 1px #AAA;
          display: -ms-grid;
          -ms-grid-columns: (70px)[4];
          -ms-grid-rows: 14px 70px 38px;
      }

      #overview .gripper {
          -ms-grid-row: 1;
          -ms-grid-column: 1;
          -ms-grid-column-span: 4;
      }

      #overview .metric {
          -ms-grid-row: 2;
          font-family: "Segoe UI";
          font-weight: 500;
          -ms-user-select: none;
      }

      #overview .metric.box {
          box-sizing: border-box;
          width: 69px;
          height: 69px;
          margin: 1px;
      }

      #overview .metric.bar {
          box-sizing: border-box;
          height: 38px;
          line-height: 38px;
          cursor: default;
      }

      #overview a {
          display: inline-block;
          cursor: pointer;
          border: 1px solid white; /* invisible border to prevent pixel-shifting */
      }

      #overview .headline {
          font-size: 16pt;
          text-align: center;
          padding-bottom: 3px;
      }

      #overview .inline {
          font-size: 9pt;
      }

      #overview .unit {
          font-size: 9pt;
          text-align: center;
      }

      #overview #paintTime {
          -ms-grid-column: 1;
      }

      #overview #paintTime:hover {
          border: 1px solid rgb(77, 166, 12);
          background: rgb(219, 237, 206);
      }

      #overview #paintTime:active {
          border: 1px solid rgb(77, 166, 12);
          background: rgb(77, 166, 12);
      }

      #overview #frameRate {
          -ms-grid-column: 2;
      }

      #overview #frameRate:hover {
          border: 1px solid rgb(167, 79, 1);
          background: rgb(238, 222, 207);
      }

      #overview #frameRate:active {
          border: 1px solid rgb(167, 79, 1);
          background: rgb(224, 130, 47);
      }

      #overview #memory {
          -ms-grid-column: 3;
      }

      #overview #memory:hover {
          border: 1px solid rgb(139, 18, 174);
          background: rgb(236, 222, 240);
      }

      #overview #memory:active {
          border: 1px solid rgb(139, 18, 174);
          background: rgb(129, 114, 133);
      }

      #overview #cpu {
          -ms-grid-column: 4;
      }

      #overview #cpu:hover {
          border: 1px solid rgb(17, 125, 187);
          background: rgb(217, 234, 244);
      }

      #overview #cpu:active {
          border: 1px solid rgb(17, 128, 187);
          background: rgb(51, 134, 181);
      }

      #overview #network {
          text-align: center;
          -ms-grid-row: 3;
          -ms-grid-column: 1;
          -ms-grid-column-span: 4;
      }

      #overview .forwardButton {
          -ms-grid-column: 4;
          -ms-grid-row: 3;
          -ms-grid-column-align: end;
          -ms-grid-row-align: end;
          color: #999;
          cursor: pointer;
      }

      /* extraOverview */

      #extraOverview {
          box-sizing: border-box;
          width: 283px;
          height: 278px;
          margin: 6px;
          padding-left: 15px;
          padding-right: 15px;
          border: solid 1px #AAA;
          display: -ms-grid;
          -ms-grid-columns: 100%;
          -ms-grid-rows: 14px (25px)[10];
          font-family: "Segoe UI";
      }

      #extraOverview .gripper {
          -ms-grid-column: 1;
          -ms-grid-row: 1;
      }

      #extraOverview .backButton {
          -ms-grid-column: 1;
          -ms-grid-row: 11;
          -ms-grid-column-align: end;
          -ms-grid-row-align: end;
          color: #999;
          cursor: pointer;
      }

      #extraOverview #irStatus {
          text-align: left;
          -ms-grid-row: 2;
          -ms-grid-column: 1;
          cursor: pointer;
      }

      /* details */

      #details {
          box-sizing: border-box;
          border: solid 1px #AAA;
          width: 283px;
          height: 278px;
          margin: 6px;
          padding-left: 15px;
          padding-right: 15px;
          display: -ms-grid;
          -ms-grid-columns: 80% 20%;
          -ms-grid-rows: 14px 30px 14px 164px 14px;
          font-family: "Segoe UI";
      }

      #details .gripper {
          -ms-grid-column: 1;
          -ms-grid-row: 1;
          -ms-grid-column-span: 2;
      }

      #details .label {
          -ms-user-select: none;
          cursor: default;
      }

      #details .headline {
          -ms-grid-column: 1;
          -ms-grid-row: 2;
          font-size: 16pt;
      }

      #details .value {
          -ms-grid-column: 2;
          -ms-grid-row: 2;
          -ms-grid-column-align: end;
          font-size: 16pt;
      }

      #details .description {
          -ms-grid-column: 1;
          -ms-grid-row: 3;
          font-size: 9pt;
          color: #777;
      }

      #details .y-max {
          -ms-grid-column: 2;
          -ms-grid-row: 3;
          -ms-grid-column-align: end;
          font-size: 9pt;
          color: #777;
      }

      #details .x-min {
          -ms-grid-column: 1;
          -ms-grid-row: 5;
          font-size: 9pt;
          color: #777;
      }

      #details .y-min {
          -ms-grid-column: 2;
          -ms-grid-row: 5;
          -ms-grid-column-align: end;
          font-size: 9pt;
          color: #777;
      }

      #details #graphContainer {
          -ms-grid-column: 1;
          -ms-grid-column-span: 2;
          -ms-grid-row: 4;
          /* width: 100%; */
          width: 250px;
          height: 160px;
          margin-top: 4px;
          cursor: pointer;
      }

      #details #graph #memory {
          display: none;
      }

      #details #graph line.border.horizontal {
          stroke-width: 3;
      }

      #details #graph line.border.vertical {
          stroke-width: 3;
      }

      #details #graph line.grid.horizontal {
          stroke-width: 2;
      }

      #details #graph line.grid.vertical {
          stroke-width: 2;
      }

      /* memory graph */
      #details.memory #graph #memory {
          display: block;
      }

      #details #graph #memory polygon#graphData {
          fill: rgba(129, 114, 133, 0.1);
          stroke: rgb(149, 40, 180);
          stroke-width: 4;
      }

      #details.memory #graph #lines line.border {
          stroke: rgb(139, 18, 174);
      }

      #details.memory #graph #lines line.grid {
          stroke: rgb(236, 222, 240);
      }

      /* paintTime graph */
      #details.paintTime #graph #paintTime {
          display: block;
      }

      #details.paintTime #graph #lines line.border {
          stroke: rgb(77, 166, 12);
      }

      #details.paintTime #graph #lines line.grid {
          stroke: rgb(219, 237, 206);
      }

      #details.paintTime #graph #paintTime #graphData line {
          stroke: rgb(77, 166, 12);
          stroke-width: 4;
      }

      /* frameRate graph */
      #details.frameRate #graph #frameRate {
          display: block;
      }

      #details.frameRate #graph #lines line.border {
          stroke: rgb(167, 79, 1);
      }

      #details.frameRate #graph #lines line.grid {
          stroke: rgb(238, 222, 207);
      }

      #details.frameRate #graph #frameRate #graphData rect {
          fill: rgba(224, 130, 47, 0.5);
          stroke: rgb(167, 79, 1);
          stroke-width: 1;
      }

      /* cpu graph */
      #details.cpu #graph #cpu {
          display: block;
      }

      #details.cpu #graph #lines line.border {
          stroke: rgb(17, 125, 187);
      }

      #details.cpu #graph #lines line.grid {
          stroke: rgb(217, 234, 244);
      }

      #details.cpu #graph #graphData rect.kind0 {
          fill: rgba(129, 114, 133, 0.5);
      }

      #details.cpu #graph #graphData rect.kind1 {
          fill: rgba(224, 130, 47, 0.5);
      }

      #details.cpu #graph #graphData rect.kind2 {
          fill: rgba(77, 166, 12, 0.5);
      }

      #details.cpu #graph #graphData rect.kindTotal {
          fill: rgba(51, 134, 181, 0.5);
      }

      /* extraDetails */

      #extraDetails {
          box-sizing: border-box;
          width: 283px;
          height: 278px;
          margin: 6px;
          border: solid 1px #AAA;
          padding-left: 15px;
          padding-right: 15px;
          display: -ms-grid;
          -ms-grid-columns: 100%;
          -ms-grid-rows: 14px 35px 25px;
          font-family: "Segoe UI";
          cursor: pointer;
      }

      #extraDetails .gripper {
          -ms-grid-column: 1;
          -ms-grid-row: 1;
      }

      #extraDetails #irEnabled {
          text-align: left;
          -ms-grid-row: 2;
          -ms-grid-column: 1;
          font-size: 14pt;
      }

      #extraDetails #irDisablingContent {
          text-align: left;
          -ms-grid-row: 3;
          -ms-grid-column: 1;
          font-size: 10pt;
      }


      /* paint time graph */

    </style>
    <!-- <script type="text/javascript" src="external.js"></script> -->
    <script type="text/javascript">
      var string_percent = "";
      var string_zeroPercent = "";

      var maxCpuSpeed = null;

      var panes = {
          svg: null,

          /*
           common properties set in initializer:
            - yMax/yMin
            - value
           */

          cpu: {
              overview: null,
              graph: null,
              graphElement: null,
              timer: updateCpuGraph,
              period: 1000,
              dataRetention: 60000,
              data: [],
              last: null,
              lastTotal: null,
              lastTime: null
          },

          memory: {
              overview: null,
              graph: null,
              graphElement: null,
              timer: updateMemoryGraph,
              period: 1000,
              dataRetention: 60000,
              data: [],
              last: null
          },

          paintTime: {
              overview: null,
              graph: null,
              graphElement: null,
              timer: updatePaintTimeGraph,
              period: 100,
              dataRetention: 6 * external.performanceCounterFrequency, //6 seconds
              data: [],
              last: null
          },

          frameRate: {
              overview: null,
              graph: null,
              graphElement: null,
              timer: updateFrameRateGraph,
              period: 1000,
              start: null,
              dataRetention: 2 * external.performanceCounterFrequency, //pruned manually really
              data: [],
              last: null,
              buckets: {},
              firstBucketTime: null,
              lastBucketTime: null
          },

          network: {
              overview: null,
              data: {
                  activeRequests: { }
              }
          },

          irEnabled: {
              overview: null
          },

          irDisablingContent: {
              overview: null
          }
      };

      var overviewTimer = null;
      var paneTimer = null;
      var extraDetailsTimer = null;

      /* overview functions */

      function getCurrentMemoryUsageString() {
          var memory = external.getMemoryUsage() / 1048576; //MB
          return memory.toFixed(1);
      }

      function getCurrentCpuUsageString() {
          if(maxCpuSpeed == null)
              return "N/A";

          var cpuUsageDelta = 0;
          var prevTime = panes.cpu.lastTime;
          var now = new Date().getTime();
          var cpuUsage = external.getProcessCpuUsage();
          if(panes.cpu.lastTotal !== null) {              
              cpuUsageDelta = cpuUsage - panes.cpu.lastTotal;
          }
          panes.cpu.lastTotal = cpuUsage;      
          panes.cpu.lastTime = now;

          var deltaT = (now - prevTime) / 1000;

          if(prevTime === null)
              return string_zeroPercent;

          return (cpuUsageDelta / (external.maxCpuSpeed * deltaT / 100)).toFixed(0) + string_percent; //MHz
      }

      function getCurrentPaintTimeString() {
          var paintTime = external.averagePaintTime;
          return isNaN(paintTime) ? "-" : paintTime.toFixed(1);
      }

      function getCurrentFrameRateString() {
          var frameTime = external.averageFrameTime;
          if(isNaN(frameTime) || frameTime < (1000 / 60))
              return 60;

          return (1000 / frameTime).toFixed(0);
      }

      function getIREnabledString() {
          var IRAvailable = external.irStatusAvailable;
          var IREnabled = external.independentRenderingEnabled;
          return (IRAvailable ? (IREnabled ? "On" : "Off") : "-");
      }
      
      function getIRDisablingContentString() {
          var IREnabled = external.independentRenderingEnabled;
          var IRDisablingContent;
          if (!IREnabled) {
              IRDisablingContent = external.irDisablingContentString;
          }
          return (IREnabled ? "" : ("" + IRDisablingContent));
      }

      function updateOverview() {
          panes.memory.overview.innerText = getCurrentMemoryUsageString();
          panes.paintTime.overview.innerText = getCurrentPaintTimeString();
          panes.frameRate.overview.innerText = getCurrentFrameRateString();
          panes.cpu.overview.innerText = getCurrentCpuUsageString();
          panes.network.overview.innerText = external.activeNetworkRequestCount;
      }

      function showOverview() {
          EnsureCorrectExtraOverviewButton();

          overviewTimer = setInterval(updateOverview, 1000);
          document.getElementById("overview").classList.remove("hidden");
          external.resizeWindow(295, 140);
      }

      function hideOverview() {
          clearInterval(overviewTimer);
          overviewTimer = null;
          document.getElementById("overview").classList.add("hidden");
      }

      function makeGridlines() {
          var g = document.getElementById("lines");

          for(var i = 1; i < 10; ++i) {
              var line = document.createElementNS("http://www.w3.org/2000/svg", "line");
              line.setAttribute("x1", 0);
              line.setAttribute("y1", gHeight * i / 10);
              line.setAttribute("x2", gWidth);
              line.setAttribute("y2", gHeight * i / 10);
              line.setAttribute("class", "grid horizontal");
              g.appendChild(line);
          }

          for(var i = 1; i < 6; ++i) {
              var line = document.createElementNS("http://www.w3.org/2000/svg", "line");
              line.setAttribute("x1", gWidth * i / 6);
              line.setAttribute("y1", 0);
              line.setAttribute("x2", gWidth * i / 6);
              line.setAttribute("y2", gHeight);
              line.setAttribute("class", "grid vertical");
              g.appendChild(line);
          }

          var borders = [
              [0, 0, 0, gHeight, "vertical"], //left
              [0, 0, gWidth, 0, "horizontal"], //top
              [gWidth, 0, gWidth, gHeight, "vertical"], //right
              [0, gHeight, gWidth, gHeight, "horizontal"] ]; //bottom

          for(var i = 0; i < 4; ++i) {
              var border = document.createElementNS("http://www.w3.org/2000/svg", "line");
              border.setAttribute("x1", borders[i][0]);
              border.setAttribute("y1", borders[i][1]);
              border.setAttribute("x2", borders[i][2]);
              border.setAttribute("y2", borders[i][3]);
              border.setAttribute("class", "border " + borders[i][4]);
              g.appendChild(border);
          }
      }

      function showDetailsAndStart(paneId) {
          var labels = document.querySelectorAll("#details>.label " + "." + paneId);
          for(var i = 0; i < labels.length; ++i) {
              labels[i].classList.remove("hidden");
          }
          
          document.querySelector("#details #graph #" + paneId).className.baseVal = "";

          external.resizeWindow(295, 290);

          document.getElementById("details").classList.add(paneId);
          document.getElementById("details").classList.remove("hidden");

          var paneInfo = panes[paneId];
          paneInfo.timer(paneInfo);
          paneTimer = setInterval(function() { paneInfo.timer(paneInfo) }, paneInfo.period);
      }

      function hideDetailsAndStop(paneId) {
          document.querySelector("#details #graph #" + paneId).className.baseVal = "hidden";
          
          var labels = document.querySelectorAll("#details>.label " + "." + paneId);
          for(var i = 0; i < labels.length; ++i) {
              labels[i].classList.add("hidden");
          }

          document.getElementById("details").classList.add("hidden");
          document.getElementById("details").classList.remove(paneId);

          var paneInfo = panes[paneId];
          clearInterval(paneTimer);
          paneTimer = null;
          updateOverview();
      }

      var gCurrentDetails = null;
      function showDetails(id) {
          gCurrentDetails = id;
          hideOverview();
          showDetailsAndStart(id);

          return false;
      }

      function hideDetails() {
          hideDetailsAndStop(gCurrentDetails);
          gCurrentDetails = null;

          showOverview();

          return false;
      }

      function showExtraDetails() {
          extraDetailsTimer = setInterval(updateExtraDetails, 1000);
          hideExtraOverview();
          document.getElementById("extraDetails").classList.remove("hidden");
      }

      function hideExtraDetails() {
          clearInterval(extraDetailsTimer);
          extraDetailsTimer = null;
          document.getElementById("extraDetails").classList.add("hidden");
          showExtraOverview();
      }

      function showExtraOverview() {
          hideOverview();
          external.resizeWindow(300, 290);
          document.getElementById("extraOverview").classList.remove("hidden");
      }

      function hideExtraOverview() {
          document.getElementById("extraOverview").classList.add("hidden");
      }

      function backToOverview() {
          hideExtraOverview();
          showOverview();
      }

      function EnsureCorrectExtraOverviewButton() {
          if (external.extraInformationEnabled) {
              document.getElementById("buttonExtraOverview").classList.remove("hidden");
          }
          else {
              document.getElementById("buttonExtraOverview").classList.add("hidden");
          }
      }

      function handlePaneKey(id, event) {
          if(event.keyCode === 13 || //enter & space
             event.keyCode === 32)
          {
              showDetails(id);
              setTimeout(function() {
                      document.querySelector("#details #graphContainer").focus();
                  }, 0);
              return true;
          }

          return false;
      }

      function handleGraphKey(event) {
          if(event.keyCode === 13 || //enter & space
             event.keyCode === 32)
          {
              var id = gCurrentDetails;
              hideDetails();
              setTimeout(function() {
                      document.querySelector("#overview #" + id).focus();
                  }, 0);
              return true;
          }

          return false;
      }

      function loadStrings() {
          string_percent = document.getElementById("_loc_percent").innerText;
          string_zeroPercent = document.getElementById("_loc_zeroPercent").innerText;
      }

      function go() {
          if(typeof _testing !== "undefined") {
              external = external;
              external._start();
          }

          try {
              maxCpuSpeed = external.maxCpuSpeed;
              mhzIntervals = [0, maxCpuSpeed / 4, maxCpuSpeed / 2, maxCpuSpeed, maxCpuSpeed * 2, maxCpuSpeed * 4, maxCpuSpeed * 6, maxCpuSpeed * 8];
          } catch(x) {
              maxCpuSpeed = null;
          }

          loadStrings();

          EnsureCorrectExtraOverviewButton();

          makeGridlines();

          panes.svg = document.querySelector("#details svg");
          
          var ids = [ "memory", "cpu", "network", "paintTime", "frameRate" ];
          ids.forEach(function(id) {
              panes[id].overview = document.querySelector("#overview #" + id + " .value");
              if("graph" in panes[id]) {
                  panes[id].graph = document.querySelector("#details svg g#" + id);
                  panes[id].graphElement = document.querySelector("#details svg g#" + id + " #graphData");
              }

              panes[id].value = document.querySelector("#details .value ." + id);
              panes[id].yMax = document.querySelector("#details .y-max ." + id);
              panes[id].yMin = document.querySelector("#details .y-min ." + id);
          });

          var extraids = ["irEnabled", "irDisablingContent"];
          extraids.forEach(function (id) {
              panes[id].overview = document.querySelector("#extraDetails #" + id + " .value");
          });

          external.addEventListener("networkRequestInitiated", function(id) { onNetworkRequestInitiated(panes.network, id); });
          external.addEventListener("networkRequestCompleted", function(id) { onNetworkRequestCompleted(panes.network, id); });

          showOverview();
      }

      /* graph functions */

      var gWidth = 500;
      var gHeight = 320;

      var MB = 1048576; //constant
      var mbIntervals = [0, 10 * MB, 20 * MB, 40 * MB, 80 * MB, 100 * MB, 200 * MB, 400 * MB, 800 * MB, 1000 * MB, 2000 * MB, 4000 * MB, 8000 * MB];

      var mhzIntervals = null;

      function _min(min, range, d) {
          for(var i = 1; i < range.length; ++i)
              if(min < range[i])
                  return range[i - 1];

          return d;
      }

      function _max(max, range, d) {
          for(var i = 0; i < range.length; ++i)
              if(max < range[i])
                  return range[i];

          return d;
      }

      function _createPoint() {
          return panes.svg.createSVGPoint();
      }

      function _updateData(info, f, m) {
          var newData = f(info.last);

          if(newData.length === 0)
              return false;

          if(!m)
              m = function(d) { return d; }

          var now = newData[newData.length - 1][0];
          info.last = now;
          
          for(var i = 0; i < newData.length; ++i)
              info.data.push(m(newData[i]));

          while(info.data.length > 0) {
              if(info.data[0][0] < (now - info.dataRetention)) {
                  if(info.data.length > 1 && info.data[1][0] < (now - info.dataRetention)) {
                      info.data.shift();
                  } else {
                      break;
                  }
              } else {
                  break;
              }
          }

          return now;
      }

      /*
         Note: the following functions draw the graphs. It would probably be better to manipulate the
           graphs with transform math (instead of effectively re-rendering the entire graph). However,
           strokes don't play nice with transforms. For example, say you rescale a graph to have a higher
           maximum via "scale(1, 2)", then all strokes will be 2x as tall as they are wide, which looks
           aesthetically terrible. This can be mitigated by using "vector-effect: non-scaling-stroke".
           Unfortunately, that isn't supported in IE11, so we're back to re-rendering the graphs.
       */

      function updateMemoryGraph(info) {
          info.value.innerText = getCurrentMemoryUsageString();

          var now = _updateData(info, external.getRecentMemoryUsage.bind(external));
          if(!now)
              return;

          function xUnits(t) {
              //viewbox is 60 seconds wide (t * gWidth / 60000)
              return gWidth - ((now - t) * gWidth / 60000); 
          }

          function yUnits(m) {
              return gHeight - ((m - min) * gHeight / (max - min));
          }

          var min = null;
          var max = null;
          for(var i = 0; i < info.data.length; ++i) {
              if(min === null || info.data[i][1] < min)
                  min = info.data[i][1];
              if(max === null || info.data[i][1] > max)
                  max = info.data[i][1];
          }

          //min = _min(min, mbIntervals, 0);
          max = _max(max, mbIntervals, 10000 * MB);
          min = min > (max / 2) ? (max / 2) : 0;

          var points = info.graphElement.points;
          points.clear();

          if(xUnits(info.data[0][0]) > 0) {
              var pt = _createPoint();
              pt.x = xUnits(info.data[0][0]);
              pt.y = yUnits(info.data[0][1]);
              points.appendItem(pt);
          }
          
          for(var i = 1; i < info.data.length; ++i) {
              var pt = _createPoint();
              pt.x = xUnits(info.data[i][0]);
              pt.y = yUnits(info.data[i][1]);
              points.appendItem(pt);
          }

          //set the bottom right
          var ptBr = _createPoint();
          ptBr.x = xUnits(now);
          ptBr.y = yUnits(min);
          points.appendItem(ptBr);

          var leftEdge = xUnits(info.data[0][0]);
          if(leftEdge < 0)
              leftEdge = 0;

          //set the bottom left
          var ptBl = _createPoint();
          ptBl.x = leftEdge;
          ptBl.y = yUnits(min);
          points.appendItem(ptBl);

          //set the left point
          var ptL = _createPoint();
          ptL.x = leftEdge;
          ptL.y = yUnits(info.data[0][1]);
          points.appendItem(ptL);
          
          info.yMax.textContent = max / MB;
          info.yMin.textContent = min / MB;
      }

      function updateCpuGraph(info) {
          if(maxCpuSpeed == null)
              return;

          info.value.innerText = getCurrentCpuUsageString();

          //data is [ticks, processUsage, [threadUsage, type, id]+ ]

          function bundle(d) {
              //bundle up each element so that the 2nd element is an object (key = id) 
              var r = [d[0], d[1], {}];

              for(var i = 2; i < d.length; ++i)
                  r[2][d[i][2]] = [d[i][0], d[i][1]];

              return r;
          }

          //data is [ticks, processUsage, {id: [threadUsage, type] }
          
          var now = _updateData(info, external.getRecentCpuUsage.bind(external), bundle);
          if(!now)
              return;

          function xUnits(t) {
              //viewbox is 60 seconds wide (t * gWidth / 60000)
              return gWidth - ((now - t) * gWidth / 60000); 
          }

          function xDelta(dt) {
              return (dt * gWidth / 60000); 
          }

          function yUnits(c) {
              return gHeight - ((c - min) * gHeight / (max - min));
          }

          function yDelta(dc) {
              return (dc * gHeight / (max - min));
          }

          var min = null;
          var max = null;
          for(var i = 1; i < info.data.length; ++i) {
              var d = info.data[i][1] - info.data[i - 1][1];
              if(min === null || d < min)
                  min = d;
              if(max === null || d > max)
                  max = d;
          }

          min = 0;
          max = _max(max, mhzIntervals, external.maxCpuSpeed * 128);

          var g = document.createElementNS("http://www.w3.org/2000/svg", "g");
          g.setAttribute("id", "graphData");

          for(var i = 1; i < info.data.length; ++i) {
              var d = info.data[i];
              var pd = info.data[i - 1];
              var dt = d[0] - pd[0];
              var cycles = 0;
              var w = xDelta(dt);
              var x = xUnits(d[0]) - w;

              if(x < xUnits(now - 60000)) {
                  var oldX = x;
                  x = xUnits(now - 60000);
                  w = w - (x - oldX);
              }

              for(var threadId in d[2]) {
                  var threadData = d[2][threadId];
                  var deltaCycles = 0;
                  if(threadId in pd[2]) {
                      var prevThreadData = pd[2][threadId];
                      deltaCycles += (threadData[0] - prevThreadData[0]);
                  }
                  
                  if(deltaCycles > 0) {
                      var r = document.createElementNS("http://www.w3.org/2000/svg", "rect");
                      var h = yDelta(deltaCycles);
                      r.setAttribute("x", x);
                      r.setAttribute("y", yUnits(cycles) - h);
                      r.setAttribute("width", w);
                      r.setAttribute("height", h);
                      r.setAttribute("class", "kind" + threadData[1]);
                      
                      cycles += deltaCycles;

                      g.appendChild(r);
                  }
              }

              var deltaCycles = d[1] - pd[1] - cycles;
              var r = document.createElementNS("http://www.w3.org/2000/svg", "rect");
              var h = yDelta(deltaCycles);
              r.setAttribute("x", x);
              r.setAttribute("y", yUnits(cycles) - h);
              r.setAttribute("width", w);
              r.setAttribute("height", h);
              r.setAttribute("class", "kindTotal");
                            
              g.appendChild(r);
          }

          // about 5x faster to replace the <g> element instead of removing & adding children
          info.graph.removeChild(info.graphElement);
          info.graphElement = g;
          info.graph.appendChild(g);

          info.yMax.textContent = max * 100 / external.maxCpuSpeed + "%";
      }

      ////

      function updatePaintTimeGraph(info) {
          info.value.innerText = getCurrentPaintTimeString();

          //data is [ [beatStartPerfCount, beatEndPerfCount]+ ]
          
          _updateData(info, external.getRecentPaintRequests.bind(external));
          var now = external.performanceCounter;

          var duration = 6 * external.performanceCounterFrequency; // 6 seconds

          function xUnits(t) {
              return gWidth - ((now - t) * gWidth / duration); 
          }

          function yUnits(c) {
              return gHeight - ((c - min) * gHeight / (max - min));
          }

          var min = 0;
          var max = external.performanceCounterFrequency / 10; //100 ms

          var g = document.createElementNS("http://www.w3.org/2000/svg", "g");
          g.setAttribute("id", "graphData");

          for(var i = 0; i < info.data.length; ++i) {
              var beat = info.data[i];
              var x = xUnits(beat[0]);

              if(x < 0) {
                  info.data.shift();
                  --i;
                  continue;
              }

              var line = document.createElementNS("http://www.w3.org/2000/svg", "line");
              line.setAttribute("x1", x);
              line.setAttribute("y1", gHeight);
              line.setAttribute("x2", x);
              line.setAttribute("y2", Math.max(yUnits(beat[1] - beat[0]), 0));

              g.appendChild(line);
          }

          info.graph.removeChild(info.graphElement);
          info.graphElement = g;
          info.graph.appendChild(g);
      }

      ////

      function updateFrameRateGraph(info) {
          info.value.innerText = getCurrentFrameRateString();

          //raw data is [ [prevFrameStartPerfCount, currentFrameStartPerfCount]+ ]

          _updateData(info, external.getRecentFrames.bind(external));
          var now = external.performanceCounter;

          var pcf = external.performanceCounterFrequency;
          var duration = 6;

          if(info.start === null)
              info.start = parseInt(now / pcf);

          function xUnits(t) {
              return gWidth - (t * gWidth / duration); 
          }

          function xDelta(t) {
              return (t * gWidth / duration); 
          }

          function yDelta(fps) {
              return fps * gHeight / 60;
          }

          //bucket data is { bucket#: [ next#, time, frames, paintTime ] }

          function bid(b) {
              //objects don't like to be indexed by large number-like things
              return "b-" + b.toString();
          }

          // delete old buckets
          var currentBucketTime = parseInt(now / pcf);
          while(info.firstBucketTime !== null) {
              if(info.firstBucketTime < (currentBucketTime - (duration + 1))) {
                  if(info.lastBucketTime === info.firstBucketTime) {
                      info.lastBucketTime = null;
                  }

                  var bucketId = bid(info.firstBucketTime);
                  var firstBucket = info.buckets[bucketId];

                  info.firstBucketTime =
                      (firstBucket[0] !== null) ?
                      info.buckets[firstBucket[0]][1] :
                      null;
                  
                  delete info.buckets[bucketId];
              } else {
                  break;
              }
          }
          
          for(var i = 0; i < info.data.length; ++i) {
              var d = info.data[i];
              var time = parseInt(d[0] / pcf);
              var bucketId = bid(time);

              if(!(bucketId in info.buckets)) {
                  info.buckets[bucketId] = [ null, time, 0, 0 ];
                  if(info.lastBucketTime !== null)
                      info.buckets[bid(info.lastBucketTime)][0] = bucketId;
                  info.lastBucketTime = time;
                  if(info.firstBucketTime === null)
                      info.firstBucketTime = time;
              }

              var bucket = info.buckets[bucketId];
              bucket[2] += 1;
              bucket[3] += d[1] - d[0];
          }

          info.data = [];

          var g = document.createElementNS("http://www.w3.org/2000/svg", "g");
          g.setAttribute("id", "graphData");

          for(var i = 1; i < (duration + 1); ++i) {
              var bucketId = bid(currentBucketTime - i);

              var bucket = [ null, null, 0, 0 ];
              if(bucketId in info.buckets)
                  bucket = info.buckets[bucketId];

              var fps = 60;
              if((currentBucketTime - i) < info.start)
                  continue;
              if(bucket[2] > 0)
                  fps = Math.min(1 / (bucket[3] / bucket[2] / pcf), 60);

              var r = document.createElementNS("http://www.w3.org/2000/svg", "rect");
              var y = yDelta(fps);
              r.setAttribute("x", xUnits(i));
              r.setAttribute("y", gHeight - y);
              r.setAttribute("width", xDelta(1));
              r.setAttribute("height", y);

              g.appendChild(r);
          }

          info.graph.removeChild(info.graphElement);
          info.graphElement = g;
          info.graph.appendChild(g);
      }

      ////

      function updateExtraDetails() {
          panes.irEnabled.overview.innerText = getIREnabledString();
          panes.irDisablingContent.overview.innerText = getIRDisablingContentString();
      }

      ////

      function onNetworkRequestInitiated(info, requestId) {
          var now = new Date().getTime();
          info.data.activeRequests[requestId] = true;
      }

      function onNetworkRequestCompleted(info, requestId) {
          if(requestId in info.data.activeRequests) {
              delete info.data.activeRequests[requestId];
          }
      }

      //// gripper functions

      var gGripper = {
          dragging: false,
          lx: null, //last x
          ly: null //last y
      };

      function onGripperDown(e) {
          e.target.setCapture(true);
          gGripper.dragging = true;
          gGripper.lx = e.screenX;
          gGripper.ly = e.screenY;
      }

      function onGripperMove(e) {
          if(e.buttons === 0)
              gGripper.dragging = false;
          
          if(!gGripper.dragging)
              return;

          var dx = e.screenX - gGripper.lx;
          var dy = e.screenY - gGripper.ly;

          if(dx != 0 || dy != 0) {
              external.repositionWindow(dx, dy);
              gGripper.lx = e.screenX;
              gGripper.ly = e.screenY;
          }
      }

      function onGripperUp(e) {
          gGripper.dragging = false;
          e.target.releaseCapture();
      }

      function onGripperKey(event) {
          if(event.keyCode === 37) {
              //left
              external.repositionWindow(-11, 0);
              return true;
          } else if(event.keyCode === 38) {
              //up
              external.repositionWindow(0, -11);
              return true;
          } else if(event.keyCode === 39) {
              //right
              external.repositionWindow(11, 0);
              return true;
          } else if(event.keyCode === 40) {
              //down
              external.repositionWindow(0, 11);
              return true;
          }

          return false;
      }

      ////

    </script>
  </head>
  <body onload="go()" oncontextmenu="return false;">
    <div id="overview">
      <div class="gripper" tabindex="0"
          onmousedown="onGripperDown(event)"
          onmousemove="onGripperMove(event)"
          onmouseup="onGripperUp(event)"
          onkeydown="onGripperKey(event)">
        &bullet; &bullet; &bullet;
      </div>
      <a class="metric box" id="paintTime" tabindex="0"
          onclick="showDetails(this.id)" 
          onkeypress="handlePaneKey(this.id, event)">
        <div class="headline value">
          N/A
        </div>
        <div class="unit" id=_loc_PaintTime>
          Tiempo de pintura<br/>(ms)
        </div>
      </a>
      <a class="metric box" id="frameRate" tabindex="0"
          onclick="showDetails(this.id)" 
          onkeypress="handlePaneKey(this.id, event)">
        <div class="headline value">
          N/A
        </div>
        <div class="unit" id=_loc_FrameRate>
          Velocidad de fotogramas<br/>(FPS)
        </div>
      </a>
      <a class="metric box" id="memory" tabindex="0"
          onclick="showDetails(this.id)" 
          onkeypress="handlePaneKey(this.id, event)">
        <div class="headline value">
          N/A
        </div>
        <div class="unit" id=_loc_Memory>
          Memoria<br/>(MB)
        </div>
      </a>
      <a class="metric box" id="cpu" tabindex="0"
          onclick="showDetails(this.id)" 
          onkeypress="handlePaneKey(this.id, event)">
        <div class="headline value">
          N/A
        </div>
        <div class="unit" id=_loc_CPU>
          CPU<br/>(%)
        </div>
      </a>
      <div class="metric bar" id="network">
        <span class="inline value">
          N/A
        </span>
        <span class="unit" id=_loc_NetworkRequests>
          Solicitudes de red
        </span>
      </div>
      <div class="forwardButton hidden" id="buttonExtraOverview" onclick="showExtraOverview()">
        &#x2217;
      </div>
    </div>
    
    <div id="extraOverview" class="hidden">
      <div class="gripper" onmousedown="onGripperDown(event)" onmousemove="onGripperMove(event)" onmouseup="onGripperUp(event)">
        &bullet; &bullet; &bullet;
      </div>
      <div class="metric bar" id="irStatus" onclick="showExtraDetails()">
        <span class="unit" id=_loc_IRStatus>
          Estado de presentación independiente
        </span>
      </div>
      <div class="backButton" onclick="backToOverview()">
        &#x2217;
      </div>
     </div>


    <div id="details" class="hidden">
      <div class="gripper" tabindex="0"
          onmousedown="onGripperDown(event)"
          onmousemove="onGripperMove(event)"
          onmouseup="onGripperUp(event)"
          onkeydown="onGripperKey(event)">
        &bullet; &bullet; &bullet;
      </div>
      <div class="headline label">
        <span class="cpu hidden" id=_loc_CPU>CPU</span>
        <span class="memory hidden" id=_loc_Memory>Memory</span>
        <span class="frameRate hidden" id=_loc_FrameRate>Frame Rate</span>
        <span class="paintTime hidden" id=_loc_PaintTime>Paint Time</span>
      </div>
      <div class="value label">
        <span class="cpu hidden" id=_loc_NA>N/A</span>
        <span class="memory hidden" id=_loc_NA>N/A</span>
        <span class="frameRate hidden" id=_loc_NA>N/A</span>
        <span class="paintTime hidden" id=_loc_NA>N/A</span>
      </div>
      <div class="description label">
        <span class="cpu hidden" id=_loc_PcUtilization>% Utilization</span>
        <span class="memory hidden" id=_loc_PrivateWorkingSet>Private bytes (MB)</span>
        <span class="frameRate hidden" id=_loc_FPS>Frames per second</span>
        <span class="paintTime hidden" id=_loc_milliseconds>milliseconds</span>
      </div>
      <div class="y-max label">
        <span class="cpu hidden">100%</span>
        <span class="memory hidden" id=_loc_NA>N/A</span>
        <span class="frameRate hidden">60</span>
        <span class="paintTime hidden">100</span>
      </div>
      <div class="y-min label">
        <span class="cpu hidden">0</span>
        <span class="memory hidden">0</span>
        <span class="frameRate hidden">0</span>
        <span class="paintTime hidden">0</span>
      </div>
      <div class="x-min label">
        <span class="cpu hidden" id=_loc_60Seconds>60 seconds</span>
        <span class="memory hidden" id=_loc_60Seconds>60 seconds</span>
        <span class="frameRate hidden" id=_loc_6Seconds>6 seconds</span>
        <span class="paintTime hidden" id=_loc_6Seconds>6 seconds</span>
      </div>
      <div id="graphContainer" tabindex="0"
          onclick="hideDetails()"
          onkeypress="handleGraphKey(event)">
        <svg id="graph" viewBox="0 0 500 320" version="1.1" preserveAspectRatio="none">
          <g id="lines">
            <!-- populated in makeGridlines -->
          </g>
          <g id="memory">
            <polygon id="graphData"></polygon>
          </g>
          <g id="cpu">
            <g id="graphData">
              <!-- this g is replaced in script -->
            </g>
          </g>
          <g id="paintTime">
            <g id="graphData">
              <!-- this g is replaced in script -->
            </g>
          </g>
          <g id="frameRate">
            <g id="graphData">
              <!-- this g is replaced in script -->
            </g>
          </g>
        </svg>
      </div>
    </div>
    <div id="extraDetails" class="hidden" onclick="hideExtraDetails()">
      <div class="gripper" onmousedown="onGripperDown(event)" onmousemove="onGripperMove(event)" onmouseup="onGripperUp(event)">
        &bullet; &bullet; &bullet;
      </div>
      <div class="metric bar" id="irEnabled">
        <span class="unit" id=_loc_irEnabled>
          Presentación independiente: 
        </span>
        <span class="inline value">
          N/A
        </span>
      </div>
      <div class="metric bar" id="irDisablingContent">
        <span class="inline value">
          N/A
        </span>
      </div>
    </div>
    <div class="hidden"> <!-- for localization -->
      <span id=_loc_percent>%</span>
      <span id=_loc_zeroPercent>0%</span>
    </div>
  </body>
</html>
PA<!DOCTYPE HTML>
<html dir="LTR">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  <title>Se notific� que el contenido de este sitio web no es seguro</title>

  <script type="text/javascript">
    function promptSafeUrl(e) {
      function isExternalUrlSafeForNavigation(urlStr) {
        var regEx = new RegExp("^(http(s?))://", "i");
        return regEx.exec(urlStr);
      }

      function realPageURL() {
        var docURL = window.document.location.href;
        var beginURL = docURL.indexOf("#", 1) + 1;
        var urlresult = docURL.substring(beginURL);

        if (!isExternalUrlSafeForNavigation(urlresult)) {
          return window.document.location.toString();
        }

        return urlresult;
      }

      if (window.external.msPromptSafeUrl()) {
        var smartScreenLink = document.getElementById("overrideLink");
        smartScreenLink.href = realPageURL();

        document.removeEventListener('click', promptSafeUrl, false);
        document.removeEventListener('keyup', promptSafeUrlKeyUp, false);
        smartScreenLink.click();
      }

      e.preventDefault();
      e.stopPropagation();
    }

    function promptSafeUrlKeyUp(e) {
      // Only call this for the enter key
      if (e.keyCode == 13) {
        promptSafeUrl(e);
      }
    }

    document.addEventListener('click', promptSafeUrl, false);
    document.addEventListener('keyup', promptSafeUrlKeyUp, false);
  </script>

  <style>
    body {
      background-color: rgb(174, 11, 11);
      font-family: "Segoe UI semilight", "Segoe UI", Verdana, Arial;
      color: #C0C0C0;
      overflow: hidden;
      -ms-content-zooming: none;
      -ms-user-select: none;
    }
    
    a {
      color: #C0C0C0;
    }
    
    img {
      border: 0px;
    }

    #top, #bottom, #left, #right {
      background: #FFFFFF;
    }

    #left, #right {
      position: fixed;
      top: 0;
      bottom: 0;
      width: 1px;
    }

    #left {
      left: 0;
    }

    #right {
      right: 0;
    }

    #top, #bottom {
      position: fixed;
      left: 0;
      right: 0;
      height: 1px;
    }

    #top {
      top: 0;
    }

    #bottom {
      bottom: 0;
    }

    .smartscreen_link {
      display: none;
    }

    /* small */
    @media not all and (min-width: 115px) and (min-height: 115px) {
      .smartscreen_large {
        display: none;
      }

      .image_large {
        display: none;
      }

      .smartscreen_small {
        width: 22px;
        height: 22px;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-left: -11px;
        margin-top: -11px;
        display: inherit;
      }
    }

    /* wrapped */
    @media all and (min-width: 115px) and (min-height: 115px) and (max-width: 169px) {
      .smartscreen_large {
        width: 140px;
        height: 100px;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-left: -70px;
        margin-top: -50px;
        display: inherit;
      }
      
      .image_large {
        padding-bottom: 7px;
      }

      .smartscreen_small {
        display: none;
      }
    }

    /* single line */
    @media all and (min-width: 170px) and (min-height: 105px) {
      .smartscreen_large {
        width: 200px;
        height: 80px;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-left: -100px;
        margin-top: -40px;
        display: inherit;
      }
      
      .image_large {
        display: inherit;
        padding-bottom: 7px;
      }

      .smartscreen_small {
        display: none;
      }
    }
    
  </style>
</head>
<body>
  <div id="Div1">
    <div class="smartscreen_large">
      <center>
        <img id="largeImage" class="image_large" tabIndex="1" alt="This web content has been reported as unsafe." src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAhxJREFUeNrsWYtxgzAMNZ2AEegG6QRlBLoB3aAjsEFHMBukncDNBLlMQDZINnClnkmJLxh/ZMfc5d05cAFZT1i2JJuxCJBSttAG+Q+8b1nuAJIltK2cBz4rcya/l8vYZ2cEENpoLrMEfHeTC/kG2km6A2UaqqHnk47xvraQqzQ5X2AflYW+WtMnkHsBP5/w/OOGzBHaF7QdtPPkf1T2Co16VUFd30rviFLpapReHT0aINmK8cRWjocBDwMyMOB4J1kSA/qiKJ7xmlj2KkAMvgFI64cnkr1KSZiKaEHkHYmEyOoQbCH9vW21eUS5K/kAb9jiHDg4el1lIgJ+/T7j1716Nmv4TLpgwmGsniSVG82MBA8YNRPaMZeXEY2IRV5eaorQdDhgBQxKx6cdidRGENQSYhrIdoEBrXUxQr0bWk/s9GqHAjzBlx9RX0YAlrcfrerKHWfFmfTL8IT+z+d2F9YyiRvKxC71MjqYOuxWEMi6pT2i3FOJkmJYfQjx2HqnO265ptOV7eTqfL5E5IKmc90vHVyIRC4pB+ctecu4wAOWQxfZxnedtik3h4CAZCO7NXEsllwJLnuPUo8KuG/0AnnP2WtfSAm+3SnR+9NtIk89H6jRkH6OgOLfr1iPdB7WrpZ8IiPaJLNLbcWcCImfkh+7qmgtCMiLux58e9QQfvlNZCMqx9EQ1pllYkPqBUOEzSF6LoY4n/774FeAAQChSfcFKXfEcAAAAABJRU5ErkJggg=="/>
        <br />
         Microsoft SmartScreen
      </center>
    </div>
    <div class="smartscreen_small">
      <center>
         <img id="smallImage" tabIndex="1" alt="Se notific� que el contenido de este sitio web no es seguro." src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAOVJREFUeNrElQERwyAMRdkUTAJzUgmVgIRKmAMkTELroBIyB5NQCRm5pRtHwxHWcvt3OXoEXjn4BGMUQkSPX3mzVwFyCTHjVkC50uQbT6bWRv0uxBPzopyLxtuI5U80wjTQ2TTSX8CPEFdua3KfTc/JRs4AyRF8YKJMxk4pYIVLfZLm1PwluAb6vkTsV9TAlVCSo8ObGphiWlcxHrgVY+yM/sDD61PbwQF2A8nPnbBim1lVLtdp6m6tfKmMwg9Q0Bb3Gni56Ctejs3VVUOTHwwhFgFIfcPed49O/86whb9tad5LgAEAKRi2QKUfvLAAAAAASUVORK5CYII=" />
      </center>
    </div>
  </div>
  <div id="left"></div>
  <div id="right"></div>
  <div id="top"></div>
  <div id="bottom"></div>
  <!-- Continuing through to the unsafe page requires navigation from a link in the document -->
  <a class="smartscreen_link" id="overrideLink"></a>
</body>
</html>

function Column(name, attr, width, visible, sortable) {
    'use strict';
    this.TitleName = name;
    this.Attribute = attr;
    this.Width = width;
    this.IsVisible = visible;
    this.IsSortable = sortable;

    if (sortable === true) {
        this.SortOrder = "asc";
    }
}

function GridTable(id, dataArray, pageLength, columnArray, wrapperId) {
    'use strict';
    this.IdTag = id;
    this.Element = document.getElementById(this.IdTag);
    this.Data = dataArray;
    this.SubsetData = dataArray;
    this.PageLength = pageLength;
    this.Columns = columnArray;
    this.StartingIndex = 0;
    this.renderHeadingRow();
    this.sortColumn(0);
    
    let idOfElement = this.IdTag;
    let idOfWrapper = wrapperId;

    // continuous scrolling
    document.getElementById(idOfWrapper).addEventListener('scroll', function () {
        var contentHeight, scrollHeight;
        contentHeight = document.getElementById(idOfElement).offsetHeight;
        scrollHeight = document.getElementById(idOfWrapper).scrollTop + document.getElementById(idOfWrapper).offsetHeight;

        if (scrollHeight >= contentHeight) {
            table.renderDataRows();
        }
    });
}

GridTable.prototype.renderRow = function (row, dataItem) {
    'use strict';
    var j, cell, text, span;
    for (j = 0; j < this.Columns.length; j++) {
        cell = row.insertCell(j);
        if (j == 0) {
            // add a span for a sprite image ('+' or '-')
            span = document.createElement("span");
            span.className = "sprite";
            if (dataItem.IsExpandRow) {
                span.className += " plus";
            }
            cell.appendChild(span);
        }
        text = dataItem[this.Columns[j].Attribute];
        if (text) {
            span = document.createElement("span");
            span.innerHTML = text;
            cell.appendChild(span);
        }
        cell.style.display = this.Columns[j].IsVisible ? "" : "none";
        cell.setAttribute("name", this.Columns[j].Attribute);
    }
};

GridTable.prototype.renderDataRows = function () {
    'use strict';
    var i, row, dataItem, tbodyList, tbody, endingIndex = this.StartingIndex + this.PageLength;

    if (endingIndex >= this.SubsetData.length) {
        endingIndex = this.SubsetData.length - 1;
    }

    tbodyList = this.Element.getElementsByTagName("tbody");

    if (tbodyList && tbodyList.length > 0) {
        tbody = tbodyList[0];
    } else {
        tbody = document.createElement("tbody");
        this.Element.appendChild(tbody);
    }

    for (i = 0; i < this.PageLength && i + this.StartingIndex < this.SubsetData.length; i++) {
        let indexItem = i + this.StartingIndex;
        let idText = "id" + indexItem;
        row = document.createElement("tr");
        row.id = idText;

        row.addEventListener('click', function () {
            table.expandCollapseSubRows(idText);
        });

        dataItem = this.SubsetData[indexItem];
        this.renderRow(row, dataItem);
        tbody.appendChild(row);
    }

    this.StartingIndex += this.PageLength;
};

GridTable.prototype.renderHeadingRow = function () {
    'use strict';
    var i, j, thead, row, col, cell, textSpan, spriteSpan;
    // Create <col /> elements for each column
    for (i = 0; i < this.Columns.length; i++) {
        col = document.createElement("col");
        col.width = this.Columns[i].Width;
        this.Element.appendChild(col);
    }

    // create <th> elements for each column
    thead = document.createElement("thead");
    row = document.createElement("tr");
    for (j = 0; j < this.Columns.length; j++) {
        cell = document.createElement("th");

        if (this.Columns[j].IsSortable) {
            let colIndex = j;
            cell.addEventListener('click', function () {
                table.sortColumn(colIndex);
            });
            spriteSpan = document.createElement("span");
            spriteSpan.className = "sprite up";
            cell.appendChild(spriteSpan);
            cell.className = "sortable-column";
        }
        textSpan = document.createElement("span");
        textSpan.textContent = this.Columns[j].TitleName;
        cell.appendChild(textSpan);
        cell.style.display = this.Columns[j].IsVisible ? "" : "none";
        cell.setAttribute("name", this.Columns[j].Attribute);
        cell.id = "col-header-" + this.Columns[j].Attribute;
        row.appendChild(cell);
    }
    thead.appendChild(row);
    this.Element.appendChild(thead);
};

GridTable.prototype.deleteDataRows = function () {
    'use strict';
    var table = this.Element;
    while (table.rows.length > 1) {
        table.deleteRow(table.rows.length - 1);
    }
};

GridTable.prototype.search = function (query) {
    'use strict';
    this.SubsetData = [];
    var queryLower, i, j, text;

    if (query && query.length > 0) {
        queryLower = query.toLowerCase();
        for (i = 0; i < this.Data.length; i++) {
            for (j = 0; j < this.Columns.length; j++) {
                text = this.Data[i][this.Columns[j].Attribute];
                if (text) {
                    if (text.toLowerCase().indexOf(queryLower) >= 0) {
                        this.SubsetData.push(this.Data[i]);
                        break;
                    }
                }
            }
        }
    } else {
        this.SubsetData = this.Data;
    }
    
    this.StartingIndex = 0;
    this.deleteDataRows();
    this.renderDataRows();
};

GridTable.prototype.countOfResults = function () {
    'use strict';
    return this.SubsetData.length;
};

GridTable.prototype.columnVisibility = function (column, isVisible) {
    'use strict';
    // change visibility of table cells renderDataRowsed on the users screen.
    var i, j, cellElements = document.getElementsByName(column);

    for (i = 0; i < cellElements.length; i++) {
        if (isVisible) {
            cellElements[i].style.display = "";
        } else {
            cellElements[i].style.display = "none";
        }
    }

    // change visibility setting of the column
    for (j = 0; j < this.Columns.length; j++) {
        if (this.Columns[j].Attribute === column) {
            this.Columns[j].IsVisible = isVisible;
        }
    }
};

GridTable.prototype.expandCollapseSubRows = function (parentRowId) {
    'use strict';
    var tableRowsArray = this.Element.rows, i, j, indexOfParentRow, dataElement, isExpanded, expandedRows, row, parentRow = document.getElementById(parentRowId);

    for (i = 0; i < tableRowsArray.length; i++) {
        if (tableRowsArray[i].id === parentRowId) {
            indexOfParentRow = parseInt(parentRowId.substring(2), 10);
            dataElement = this.SubsetData[indexOfParentRow];

            if (dataElement.IsExpandRow) {
                isExpanded = parentRow.getAttribute("data-expanded");

                if (isExpanded === "true") {
                    // If sub rows are shown then remove them
                    expandedRows = document.getElementsByClassName("class-" + parentRow.id);
                    while (expandedRows.length > 0) {
                        expandedRows[0].parentNode.removeChild(expandedRows[0]);
                    }
                    parentRow.setAttribute("data-expanded", false);
                    parentRow.className = "";
                    parentRow.getElementsByClassName("sprite")[0].className = "sprite plus";
                } else {
                    // if sub rows are not present then add them
                    parentRow.setAttribute("data-expanded", true);
                    parentRow.className = "collapsible-row";
                    parentRow.getElementsByClassName("sprite")[0].className = "sprite minus";
                    for (j = 0; j < dataElement.SubRows.length; j++) {
                        row = this.Element.insertRow(i + 1 + j);

                        // add a class to each row. This will be helpful when the rows need to be removed
                        row.className = "sub-row class-" + parentRow.id;
                        
                        if(j === 0) {
                            row.className += " applied-row";
                        }
                        if (j + 1 == dataElement.SubRows.length) {
                            // if last row 
                            row.className += " last-sub-row";
                        }
                        this.renderRow(row, dataElement.SubRows[j]);
                    }
                }
            }
        }
    }
};

GridTable.prototype.sortColumn = function (columnIndex) {
    'use strict';
    var colElement, spriteSpan, columnAttribute = this.Columns[columnIndex].Attribute, sortOrder = this.Columns[columnIndex].SortOrder;
    this.SubsetData.sort(function (a, b) {
        let x = "", y = "";

        if (a[columnAttribute]) {
            x = a[columnAttribute].toLowerCase();
        }
        if (b[columnAttribute]) {
            y = b[columnAttribute].toLowerCase();
        }

        if (sortOrder === "asc") {
            return x < y ? -1 : x > y ? 1 : 0;
        }
        return x > y ? -1 : x < y ? 1 : 0;
    });


    colElement = document.getElementById("col-header-" + this.Columns[columnIndex].Attribute);
    var spriteSpan = colElement.getElementsByClassName("sprite")[0];
    if (sortOrder === "asc") {
        this.Columns[columnIndex].SortOrder = "desc";
        spriteSpan.className = "sprite up";
        
    } else {
        this.Columns[columnIndex].SortOrder = "asc";
        spriteSpan.className = "sprite down";
    }

    spriteSpan.setAttribute("role", "presentation");

    this.StartingIndex = 0;
    this.deleteDataRows();
    this.renderDataRows();
};
PAD(function()
{
    var XHTML = "http://www.w3.org/1999/xhtml";
    
    // Time slicing constants
    var LIMIT    =  10; // Maximum number of nodes to process before checking time
    var DURATION = 200; // Maximum amount of time (ms) to process before unblocking UI
    var DELAY    =  15; // Amount of time (ms) to unblock UI

    // Tree building state
    var iterator;
    var nextNode;
    var root;
    var rootFirstChild;
    var time;
    
    // Template References
    var attrTemplate, attrName, attrValue;
    var elmStartTemplate, elmStartName;
    var elmEndTemplate, elmEndName;
    var cdataTemplate, cdataValue;
    var commentTemplate, commentValue;
    var style;    
    
    // Only invoke this script if it was injected by our parser. Test for a condition that is
    // impossible for a markup to create - two direct children of the document.
    var secondRootElement = document.documentElement.nextElementSibling;
    if (secondRootElement == null)
    {
        // We've been included externally, bail
        return;
    }

    // Remove the script element from the document so that it doesn't show up in the XML tree view
    document.removeChild(secondRootElement);

    // Main entry point. Build the tree view.
    function buildTree()
    {
        time = (new Date()).getTime();
        
        // Cache references to the root element and its first child for later use
        root = document.documentElement;
        rootFirstChild = root.firstChild;
        
        // Initialize templates
        buildAttributeTemplate();
        buildCDATASectionTemplate();
        buildCommentTemplate();
        buildElementTemplate();
        buildStyles();
        
        // Start processing the document
        buildXMLDeclaration();
        iterator = document.createNodeIterator(document, NodeFilter.SHOW_ALL, null, false);
        nextNode = iterator.nextNode();
        buildNode();
    }
    
    // Resume tree building after pausing to unblock UI
    function resumeBuilder()
    {
        time = (new Date()).getTime();
        buildNode();
    }
    
    // Build the tree incrementally and delegate to appropriate node function
    function buildNode()
    {
        var node, i = 0;
        while(nextNode)
        {
            if(i++ <= LIMIT)
            {
                node = nextNode;
                nextNode = iterator.nextNode();
                switch(node.nodeType)
                {
                    case Node.CDATA_SECTION_NODE          : buildCDATASection         (node); break;
                    case Node.COMMENT_NODE                : buildComment              (node); break;
                    case Node.DOCUMENT_TYPE_NODE          : buildDocumentType         (node); break;
                    case Node.ELEMENT_NODE                : buildElement              (node); break;
                    case Node.PROCESSING_INSTRUCTION_NODE : buildProcessingInstruction(node); break;
                    // No additional handling is needed for text nodes
                }
            }
            else if((new Date()).getTime() - time >= DURATION)
            {
                setTimeout(resumeBuilder, DELAY);
                break;
            }
            else
            {
                i = 0;
            }
        }
    }
    
    // Attr
    function buildAttribute(attr, treeNode)
    {
        attrName.textContent = attr.nodeName;
        attrValue.textContent = attr.nodeValue;
        
        // Custom Styling for xmlns or xml
        if(attr.namespaceURI && (attr.namespaceURI == "http://www.w3.org/2000/xmlns/" || attr.namespaceURI == "http://www.w3.org/XML/1998/namespace"))
        {
            attrName.style.color = "red";
            attrValue.style.color = "red";
        }
        else
        {
            attrName.style.color = "#900";
            attrValue.style.color = "black";
        }

        treeNode.appendChild(attrTemplate.cloneNode(true));
    }
    
    // Attr Template
    function buildAttributeTemplate() 
    {
        // Template root
        attrTemplate = document.createDocumentFragment();
        attrTemplate.appendChild(document.createTextNode(" "));
        
        // Attribute name
        attrName = document.createElementNS(XHTML, "span");
        attrTemplate.appendChild(attrName);
        
        attrTemplate.appendChild(document.createTextNode('="'));
        
        // Attribute value
        attrValue = document.createElementNS(XHTML, "span");
        attrValue.style.fontWeight = "bold";
        attrTemplate.appendChild(attrValue);
       
        attrTemplate.appendChild(document.createTextNode('"'));
    }
    
    // CDATASection
    function buildCDATASection(cdata)
    {
        cdataValue.textContent = cdata.nodeValue;
        var treeNode = cdataTemplate.cloneNode(true);
        // Set the appropriate state for expand/collapse behavior
        treeNode.onclick = toggleCData;

        cdata.parentNode.insertBefore(treeNode, cdata);
        cdata.parentNode.removeChild(cdata);
    }
    
    // CDATASection Template
    function buildCDATASectionTemplate() 
    {
        cdataTemplate = document.createElementNS(XHTML, "a");
        cdataTemplate.style.color = "blue";
        cdataTemplate.style.fontWeight = "normal";
        // Set the appropriate state for expand/collapse behavior
        cdataTemplate.className = "collapse";
        cdataTemplate.href = "#";
        cdataTemplate.style.position = "relative";

        cdataTemplate.appendChild(document.createTextNode("<![CDATA["));
        
        cdataValue = document.createElementNS(XHTML, "div");
        cdataValue.style.color = "black";
        cdataValue.style.whiteSpace = "pre";
        cdataTemplate.appendChild(cdataValue);
        
        var end = document.createTextNode("]]>");
        cdataTemplate.appendChild(end);
    }
    
    // Comment
    function buildComment(comment)
    {
        commentValue.textContent = comment.nodeValue;
        insertBefore(commentTemplate.cloneNode(true), comment);
    }
    
    // Comment Template
    function buildCommentTemplate()
    {
        commentTemplate = document.createElementNS(XHTML, "div");
        commentTemplate.style.color = "blue";
        commentTemplate.style.fontWeight = "normal";
        
        var start = document.createTextNode("<!--");
        commentTemplate.appendChild(start);
        
        commentValue = document.createElementNS(XHTML, "span");
        commentValue.style.color = "#888";
        commentTemplate.appendChild(commentValue);
        
        var end = document.createTextNode("-->");
        commentTemplate.appendChild(end);
    }
    
    // DocumentType
    function buildDocumentType(doctype)
    {
        var treeNode = document.createElementNS(XHTML, "div");
        treeNode.style.fontWeight = "normal";
        treeNode.style.color = "blue";
        treeNode.textContent = "<!DOCTYPE " + doctype.name
                        + ((doctype.systemId) ? ' SYSTEM "' + doctype.systemId + '"' : "")
                        + ((doctype.publicId) ? ' PUBLIC "' + doctype.publicId + '"' : "")
                        + ">";
        insertBefore(treeNode, doctype);
    }

    // Element
    function buildElement(elm)
    {
        // Skip HTML elements since they are part of the tree view, not the original XML
        if(elm instanceof HTMLElement) return;
    
        // Retrieve information about this element's content model (has children, needs to be collapsable)
        var firstChild = (elm == root) ? rootFirstChild : elm.firstChild;
        var hasChildren = (null != firstChild);
        var isCollapsable = (hasChildren && (null != firstChild.nextSibling || firstChild.nodeType != Node.TEXT_NODE));
        
        // Build the start tag from the element start template
        elmStartName.textContent = elm.nodeName;
        var treeNode = elmStartTemplate.cloneNode(true);
        
        // Check if this needs to be a collapsable element
        if(isCollapsable) 
        {
            // Set the appropriate state for expand/collapse behavior
            treeNode.href = "#";
            treeNode.className = "collapse";
            treeNode.style.position = "relative";
            treeNode.onclick = toggle;
        }
        
        // Insert the generated start tag into the tree
        if(elm == root)
        {
            // Ensure the start tag for the root element appears after
            // the display for preceeding comments, processing instructions, etc.
            elm.insertBefore(treeNode, rootFirstChild);
        }
        else
        {
            // For other elements, simply place make the start tag the first child
            elm.insertBefore(treeNode, elm.firstChild);
        }
        
        // Generate representation of attributes
        for(var i = 0; i < elm.attributes.length; i++)
        {
            buildAttribute(elm.attributes[i], treeNode);
        }
        
        // Close the start tag appropriately
        treeNode.appendChild(document.createTextNode((hasChildren) ? ">" : "/>"));
        
        // Create an end tag (if needed)
        if(hasChildren)
        {
            elmEndName.textContent = elm.nodeName;
            treeNode = elmEndTemplate.cloneNode(true);
            if(isCollapsable)
            {
                treeNode.className = "block";
                treeNode.style.marginLeft = "-2em";
            }
            elm.appendChild(treeNode);
        }
    }
    
    // Element Template
    function buildElementTemplate()
    {
        // Start tag
        elmStartTemplate = document.createElementNS(XHTML, "a");
        elmStartTemplate.style.color = "blue";
        elmStartTemplate.style.marginLeft = "-2em";
        elmStartTemplate.appendChild(document.createTextNode("<"));
        elmStartName = document.createElementNS(XHTML, "span");
        elmStartName.style.color = "#900";
        elmStartTemplate.appendChild(elmStartName);
        
        // End tag
        elmEndTemplate = document.createElementNS(XHTML, "span");
        elmEndTemplate.style.color = "blue";
        elmEndTemplate.appendChild(document.createTextNode("</"));
        elmEndName = document.createElementNS(XHTML, "span");
        elmEndName.style.color = "#900";
        elmEndTemplate.appendChild(elmEndName);
        elmEndTemplate.appendChild(document.createTextNode(">"));
    }
    
    // ProcessingInstruction
    function buildProcessingInstruction(pi)
    {
        var treeNode = document.createElementNS(XHTML, "div");
        treeNode.style.color = "blue";
        treeNode.style.fontWeight = "normal";
        treeNode.textContent = "<?" + pi.nodeName + " " + pi.nodeValue + "?>";
        insertBefore(treeNode, pi);
    }
    
    // Create a stylesheet to apply general styles to the tree view
    function buildStyles()
    {
        // Style definitions
        var styles = "@namespace html url(" + XHTML + ");"
            
            // Setup styles on the root element
            + " :root {                   "
            + "    font:small Verdana;    "
            + "    font-weight: bold;     "
            + "    padding: 2em;          "
            + "    padding-left:4em;      "
            + " }                         "
            
            // Default all elements to block styling
            // This allows generic elements to provide structure
            + " * {                       "
            + "    display: block;        "
            + "    padding-left: 2em;     "
            + " }                         "
            
            // Ensure the style element stays hidden
            + " html|style {              "
            + "    display: none;         "
            + " }                         "
            
            // Default styling for tag-like spans/anchors
            + " html|span, html|a {       "
            + "    display: inline;       "
            + "    padding: 0;            "
            + "    font-weight: normal;   "
            + "    text-decoration: none; "
            + " }                         "
            
            + " html|span.block {         "
            + "    display: block;        "
            + " }                         "
            
            // Hide content under a collapsed element
            + " *[html|hidden],           "
            + " span.block[html|hidden] { "
            + "    display: none;         "
            + " }                         "
            
            // Show "+" for elements that can be expanded
            + " .expand {                 "
            + "    display: block;        "
            + " }                         "
            + " .expand:before {          "
            + "    content: '+';          "
            + "    color: red;            "
            + "    position: absolute;    "
            + "    left: -1em;            "
            + " } "
            
            // Show "-" for elements that can be collapsed
            + " .collapse {               "
            + "    display: block;        "
            + " }                         "
            + " .collapse:before {        "
            + "    content: '-';          "
            + "    color: red;            "
            + "    position: absolute;    "
            + "    left:-1em;             "
            + " }                         ";
                          
        // Build a <style> element to commit the styles to the current page
        style = document.createElementNS(XHTML, "style");
        root.insertBefore(style, root.firstChild);
        style.textContent = styles;
    }
    
    // XML Declaration
    function buildXMLDeclaration()
    {
        // Display an <?xml?> declaration based on DOM data
        var xmlDecl = document.createElementNS(XHTML, "div");
        xmlDecl.style.color = "blue";
        xmlDecl.style.fontWeight = "normal";
        xmlDecl.style.marginLeft = "-4em";
        xmlDecl.textContent = '<?xml'
                            + ' version="' + document.xmlVersion + '"'
                            + ((document.xmlEncoding) ? ' encoding="' + document.xmlEncoding + '"' : "")
                            + ((document.xmlStandalone) ? ' standalone="' + document.xmlStandalone + '"' : "")
                            + '?>';
        root.insertBefore(xmlDecl, root.firstChild);
    }
    
    // Helper function to wrap text nodes with a container element
    // This allows them to be displayed/hidden as subtree visibility is toggled
    function wrapText(txt)
    {
        var treeNode = document.createElementNS(XHTML, "span");
        treeNode.style.fontWeight = "bold";
        txt.parentNode.insertBefore(treeNode, txt);
        treeNode.appendChild(txt);
        return treeNode;
    }
    
    // Helper function to insert a tree view node before a reference node
    // This moves the rendering for top-level nodes inside the root element
    function insertBefore(node, refNode)
    {
        if(refNode.parentNode == document)
        {
            // Move rendering inside the root element and adjust positioning accordingly
            node.style.marginLeft = "-4em";
            root.insertBefore(node, rootFirstChild);
        }
        else
        {
            refNode.parentNode.insertBefore(node, refNode);
        }
    }
    
    // Helper function for toggling the visibility of a element subtree
    function toggle(e)
    {
        // Grab target element, determine current state, and update toggle
        var node = e.currentTarget;
        var hide = (node.className == "collapse");
        node.className = (hide) ? "expand" : "collapse";
        
        // Update visibility of all following elements / text nodes
        while(node = node.nextSibling)
        {
            if(node.nodeType == Node.TEXT_NODE)
            {
                // Wrap raw text nodes so we can toggle their visibility
                node = wrapText(node);
            }
            if(node.nodeType == Node.ELEMENT_NODE)
            {
                if(hide)
                {
                    node.setAttributeNS(XHTML, "hidden", "true");
                }
                else
                {
                    node.removeAttributeNS(XHTML, "hidden");
                }
            }
        }
        
        return false;
    }

    // Helper function for toggling the visibility of a CDATA content
    function toggleCData(e) {
        // Grab target element, determine current state, and update toggle
        var node = e.currentTarget;
        var hide = (node.className == "collapse");
        node.className = (hide) ? "expand" : "collapse";

        // Update visibility of all following elements / text nodes
        var cdataContent = node.firstChild.nextSibling;
        if (hide) {
            cdataContent.setAttributeNS(XHTML, "hidden", "true");
        }
        else {
            cdataContent.removeAttributeNS(XHTML, "hidden");
        }

        return false;
    }

    buildTree();
})()
PADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGX

Youez - 2016 - github.com/yon3zu
LinuXploit