UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONOMICAS

ESCUELA DE ECONOMIA

Materia: Economía del Desarrollo I

Docente: Carlos Ademir Pérez Alas


Tema: Alcances y limitaciones de la Caracterización Empírica del Desarrollo, desde una perspectiva ortodoxa, para el periodo de referencia 2005-2021, casos de estudio Oceanía.

Integrantes:

Apellidos Nombres DUE Participación
Amaya Flores Josué Nahum AF16010 100%
Canales López José Manuel CL12025 100%
Escobar Morales Medardo José EM18003 70%
Peña Gálvez Alicia Betsabé PG07013 100%

Ciclo: I-2023

Fecha Entrega: Lunes 29 de Junio de 2023

Ciudad Universitaria, San Salvador, El Salvador

Introducción

El concepto de desarrollo ha sido objeto de mucho debate y discusión durante siglos. No existe una definición única de desarrollo, pero generalmente se entiende como el proceso de mejorar la calidad de vida de las personas.

Una forma de medir el desarrollo es utilizar indicadores sintéticos, como el PIB per cápita, la esperanza de vida y las tasas de alfabetización. Estos indicadores pueden proporcionar una instantánea útil del estado de desarrollo en un país o región en particular.

Sin embargo, también existen limitaciones en el uso de indicadores sintéticos para medir el desarrollo. Por ejemplo, estos indicadores no siempre tienen en cuenta la distribución de la riqueza o la calidad de vida de los diferentes grupos de personas. Además, pueden verse influenciados por factores como los recursos naturales y la geografía.

En este trabajo nos centraremos en los alcances y limitaciones de la caracterización empírica del desarrollo desde una perspectiva ortodoxa. Usaremos datos de estudios de casos de Oceanía para examinar cómo se han utilizado estos indicadores para medir el desarrollo en la región durante los últimos 15 años (2005-2021).

Argumentaremos que la perspectiva ortodoxa proporciona un marco útil para comprender el desarrollo, pero también tiene algunas limitaciones. Concluiremos discutiendo algunos de los desafíos de medir el desarrollo en Oceanía. Abordaremos las siguientes cuestiones:

¿Cuáles son los indicadores clave utilizados para medir el desarrollo en Oceanía?

¿Cómo han cambiado estos indicadores en los últimos 15 años?

Creemos que este documento hará una contribución significativa a la literatura sobre el desarrollo en Oceanía. Al proporcionar un análisis crítico de la caracterización empírica del desarrollo desde una perspectiva ortodoxa.

A lo largo de la historia, han existido diversas teorías o escuelas de pensamiento que formulan su visión sobre el concepto de “desarrollo”, el cual difiere entre todas ellas, por lo que generar un concepto global perteneciente a una corriente principal en el pensamiento sobre desarrollo ha sido un gran reto. En este sentido, es importante identificar las principales corrientes de pensamiento existentes dentro de la Economía del Desarrollo, hablamos de: Teoría de la modernización, Teoría Estructuralista, Teoría Neomarxista, Teoría Neoliberal y Teorías alternativas de desarrollo. Lo cual, deja en evidencia que existe una visión ortodoxa y heterodoxa sobre el concepto de desarrollo, mostrando así un cambio en el paradigma del desarrollo.

Objetivos

Objetivo General

Analizar los alcances y limitaciones de la caracterización empírica del desarrollo desde una perspectiva ortodoxa, enfocándose en el periodo de referencia de 2005 a 2021 y tomando como casos de estudio los países de Oceanía.

Objetivos Específicos

Analizar críticamente la caracterización empírica del desarrollo en Oceanía desde una perspectiva ortodoxa.

Identificar los indicadores clave utilizados para medir el desarrollo en Oceanía.

Evaluar las limitaciones y desafíos asociados con el uso de la caracterización empírica del desarrollo en el contexto de los países de Oceanía, considerando factores culturales, geográficos y económicos específicos de la región.

Justificación

La utilización de indicadores multivariados sintéticos permite describir aquellos fenómenos económicos a través de la interacción de un conjunto de variables. En este sentido, se compone de una Variable Compleja, la cual indica el fenómeno a describir y a medir a través de una batería de indicadores variados que respondan a un marco teórico asociado a esta variable compleja.

La información que se busca al conocer las variables que describen y explican el nivel de desarrollo para las regiones de Oceanía durante el periodo de 2005-2021 es que, a partir de un concepto más amplio sobre el fenómeno del desarrollo al que alude el enfoque ortodoxo, se acuda a la utilización de indicadores multivariados sintéticos lo que nos permitirá robustecer de esta forma este enfoque y presentarlo como un fenómeno multidimensional que tenga que ver con el aumento del bienestar de la población y que a su vez requiere de la utilización de variables económicas, ambientales, tecnologicas y humanas.

En este sentido, el presente trabajo ha tomado a bien considerar un total de 27 variables, distribuidas en 4 dimensiones principales que explicarán a la variable compleja “desarrollo”. Estas dimensiones son: dimensión económica (7), humana (14), ambiental (4) y tecnología (2).

El presente estudio busca, por tanto, se pretende bajo la aplicacón de indicadores multivariados sintéticos, demostrar los alcances y limitaciones de la caracterización empírica del desarrollo bajo una perspectiva ortodoxa, para las regiones de Oceanía en el período de 2005-2021.

1. Marco Teórico y Referencial

En la sociedad actual, el sistema dominante de producción en la estructura económica global es el capitalismo. Este sistema se caracteriza por la explotación de una clase que posee los medios de producción sobre otra clase que solo posee su fuerza laboral. Esta relación de explotación ha perdurado durante mucho tiempo y ha permeado profundamente en la superestructura mundial.

La aparición de la concepción de desarrollo es parte de esta tendencia histórica. Después de la Segunda Guerra Mundial, los Estados comenzaron a adoptarla como un aspecto normativo más importante. Se promovieron las ventajas del libre mercado y los resultados del intenso proceso de industrialización experimentado en Estados Unidos a través del “Plan Marshall”. Este esfuerzo resultó muy atractivo para aquellos países que habían sufrido graves consecuencias y buscaban salir de una situación dramática a mediados de la década de 1940. Además, el Plan Marshall destacaba por su lucha hegemónica particular contra el socialismo soviético.

Los primeros proyectos emprendidos por la recién formada Organización de las Naciones Unidas (ONU) en 1945 reflejan los principales objetivos del desarrollo económico y social, que buscan “fomentar el progreso y mejorar los niveles de vida en un espíritu de libertad, utilizando las instituciones internacionales para promover el avance económico y social de todos los pueblos” (Sunkel y Pedro Paz, 1970, p. 18).

Los objetivos de lograr altos niveles de crecimiento económico, fundamentados en procesos masivos de industrialización, requerían cambios tecnológicos y de productividad a un ritmo acelerado, lo que marcó los primeros pasos hacia la consolidación del capitalismo como el sistema económico predominante a nivel global en la actualidad. En este contexto, aquellos países que se destacan en términos absolutos y en tasas de crecimiento son considerados naciones desarrolladas, siendo Estados Unidos el principalreferente de esta visión (Montoya, 2000).

Con la aparición del concepto de desarrollo económico, se identifican países que cumplen con las características de esta visión, los cuales se caracterizan por aprovechar sus recursos naturales para lograr una mayor producción y una mayor participación en los mercados, lo que les permite alcanzar un crecimiento económico. Por otro lado, aquellos países que carecen de crecimiento económico e industrialización se denominan países subdesarrollados, tal como lo explica Aquiles Montoya (2000): “un conjunto complejo e interrelacionado de fenómenos que se manifiestan en desigualdades notables de riqueza y pobreza, en el subaprovechamiento de las capacidades productivas, en la dependencia económica, cultural, política y tecnológica” (Montoya, 2000, p. 12).

Se han empleado diversos indicadores para medir el proceso de desarrollo económico y reflejar el crecimiento económico a lo largo del tiempo, como el Producto Interno Bruto (PIB), el PIB per cápita y el Valor Agregado (VA = PIB - Consumo Intermedio). Sin embargo, a pesar de estos esfuerzos, el objetivo del desarrollo de reducir las disparidades sociales y económicas entre las personas no se ha materializado de manera significativa en muchos países. En los países considerados subdesarrollados, persisten la pobreza, el desempleo, la desigualdad y otros problemas inherentes al sistema capitalista.

La falta de resultados satisfactorios de las teorías de desarrollo ha llevado a la evaluación de indicadores como el PIB y el PIB per cápita, y a la formulación de enfoques alternativos que buscan proporcionar a los países subdesarrollados las capacidades necesarias para cubrir tanto las necesidades básicas como otras necesidades, de manera similar a lo logrado por los países desarrollados.

1.1 Marco teórico

1.1.1 Teorías del desarrollo

Teoría Keynesiana

Las escuelas clásicas y neoclásicas se enfrentaron a fuertes críticas tras la Gran Depresión, ya que esta crisis reveló la dificultad de lograr el equilibrio a través del mecanismo de precios en los distintos mercados, como el de bienes, financiero y laboral. Quedó en evidencia que los ajustes no se producen de manera automática, lo que dio lugar al surgimiento del Keynesianismo, denominado así en honor a su principal autor, John Maynard Keynes.

Keynes desafió la teoría clásica al argumentar que la economía no alcanza automáticamente el pleno empleo y no se autorregula. Según Keynes, el equilibrio al que tiende la interacción de los factores económicos no garantiza el pleno empleo de los recursos productivos. Una disminución en el empleo o los salarios puede resultar en una reducción de la demanda y, por ende, de la producción, lo que aumenta el desempleo. En consecuencia, Keynes propuso que el Estado estimule la demanda mediante un mayor gasto económico. (Calva, 2006).

Keynes señala dos herramientas para lograr el desarrollo económico: La política monetaria y La política fiscal. (Keynes 1936).

Keynes argumentaba que el pleno empleo era fundamental para lograr un crecimiento económico dentro del sistema capitalista, aunque esto implicara que el Estado tuviera que realizar inversiones y aumentar el déficit público. Además, sostenía que los salarios pagados por los capitalistas a los trabajadores no deberían ser vistos como un gasto, sino como un medio para que los capitalistas obtuvieran ganancias. Según Keynes, los trabajadores gastan sus salarios en bienes necesarios para su subsistencia, lo que genera un retorno de dinero a las empresas capitalistas que son las productoras de esos bienes. (Keynes, 1936)

Teoría de la modernización

En la década de los años cincuenta, surgió la teoría de la Modernización como resultado de diversos acontecimientos históricos, como el ascenso de Estados Unidos como potencia económica y política, la expansión de países socialistas percibida como una amenaza y la desaparición de imperios coloniales en algunas regiones de y África. Estos eventos motivaron la necesidad de orientar a estos países hacia el desarrollo económico basado en el sistema capitalista y los países considerados desarrollados (Montoya,2000).

Según la teoría de la Modernización siendo esta de corriente ortodoxa, el cambio social ocurre de manera evolutiva y gradual, lo que conduce al progreso deseado desde la perspectiva del desarrollo económico. El objetivo de la modernización es homogeneizar las diferentes sociedades para mejorar sus condiciones de vida a través de la industrialización dentro del sistema capitalista.

Esta teoría sostiene que el desarrollo de los países se puede lograr mediante la modernización, que se materializa principalmente a través de la industrialización. Este proceso implica una transformación, ya que implica reemplazar las estructuras y valores de las economías subdesarrolladas mediante la implementación de políticas que reduzcan la participación de la agricultura en el PIB y otras acciones arraigadas en la idiosincr de los países subdesarrollados. Como se señala en el texto citado: “Se trata de una teoría fundamentada en el análisis neoclásico que, al identificar el desarrollo con el crecimiento económico, considera los procesos como resultados más o menos automáticos del mercado” (Montoya, 2000, p. 81).

El Estado se presenta como un ente canalizador de recursos y en paralelo deberá realizar la planificación necesaria para la aplicación de políticas orientadas al desarrollo industrial por medio de la inversión. (Capitán 1996).

Las tres características importantes en la teoría de la modernización: 1) La industrialización es el pilar fundamental para el desarrollo. 2) Se aborda el subdesarrollo como problema relativo y son explicados por los círculos viciosos de pobreza que provocan un estancamiento permanente. 3) Créditos o inversiones directas son formas de ayuda que activan el proceso de crecimiento por medio de la inversión (Capitán 1996).

Teoría de la dependencia

Esta teoría surge con el propósito de explicar la situación de subdesarrollo en América Latina y la dependencia de estos países respecto a las naciones desarrolladas. Aunque se enfoca principalmente en aspectos económicos, no excluye consideraciones políticas, ideológicas, sociales y culturales. Se plantea que el subdesarrollo y la dependencia de los países subdesarrollados son el resultado de un proceso histórico global relacionado con la expansión del sistema capitalista a nivel mundial. (Montoya, 2000).

La contribución de esta perspectiva al entendimiento y análisis del subdesarrollo en América Latina se caracteriza por su enfoque crítico en lugar de propositivo. A diferencia de la visión estructuralista del desarrollo, que se centra en un análisis más analítico. (Montoya, 2000).

Según Theotonio Dos Santos, destacado exponente de la teoría de la Dependencia, se entiende por dependencia: “… una situación en la cual la economía de un determinado país está condicionado por el desarrollo y la expansión de otra economía la cual está sujeta la primera”. (Montoya, 2000, p. 123).

André Gunder Frank, otro destacado exponente de la teoría de la Dependencia, busca en sus trabajos explicar las causas y raíces del subdesarrollo. Según Gunder Frank, el subdesarrollo no se debe únicamente a la falta de instituciones sólidas y capital en estos países, sino que también es el resultado de un proceso histórico que ha promovido el llamado Desarrollo Económico en algunos países a través de la industrialización y el crecimiento económico, favorecidos por la dominancia del sistema capitalista. (Montoya, 2000).

Teoría estructuralista del desarrollo

En esta teoría se distinguen dos grupos de países: los periféricos, que corresponden a países subdesarrollados, y los países centrales, que son países desarrollados. Los países centrales se caracterizan por tener economías industrializadas bajo el sistema capitalista, mientras que los países periféricos se consideran rezagados en términos tecnológicos, con niveles organizativos y productividad más bajos (Montoya, 2000).

El desarrollo económico consiste en una reinversión nacional del excedente, que permita un aumento de la renta que será posteriormente redistribuida de forma equitativa, ello solamente es posible por un cambio político radical (Capitán 1996).

La perspectiva estructuralista del desarrollo comparte ciertas similitudes con la teoría de la Modernización, en tanto ambas sostienen que la industrialización es el camino adecuado para abordar la pobreza y otros desafíos que enfrentan los países periféricos.

Sin embargo, según la perspectiva estructuralista del desarrollo, las raíces del subdesarrollo en América Latina se atribuyen a la dependencia de estos países en las exportaciones de productos primarios. Esto se debe a la división internacional del trabajo, donde América Latina se especializa en la producción de alimentos y materias primas, mientras que depende de las importaciones de bienes industriales de los países centrales, que son los países desarrollados según esta corriente de pensamiento.

Según lo señalado por Aquiles Montoya (2000), R. Prebisch observó que estas condiciones del mercado internacional favorecen los intereses de los países centrales. Como resultado, la brecha entre

Los países periféricos y los países centrales continuará ampliándose con el tiempo. Esto se debe a la especialización de los países periféricos en la exportación de productos primarios, lo cual lleva a un deterioro de los términos de intercambio debido a la pérdida del poder adquisitivo de las personas en América Latina y la disminución de los precios de exportación en la región latinoamericana.

Teoría Neomarxista del desarrollo

Fue otra escuela de la Economía Política del Desarrollo alternativa a la escuela de la modernización. Surgió a mediados de los años cuarenta del siglo XX (hidalgo, 2011)

**Según (capitan, 1996), esta teoría se caracteriza por:**
  1. El subdesarrollo es concebido por la continua extracción de excedente generado en la periferia por parte de las economías capitalistas avanzadas (sistema de relaciones de intercambio desigual). Lo anterior implica que los países subdesarrollados no sean capaces de financiar sus procesos de industrialización y no crecen porque no crece el ahorro externo por dicha fuga de excedente, siendo así que el poco valor que queda en la economía no se distribuye equitativamente, manteniendo un tejido productivo precario y esto genera que estos países tengan un bajo ingreso per cápita y bajas tasas de acumulación de capital y es la razón por la que tienen un bloqueo al desarrollo.
  1. El desarrollo viene dado entonces por una reinversión nacional del excedente que aumente los niveles de renta para que esta se redistribuya equitativamente.
  1. Dentro del modo de producción capitalista, el desarrollo económico se determina por la posición de la economía a nivel internacional.
  1. El subdesarrollo es un fenómeno inherente al capitalismo, necesitando así, un cambio político radical. El autor plantea las revoluciones populares que aparten a las élites del poder y permitan instaurar un socialismo nacional, desconectando del sistema económico mundial a estos países.

Teoría Neoliberal del desarrollo

En la teoría neoliberal desarrollo económico se fundamente en la eficacia del mercado para obtener una óptima asignación de recursos, obteniendo de la desigualdad económica un incentivo humano y maximizar el desarrollo por la liberación del mercado internacional (Capitán 1996).

Las tres características importantes en la teoría Neoliberal son:

  1. La no intervención del estado maximiza la eficiencia y el bienestar económico.
  1. Desinterés por la igualdad social al plantear que la desigualdad económica es un importante incentivo humano.
  1. Mantiene la postura que los beneficios son mutuos en el comercio internacional por lo que se obtiene muchas ventajas de este y a la vez aportaciones importantes en el desarrollo (Capitán 1996).

El Estado tiene una mínima o nula participación, puede intervenir únicamente como impulsador para el cumplimiento de leyes que beneficien al mercado. (Capitán 1996).

Teorías Alternativas del desarrollo

En las teorías Alternativas el desarrollo se obtiene mediante el proceso multidimensional de satisfacción efectiva de las necesidades básicas de los individuos (materiales y espirituales básicas) de la clase trabajadora, permitiendo su desarrollo integral (expresión, creatividad, igualdad y libre determinación), garantizando derechos humanos, civiles, políticos, e individuales. (Capitán 1996).

Las tres características importantes en la teoría Neoliberal son: 1) Cambia el paradigma del desarrollo. Se transita del desarrollo basado en la riqueza (ortodoxo) a un desarrollo basado en la reducción de la pobreza. 2) Desarrollo alternativo. Se centra en la satisfacción de las necesidades humanas materiales (alimentación, vivienda, salud, educación, etc.) y las necesidades inmateriales (espirituales, de realización personal, etc.). 3) Desarrollo de ser (Capitán 1996):

> Igualitario: Satisfacción de necesidades humanas básicas.

> Endógeno y autónomo: desarrollo centrado en la soberanía y libre determinación económica.

> Ecológico: El uso racional de los recursos naturales.

> El desarrollo basado en cambios 

El objetivo de las teorías alternativas es, reducir la pobreza, por tanto, se orienta al desarrollo individual y comunitario, aumentando su productividad para que pueda acceder a ingresos más altos. Entonces, el papel del Estado es dotar de educación, alimentación y salud de calidad para que los trabajadores sean más productivos (Capitán 1996).

1.1.2 Enfoques del desarrollo

Existen diferentes enfoque desde los cuales se puede explicar la teoría del desarrollo, estos enfoques son:

Desarrollo desde enfoque Ortodoxo

La teoría ortodoxa se basó inicialmente en los economistas neoclásicos como Alfred Marshall, Leon Walras, Vilfredo Pareto y Arthur Pigou, y posteriormente tuvo acercamientos con otras corrientes económicas. No obstante, la conexión entre la ortodoxia y los neoclásicos es esencial en cualquier análisis debido al significado histórico que representa para el desarrollo (Montoya, 2000).

La economía ortodoxa, tal como lo define el Seminario de Economía Crítica (TAIFA) en su libro “Crítica a la economía Ortodoxa”, se basa en las teorías fundamentadas en la doctrina económica tradicional. Durante los últimos 20 años, el pensamiento neoclásico o liberal se ha convertido en el paradigma dominante y exclusivo de la economía, representando una visión ortodoxa única que abarca toda la corriente convencional de la ciencia económica (Etxezarreta, 2004).

las principales características de la ortodoxia o pensamiento neoclásico son las siguientes según Barry Clark en el libro Crítica a la Economía Ortodoxa (Etxezarreta, 2004):

Existen intereses individuales que operan de manera autónoma, empleando la capacidad de razonamiento para satisfacer necesidades (Clark, 2004). Además, se establece un gobierno cuya función es proteger los derechos establecidos por la constitución, y se reconoce que “el gobierno es tanto mejor cuanto menos gobierna” (Clark, 2004).

En este contexto, no existe una escala objetiva para determinar qué valores son superiores a otros, lo que permite a los individuos definir el bien y el mal según sus preferencias personales. La libertad se entiende como la ausencia de coerción por parte del gobierno u otras personas. Asimismo, se busca la igualdad, que implica que todos los ciudadanos tienen las mismas oportunidades para participar en actividades económicas y disfrutar de los mismos derechos civiles establecidos por la constitución. La justicia requiere proteger los derechos de propiedad y civiles establecidos por la constitución, y sancionar a quienes violen los derechos de los demás. Por último, la eficiencia se refiere a una situación en la que nadie puede mejorar económicamente sin perjudicar a otra persona.

En el ámbito de la economía ortodoxa, se destaca la racionalidad de los agentes, quienes buscan maximizar su utilidad individual dentro de las limitaciones de su entorno y es el que abordaremos en la presente investigación.

Desarrollo desde enfoque Heterodoxo

La corriente de la economía heterodoxa se caracteriza por su enfoque en la creación de nuevas teorías a partir de la identificación de nuevos hechos históricos que modifican un marco socioeconómico específico. Además, parte del supuesto de que las teorías económicas existentes resultan insuficientes o inadecuadas para comprender y abordar dichos cambios. (CEPAL, 2004).

Según el economista mexicano Roberto Escalante, la economía heterodoxa se define como cualquier contribución que busca el bienestar social y que se opone a la corriente teórica dominante (Escalante, 2009). En otras palabras, la heterodoxia implica un enfoque en constante evolución a lo largo del tiempo en contraposición a lo que se considera ortodoxo. Un ejemplo destacado de esto, como señala Escalante, es el surgimiento de Keynes como economista heterodoxo frente a la economía neoclásica dominante en la década de los treinta. Posteriormente, con la síntesis neoclásica, algunas ideas keynesianas fueron adoptadas como ortodoxas (Escalante, 2009).

El Desarrollo sustentable y sostenible

Partimos del hecho que el desarrollo sustentable y el desarrollo sostenible están vinculados a aquellos objetivos sociales, económicos y ambientales.

La diferencia entre estos es clara: la perduración del desarrollo sustentable en el tiempo alcanzará un grado de desarrollo sostenible.

El desarrollo sustentable no se refiere a una meta tangible ni cuantificable a ser alcanzada en determinado plazo y momento, sino que alude a la posibilidad de mantener un equilibrio entre factores que explicarán un cierto nivel de desarrollo del ser humano, siendo este nivel transitorio, cambiante, con incertidumbres y debería ser siempre propiciador de las mejoras en la calidad de vida de los seres humanos. En este sentido, el concepto de “desarrollo humano” debería llevar implícito la sustentabilidad en un determinado momento y la sostenibilidad de dicha sustentabilidad en el tiempo.

Técnica multivariada sintética

Las técnicas estadísticas multivariadas son aquellas que analizan múltiples características y permiten en la investigación extraer abundante información de los datos disponibles. En estudios como este de observación de datos no es posible asignar experimentalmente valores de una variable ya pronosticada, por lo que nos interesa conocer los efectos de múltiples variables pronosticadas sobre un resultado y para ello se usó el modelo de regresión que sintetiza la información sobre variables predictivas individuales con el uso de todo el conjunto de datos.

El análisis multivariado se presenta en este estudio de causalidad, cuya estrategia parte del diseño en donde se involucran variables dependientes y como covariables los supuestos factores causales.

Los coeficientes estimados con el modelo son parámetros estadísticos descriptivos que permiten obtener un significado de los datos.

La teoría estadística y los métodos aplicados a la elaboración de indicadores sintéticos por entidades del orden local, regional e internacional, recomiendan el uso de análisis multivariante para el tratamiento de datos que describen fenómenos que pueden ser explicados en común (Segnestan, 2002a, Castro, 2004).

Se argumenta que pasar de la recopilación de indicadores simples a la generación de indicadores sintéticos es un imperativo para simplificar los datos y estructurarlos en información más elaborada, de acuerdo a las necesidades de los tomadores de decisión y el público en general [Polanco (2006); MMA (1996; 2000)].

Los métodos de análisis multivariante son un conjunto de técnicas de análisis de datos que permiten al investigador testar la utilidad conjunta de los datos que se emplean en la explicación de los fenómenos de interés analítico, como el bienestar social, la calidad ambiental urbana y el desarrollo sostenible, etc. (Dixon et al., 2002; Pardo et al., 2002; Visauta et al., 2003).

El indicador sintético o índice está formado por una serie de componentes que aportan información valiosa acerca del objetivo a medir, ya sea la calidad ambiental, el desarrollo sostenible, etc., en las distintas unidades de observación (Zarzosa, 1996:65).

En general, el análisis multivariado se refiere a técnicas estadísticas utilizadas para analizar conjuntos de datos que tienen múltiples variables. Esto puede incluir técnicas como el análisis factorial, el análisis de correspondencia, el análisis discriminante, entre otros. En cuanto al término “sintético”, podría interpretarse como la creación de variables sintéticas a partir de combinaciones lineales de variables originales, con el fin de reducir la dimensionalidad de los datos y obtener una representación más simplificada del conjunto de variables.

1.2 Marco Referencial

El Economista nacido en la India, Debraj Ray es un reconocido por su trabajo en el área de economía del desarrollo. En su libro “Economía del desarrollo” destaca que para entender las causas y consecuencias de fenómenos como la pobreza y desigualdad en países subdesarrollados, deben considerarse temas como la educación, salud, comercio internacional, políticas económicas, entre otros factores influyentes en el desarrollo económico. El autor hace énfasis en lo que llama “pobreza dinámica”, pues recalca que la pobreza se debe a una combinación de factores de carácter estructural] (falta de acceso a educación y empleo) y a factores individuales (falta de habilidades y recursos financieros).

Adicional al texto anterior, el libro titulado “ECONOMÍA DEL DESARROLLO Y DESARROLLO TERRITORIAL” de alburquerque, 2013, brinda una visión integral de los enfoques y estrategias empleados para el desarrollo económico y territorial de los países subdesarrollados. Alburquerque argumenta que el desarrollo económico y territorial están íntimamente relacionados y por esa razón se deben abordar de manera conjunta para alcanzar un desarrollo sostenible y equitativo. Además, enfatiza la importancia de la participación ciudadana y cooperación internacional para la elaboración de políticas de desarrollo económico y territorial.

Definición de desarrollo propuesta por el equipo de trabajo

El desarrollo es un proceso de cambio que mejora la calidad de vida de las personas, tanto ahora como en el futuro.

El desarrollo es un proceso de cambio que mejora la calidad de vida de las personas, tanto ahora como en el futuro, teniendo en cuenta las dimensiones humanas, social, de infraestructura y tecnológica, y promoviendo un crecimiento económico sostenible y equitativo que proteja el medio ambiente y promueve la justicia social.

Esta definición se basa en la idea de que el desarrollo debe ser holístico, sostenible y equitativo. No debe centrarse en un solo aspecto del desarrollo, como el crecimiento económico, aunque este si es de importancia abordarlo no debe ser el único. En su lugar, debe tener en cuenta las cuatro dimensiones adicionales del desarrollo: humano, social, infraestructura y tecnología.

La dimensión humana es esencial para el desarrollo porque asegura que las personas tengan las necesidades básicas para vivir una buena vida. Esto incluye factores como la salud, la educación y el acceso a las necesidades básicas.

La dimensión social también es esencial para el desarrollo porque crea una sociedad justa y justa para todos. Esto incluye factores como la cohesión social, la igualdad de género y la justicia social.

La dimensión de infraestructura y tecnología es fundamental para el desarrollo porque proporciona las herramientas y los recursos que las personas necesitan para mejorar sus vidas. Esto incluye factores como el transporte, la comunicación y la energía.

El crecimiento económico sostenible y equitativo es esencial para el desarrollo porque asegura que el desarrollo beneficie a todos, no solo a unos pocos elegidos. Esto incluye factores como la protección del medio ambiente y la promoción de la justicia social.

El Desarrollo

Partiendo del hecho que, el enfoque ortodoxo del desarrollo mencionado anteriormente muestra evidencia de ser criticado por ser demdo simplista, limitado y enfocado en el corto plazo dado que centra su explicación en el desarrollo, entendido como el crecimiento económico obtenido por el crecimiento del PIB per cápita, es decir, toman de referencia al PIB per cápita como el único indicador que explica el desarrollo, dejando de lado otros aspectos importantes como la distribución equitativa de la renta, poder adquisitivo real, no refleja el sector informal ni efectos externos negativos como el deterioro ambiental, la igualdad de género, industrias contaminantes y otros, en adición a esto, la argumentación existente sobre este enfoque que lleva a las economías a problemas de endeudamiento externo y a una dependencia económica de los países subdesarrollados respeto a los países desarrollados e instituciones financieras internacionales.

Entonces, si el desarrollo va más allá de fomentar el crecimiento, reducir la pobreza y la desigualdad (tríada ortodoxa), alude a un componente de bienestar en funciones materiales e inmateriales (vitales y espirituales). Razón por la cual se procede a matizar el indicador sintético convencionalmente aceptado como el mejor de la actividad productiva (PIBpc).

Por tanto, para efectos de estudio, no se contemplará únicamente la esfera económica del desarrollo en términos de niveles productivos dentro de una economía, pues el crecimiento económico por sí solo no es suficiente para lograr un desarrollo sostenible, dado que el desarrollo se plantea medir las mejoras en todos los niveles de la sociedad, teniendo en cuenta el progreso de las fuerzas productivas que aumente el crecimiento de la producción de bienes y servicios y a su vez, el bienestar de la población, para lo cual, es importante considerar un conjunto de aspectos básicos y esenciales para la existencia humana. Bajo este contexto, se alude a la mejora en la disposición de bienes para el consumo, es decir, bienes vitales como la alimentación, la vestimenta, vivienda digna, servicios de salud, acceso a servicios básicos, la vida propia, entre otros, garantizando a su vez la equidad social, protección ambiental y participación ciudadana.

En este sentido, y teniendo en cuenta que, el crecimiento del PNBpc es un indicador que en la práctica no explica la relación entre economía y pobreza de un país y no refleja de la mejor forma los progresos o retrocesos económicos en términos de salud, educación y otros, es ahí donde parte la implementación de indicadores sociales para robustecer el enfoque ortodoxo.

Bajo esta premisa, existen muchas formulaciones contemporáneas como el desarrollo multidimensional, desarrollo sostenible, desarrollo humano, economia feminista y otros que, a pesar de no ser corrientes de pensamiento, consideran la satisfacción de necesidades básicas como elemento central de desarrollo, brindando otras dimensiones aparte de las económicas, lo cual permite redefinir el término del desarrollo a través de una comprensión más amplia y crítica de las dimensiones sociales, culturales, ambientales, entre otras. Dichas formulaciones permiten en nuestra definición de desarrollo dar la posibilidad a las personas de satisfacer sus necesidades por medio de un aumento de productividad y una reducción de la pobreza, para lo cual es necesario dotarlos de elementos básicos como salud, educación, alimentación y otros.

Por tanto, para medir, comparar y analizar la dinámica y el nivel de desarrollo, hay que explicitar los factores que configuran el desarrollo y que son los que hay que medir y comparar. Para el caso, partiendo de el concepto descrito anteriormente, procedemos a definir las dimensiones que han sido tomadas en cuenta para la construcción de la variable compleja a explicar: el desarrollo. Estas dimensiones robustecen la idea convencional del desarrollo que se basa en la perspectiva económica, proporcionando así indicadores monetarios, ambientales y sociales que garantizarán un desarrollo sustentable y sostenible.

Cabe recalcar que las características de este proceso será diferente en cada país, región o localidad según la situación en la que estos se encuentren, sus condiciones, formas de organización, entre otros. Bajo el esquema propuesto por (larrouyet, 2015) sobre las dimensiones del desarrollo sustentable, presentamos las dimensiones a considerar para medir el nivel de desarrollo en la región de Australia y Nueva Zelandia, Melanesia y Micronesia

1. Dimensión Económica

Bajo el esquema de sustentabilidad lo que cuenta no es el crecimiento de la producción, sino la calidad de los servicios que prestan bajo la práctica de procesos de producción más limpios, eficientes y con agregación de valor a las materias primas.

En este sentido, existe la necesidad de promover un crecimiento económico sostenible, la creación de empleo y el acceso a oportunidades económicas para todos que permita satisfacer las necesidades de las generaciones presentes sin comprometer la capacidad de las generaciones futuras para satisfacer sus propias necesidades. Debe ser capaz de reducir la pobreza, la desigualdad y la exclusión social.

2. Dimensión Humana

El desarrollo sustentable se enfoca a una mejora en la calidad de vida de las personas a través de satisfacer sus necesidades básicas, igualar los niveles de ingresos y superar la pobreza a través de la reasignación de recursos económicos que atiendan estas necesidades.

La dimensión humana del desarrollo se refiere a la importancia de incluir el bienestar y el progreso de las personas como un componente clave en el proceso de desarrollo. Esto significa que no se trata solo de crecimiento económico, sino también de mejorar las condiciones de vida de la población, por ejemplo, mediante la protección de los derechos humanos, el acceso a servicios básicos como la educación y la salud, y la promoción de valores como la justicia social, la igualdad de género y la participación ciudadana.

3. Dimensión Ambiental

Se refiere a la importancia de considerar el impacto de las actividades humanas en el medio ambiente y en los recursos naturales. El desarrollo y la vida misma deben ir de la mano con el sustento de la naturaleza vinculando así los modelos de desarrollo a lo ecológico y ambiental (un modelo sustentable mediante la regeneración de recursos naturales y capacidad de asimilación del ecosistema).

El desarrollo debe tener en cuenta la protección y conservación del medio ambiente y los recursos naturales, como parte integral del proceso de desarrollo. Este enfoque reconoce que el desarrollo humano no puede ser sostenible si no se toman medidas para garantizar la sostenibilidad ambiental. Se trata de un enfoque centrado en la protección y conservación del medio ambiente y de los recursos naturales, que reconoce la importancia de la biodiversidad, la calidad del aire y del agua, el cambio climático y otros problemas ambientales globales.

4. Dimensión de Tecnología

El tema de la tecnológica, requiere de procesos de innovación y desarrollo (I+D) para reducir el contenido en recursos naturales de determinadas actividades económicas y permitir las mejoras en cuanto a la calidad de la producción. Esta dimensión vela por la búsqueda y cambio hacia tecnologías eficientes para los países industrializados y el desarrollo de tecnologías más eficientes y limpias en países de la periferia ya que estos últimos al poseer economías basadas en la agricultura, deben desarrollar tecnologías apropiadas y de pequeña escala para incrementar la prouctividad agrícola y de otros sectores de ser posible.

2. Caracterización de los indicadores propuestos

En el presente trabajo se han considerado un total de 27 variables, distribuidas en 7 dimensiones, las cuales son: dimensión económica (7), humana (14), ambiental (4) y tecnologica (2), con las cuales, se ha desarrollado el análisis de la región de Australia y Nueva Zelandia, Melanesia, Micronesia y Polinesia. En base a las 4 dimensiones propuestas que componen nuestro indicador de desarrollo, están constituidas por un total de variables que se agrupan en subdimensiones. Bajo este contexto se procede a desarrollar la caracterización de cada una de las dimensiones juntamente con las variables que las componen.

INDICADOR ECONOMICO:

“Este indicador hace referencia a la primera agupacion de variables relacionadas con los subdimensiones: producción e ingreso, distribución del ingreso e inflación. Las cuales se asignan de la siguiente forma:”,

Variable1_Formación bruta de capital (% del PIB): La formación bruta de capital (anteriormente, inversión interna bruta) consiste en los desembolsos por adiciones a los activos fijos de la economía más los cambios netos en el nivel de inventarios. Los activos fijos incluyen mejoras de terrenos (cercas, zanjas, desagües, etc.); compras de plantas, maquinaria y equipo; y la construcción de carreteras, vías férreas y similares, incluidas escuelas, oficinas, hospitales, viviendas residenciales privadas y edificios comerciales e industriales. Los inventarios son existencias de bienes que tienen las empresas para hacer frente a fluctuaciones temporales o inesperadas en la producción o las ventas, y el <>. Según el SCN 1993, las adquisiciones netas de valores también se consideran formación de capital.

Variable2_PIB por unidad de uso de energía (USD PPA constante de 2017 por kg de equivalente de petróleo): El PIB por unidad de uso de energía es el PIB PPA por kilogramo de petróleo equivalente de uso de energía. El PIB PPA es el producto interno bruto convertido a dólares internacionales constantes de 2017 utilizando tasas de paridad del poder adquisitivo. Un dólar internacional tiene el mismo poder adquisitivo sobre el PIB que un dólar estadounidense en los Estados Unidos.

Variable3_PIB por persona empleada (dólares PPA constantes de 2017): El PIB por persona empleada es el producto interno bruto (PIB) dividido por el empleo total en la economía. El PIB de paridad del poder adquisitivo (PPA) es el PIB convertido a dólares internacionales constantes de 2017 utilizando tasas de PPA. Un dólar internacional tiene el mismo poder adquisitivo sobre el PIB que tiene un dólar estadounidense en los Estados Unidos.

Variable4_Comercio (% del PIB): El comercio es la suma de las exportaciones e importaciones de bienes y servicios medidas como porcentaje del producto interno bruto.

Variable5_Servicio de la deuda total (% de las exportaciones de bienes, servicios e ingresos primarios): Servicio de la deuda total a exportaciones de bienes, servicios e ingresos primarios. El servicio total de la deuda es la suma de los reembolsos de capital y los intereses efectivamente pagados en moneda, bienes o servicios sobre la deuda a largo plazo, los intereses pagados sobre la deuda a corto plazo y los reembolsos (recompras y cargos) al FMI.

Variable6_Asistencia oficial para el desarrollo neta y ayuda oficial recibida (US$ a precios actuales): La asistencia oficial para el desarrollo (AOD) neta consiste en desembolsos de préstamos realizados en condiciones concesionarias (neto de los reembolsos del principal) y donaciones de organismos oficiales de los miembros del Comité de Asistencia para el Desarrollo (CAD), instituciones multilaterales y países no pertenecientes al CAD. para promover el desarrollo económico y el bienestar en los países y territorios en la lista DAC de receptores de AOD. Incluye préstamos con un elemento de subvención de al menos el 25 por ciento (calculado a una tasa de descuento del 10 por ciento). La ayuda oficial neta se refiere a los flujos de ayuda (netos de reembolsos) de los donantes oficiales a los países y territorios de la parte II de la lista de beneficiarios del CAD: países más avanzados de Europa central y oriental, los países de la antigua Unión Soviética y ciertos países en desarrollo avanzados. países y territorios. La ayuda oficial se proporciona en términos y condiciones similares a los de la AOD. La Parte II de la Lista del CAD se eliminó en 2005. La recopilación de datos sobre la ayuda oficial y otros flujos de recursos a los países de la Parte II finalizó con los datos de 2004. Los datos están expresados en dólares estadounidenses actuales.

Variable7_Brecha de pobreza a $2.15 por día (PPA de 2017) (%): La brecha de pobreza a $ 2,15 por día (PPA de 2017) es el déficit medio en ingresos o consumo desde la línea de pobreza de $ 2,15 por día (contando a los no pobres como sin déficit), expresado como un porcentaje de la línea de pobreza. Esta medida refleja la profundidad de la pobreza así como su incidencia.

INDICADORES DE DESARROLLO HUMANO:

“A continuación, se presentan el segundo grupo de variables consideradas en referencia a la dimensión humana, que se constituye en los subdimensiones: salud, gasto público, alimentación y educación.”,

Variable8_Tasa de mortalidad materna (estimación modelada, por 100.000 nacidos vivos): La tasa de mortalidad materna es el número de mujeres que mueren por causas relacionadas con el embarazo durante el embarazo o dentro de los 42 días posteriores a la terminación del embarazo por cada 100.000 nacidos vivos. Los datos se estiman con un modelo de regresión utilizando información sobre la proporción de muertes maternas entre las muertes no relacionadas con el SIDA en mujeres de 15 a 49 años, la fecundidad, las personas que atienden partos y el PIB medido utilizando paridades de poder adquisitivo <>.

Variable9_Tasa de mortalidad infantil (por 1.000 nacidos vivos): La tasa de mortalidad infantil es el número de niños que mueren antes de cumplir un año de edad, por cada 1.000 nacidos vivos en un año determinado.

Variable10_Persistencia al último grado de primaria, mujeres (% de la cohorte): La persistencia al último grado de primaria es el porcentaje de niños matriculados en el primer grado de primaria que finalmente llegan al último grado de educación primaria. La estimación se basa en el método de cohortes reconstruidas.

Variable11_Persistencia al último grado de primaria, total (% de la cohorte): La persistencia al último grado de primaria es el porcentaje de niños matriculados en el primer grado de primaria que finalmente llegan al último grado de educación primaria. La estimación se basa en el método de cohortes reconstruidas.

Variable12_Tasa de mortalidad por tuberculosis (por cada 100.000 personas): La tasa de mortalidad por tuberculosis es el número estimado de muertes por tuberculosis entre personas VIH negativas, expresada como la tasa por 100.000 habitantes. Las estimaciones para todos los años se recalculan a medida que se dispone de nueva información y se refinan las técnicas, por lo que pueden diferir de las publicadas anteriormente.

Variable13_Persistencia al último grado de primaria, varones (% de la cohorte): La persistencia al último grado de primaria es el porcentaje de niños matriculados en el primer grado de primaria que finalmente llegan al último grado de educación primaria. La estimación se basa en el método de cohortes reconstruidas.

Variable14_Tasa de mortalidad, menores de 5 años (por 1.000 nacidos vivos): La tasa de mortalidad de menores de cinco años es la probabilidad por 1.000 de que un bebé recién nacido muera antes de cumplir los cinco años, si está sujeto a las tasas de mortalidad específicas por edad del año especificado.

Variable15_Matriculación escolar, primaria (bruta), índice de paridad de género (IPG): El índice de paridad de género para la tasa bruta de matrícula en la educación primaria es la proporción de niñas y niños matriculados en el nivel primario en escuelas públicas y privadas.

Variable16_Matriculación escolar, terciaria (bruta), índice de paridad de género (IPG): El índice de paridad de género para la tasa bruta de matriculación en educación terciaria es la proporción de mujeres y hombres matriculados en el nivel terciario en escuelas públicas y privadas.

Variable17_Matrícula escolar, primaria y secundaria (bruta), índice de paridad de género (IPG): El índice de paridad de género para la tasa bruta de matrícula en la educación primaria y secundaria es la proporción de niñas y niños matriculados en los niveles primario y secundario en escuelas públicas y privadas.

Variable18_Relación entre empleo y población, mayores de 15 años, total (%) (estimación modelada de la OIT): La relación entre empleo y población es la proporción de la población de un país que está empleada. El empleo se define como personas en edad de trabajar que, durante un breve período de referencia, se dedicaron a cualquier actividad para producir bienes o prestar servicios a cambio de una remuneración o una ganancia, ya sea en el trabajo durante el período de referencia (es decir, que trabajaron en un puesto durante al menos una hora) o no en el trabajo debido a la ausencia temporal de un trabajo, o a los arreglos de tiempo de trabajo. Las personas mayores de 15 años generalmente se consideran población en edad de trabajar.

Variable19_Esperanza de vida al nacer, total (años): La esperanza de vida al nacer indica el número de años que viviría un recién nacido si los patrones de mortalidad prevalecientes en el momento de su nacimiento se mantuvieran iguales a lo largo de su vida.

Variable20_Población, total: La población total se basa en la definición de población de facto, que cuenta a todos los residentes independientemente de su estatus legal o ciudadanía. Los valores que se muestran son estimaciones de mitad de año.

Variable21_Población que vive en barrios marginales (% de la población urbana): La población que vive en barrios marginales es la proporción de la población urbana que vive en hogares de barrios marginales. Un hogar de tugurios se define como un grupo de personas que viven bajo el mismo techo y carecen de una o más de las siguientes condiciones: acceso a agua mejorada, acceso a saneamiento mejorado, superficie suficiente para vivir, durabilidad de la vivienda y seguridad de tenencia, tal como se adopta en la Objetivo de Desarrollo del Milenio Meta 7.D. El sucesor, el Objetivo de Desarrollo Sostenible 11.1.1, considera la vivienda inadecuada (asequibilidad de la vivienda) para complementar la definición anterior de barrios marginales/asentamientos informales.

“INDICADORES AMBIENTALES:

el tercer grupo de variables se constituye en las subdimensiones: recursos, energía eléctrica y contaminación.”

Variable22_Superficie forestal (% de la superficie terrestre): El área forestal es tierra bajo rodales naturales o plantados de árboles de al menos 5 metros in situ, sean productivos o no, y excluye los rodales de árboles en sistemas de producción agrícola (por ejemplo, en plantaciones de frutas y sistemas agroforestales) y árboles en parques y jardines urbanos.

Variable23_Emisiones de CO2 (kg por PPA $ del PIB): Las emisiones de dióxido de carbono son las derivadas de la quema de combustibles fósiles y la fabricación de cemento. Incluyen el dióxido de carbono producido durante el consumo de combustibles sólidos, líquidos y gaseosos y la quema de gas.

Variable24_Emisiones de CO2 (toneladas métricas per cápita): Las emisiones de dióxido de carbono son las derivadas de la quema de combustibles fósiles y la fabricación de cemento. Incluyen el dióxido de carbono producido durante el consumo de combustibles sólidos, líquidos y gaseosos y la quema de gas.

Variable25_Fuente de agua mejorada (% de la población con acceso): El acceso a una fuente de agua mejorada se refiere al porcentaje de la población que utiliza una fuente de agua potable mejorada. La fuente de agua potable mejorada incluye agua entubada en los predios (conexión domiciliaria de agua entubada ubicada dentro de la vivienda, lote o patio del usuario), y otras fuentes mejoradas de agua potable (grifos o fuentes públicas, pozos entubados o perforados, pozos excavados protegidos, manantiales protegidos, y recogida de agua de lluvia).

INDICADORES DE TECNOLOGIA:

dimensión se compone de las subdimensiones de acceso a medios de comuniación, innovaciones.”

Variable26_Usuarios de Internet (por cada 100 personas): Los usuarios de Internet son personas que han utilizado Internet (desde cualquier lugar) en los últimos 3 meses. Internet se puede utilizar a través de una computadora, teléfono móvil, asistente digital personal, máquina de juegos, TV digital, etc.

Variable27_Suscripciones de telefonía fija (por cada 100 personas): Las suscripciones de telefonía fija se refieren a la suma del número activo de líneas telefónicas fijas analógicas, suscripciones de voz sobre IP (VoIP), suscripciones de bucle local inalámbrico fijo (WLL), equivalentes de canal de voz ISDN y teléfonos públicos públicos fijos.

Calculo de las variables

Forma de cálculo de Variable 1: El producto interno bruto (PIB) desde el lado del gasto se compone del gasto de consumo final de los hogares, el gasto de consumo final del gobierno general, la formación bruta de capital (inversión privada y pública en activos fijos, cambios en los inventarios y adquisiciones netas de valores) y exportaciones (exportaciones menos importaciones) de bienes y servicios. Dichos gastos se registran a precios de comprador e incluyen impuestos netos sobre los productos.

Forma de cálculo de variable 2: La relación entre el producto interno bruto (PIB) y el uso de energía indica la eficiencia energética. Para producir estimaciones comparables y consistentes del PIB real en todas las economías en relación con los insumos físicos del PIB, es decir, las unidades de uso de energía, el PIB se convierte a dólares internacionales de 2017 utilizando las tasas de paridad del poder adquisitivo (PPA). Las diferencias en esta relación a lo largo del tiempo y entre economías reflejan cambios estructurales en una economía, cambios en la eficiencia energética sectorial y diferencias en las mezclas de combustibles.

El uso total de energía se refiere al uso de energía primaria antes de la transformación a otros combustibles de uso final (como la electricidad y los productos refinados del petróleo). Incluye energía procedente de combustibles renovables y residuos - biomasa sólida y productos animales, gas y líquido procedente de biomasa, y residuos industriales y municipales. La biomasa es cualquier materia vegetal utilizada directamente como combustible o convertida en combustible, calor o electricidad. Los datos de energía son compilados por la Agencia Internacional de Energía (AIE). Los datos de la AIE para las economías que no son miembros de la Organización para la Cooperación y el Desarrollo Económicos (OCDE) se basan en datos nacionales de energía ajustados para cumplir con los cuestionarios anuales completados por los gobiernos miembros de la OCDE. Los datos del PIB provienen de los archivos de cuentas nacionales del Banco Mundial.

Forma de cálculo de variable 3: El PIB por persona empleada representa la productividad laboral: producción por unidad de insumo laboral. Para comparar los niveles de productividad laboral entre países, el PIB se convierte a dólares internacionales utilizando tasas de paridad de poder adquisitivo que tienen en cuenta las diferencias en los precios relativos entre países.

Las estimaciones se basan en datos de empleo, población, PIB y PPA obtenidos de la Organización Internacional del Trabajo, la División de Población de las Naciones Unidas, Eurostat, la OCDE y el Banco Mundial. Las tasas de empleo son parte de la base de datos de estimaciones modeladas de la OIT que incluye observaciones informadas a nivel nacional y datos imputados para países con datos faltantes, principalmente para capturar tendencias regionales y globales con una cobertura de país consistente. Los microdatos informados por los países se basan principalmente en encuestas de fuerza laboral representativas a nivel nacional, con otras fuentes (por ejemplo, encuestas de hogares y censos de población) que consideran las diferencias en la fuente de datos, el alcance de la cobertura, la metodología y otros factores específicos del país. El análisis de país requiere precaución cuando se dispone de datos limitados informados a nivel nacional. También se aplican una serie de modelos para imputar las observaciones faltantes y hacer proyecciones. Sin embargo, las observaciones imputadas no se basan en datos nacionales, están sujetas a una gran incertidumbre y no deben utilizarse para comparaciones o clasificaciones de países.

Forma de cálculo de la variable 4: No posee una metología establecida para su calculo.

Forma de cálculo de la variable 5: Los datos sobre la deuda externa se recopilan a través del Sistema de Información de Deudores (DRS) del Banco Mundial. Los datos de la deuda a largo plazo se compilan utilizando el informe de países sobre endeudamiento público y con garantía pública sobre una base de préstamo por préstamo y sobre endeudamiento privado no garantizado sobre una base agregada. Estos datos se complementan con información de los principales bancos multilaterales y organismos oficiales de crédito de los principales países acreedores. Los datos de la deuda a corto plazo se recopilan de la base de datos Quarterly External Debt Statistics (QEDS), desarrollada conjuntamente por el Banco Mundial y el FMI y de los acreedores a través de los sistemas de información del Banco de Pagos Internacionales. Los datos de la deuda se informan en la moneda de pago y se compilan y publican en dólares estadounidenses. Los tipos de cambio de fin de período se utilizan para la compilación de las cifras de existencias (cantidad de deuda pendiente), y el servicio de la deuda proyectado y los tipos de cambio promedio anuales se utilizan para los flujos. Los tipos de cambio se toman de las Estadísticas financieras internacionales del FMI. La deuda reembolsable en múltiples monedas, bienes o servicios y la deuda con una provisión para el mantenimiento del valor de la moneda de reembolso se muestran a su valor en libros.

Forma de cálculo de la variable 6: No posee una metología establecida para su calculo.

Forma de cálculo de la variable 7: Las comparaciones internacionales de estimaciones de pobreza implican problemas tanto conceptuales como prácticos. Los países tienen diferentes definiciones de pobreza, y las comparaciones consistentes entre países pueden ser difíciles. Las líneas de pobreza locales tienden a tener un mayor poder adquisitivo en los países ricos, donde se utilizan estándares más generosos, que en países pobres.

Desde el Informe sobre el desarrollo mundial de 1990, el Banco Mundial se ha propuesto aplicar un estándar común para medir la pobreza extrema, basado en lo que significa la pobreza en los países más pobres del mundo. El bienestar de las personas que viven en diferentes países se puede medir en una escala común ajustando las diferencias en el poder adquisitivo de las monedas.

El estándar de uso común de $1 por día, medido en precios internacionales de 1985 y ajustado a la moneda local utilizando paridades de poder adquisitivo (PPA), fue elegido para el Informe sobre el Desarrollo Mundial de 1990 porque era típico de las líneas de pobreza en los países de bajos ingresos en ese momento. A medida que evolucionan las diferencias en el costo de vida en todo el mundo, la línea de pobreza internacional debe actualizarse periódicamente utilizando nuevos datos de precios PPA para reflejar estos cambios. El último cambio fue en septiembre de 2022, cuando adoptamos $2,15 como la línea de pobreza internacional utilizando la PPA de 2017. Las medidas de pobreza basadas en líneas de pobreza internacionales intentan mantener constante el valor real de la línea de pobreza entre países, como se hace cuando se hacen comparaciones a lo largo del tiempo. La línea de pobreza de $3,65 se deriva de las líneas de pobreza nacionales típicas en países clasificados como de ingresos medios bajos. La línea de pobreza de $6.85 se deriva de las líneas de pobreza nacionales típicas en países clasificados como de ingresos medios altos.

Las primeras ediciones de los Indicadores de desarrollo mundial utilizaron las PPA de Penn World Tables para convertir los valores en moneda local al poder adquisitivo equivalente medido en dólares estadounidenses. Las ediciones posteriores utilizaron estimaciones de PPA de consumo de 1993, 2005 y 2017 producidas por el Banco Mundial. La línea de pobreza extrema actual está fijada en $2,15 por día en términos de PPA de 2017, lo que representa la media de las líneas de pobreza encontradas en 15 de los países más pobres clasificados por consumo per cápita. La nueva línea de pobreza mantiene el mismo estándar para la pobreza extrema, la línea de pobreza típica de los países más pobres del mundo, pero la actualiza utilizando la información más reciente sobre el costo de vida en los países en desarrollo. Como resultado de las revisiones de los tipos de cambio PPA, las tasas de pobreza de países individuales no pueden compararse con las tasas de pobreza informadas en ediciones anteriores.

  >Las estadísticas reportadas aquí se basan en datos de consumo o, cuando no están disponibles, en encuestas de ingresos."

Forma de cálculo de la variable 8: La salud reproductiva es un estado de bienestar físico y mental en relación con el sistema reproductivo y sus funciones y procesos. Los medios para lograr la salud reproductiva incluyen educación y servicios durante el embarazo y el parto, anticoncepción segura y eficaz, y prevención y tratamiento de la sexualidad. Las complicaciones del embarazo y el parto son la principal causa de muerte y discapacidad entre las mujeres en edad reproductiva en los países en desarrollo.

La mortalidad materna es generalmente de confiabilidad desconocida, al igual que muchos otros indicadores de mortalidad por causas específicas. Las encuestas de hogares, como las Encuestas demográficas y de salud, intentan medir la mortalidad materna preguntando a las encuestadas sobre la supervivencia de las hermanas. La principal desventaja de este método es que las estimaciones de mortalidad materna que produce pertenecen a cualquier momento de los últimos años antes de la encuesta, lo que las hace inadecuadas para monitorear cambios recientes u observar el impacto de las intervenciones. Además, la medición de la mortalidad materna está sujeta a muchos tipos de errores. Incluso en países de altos ingresos con sistemas de registro civil confiables, se ha descubierto que la clasificación errónea de las muertes maternas conduce a una subestimación grave.

Las estimaciones se basan en un ejercicio realizado por el Grupo Interinstitucional de Estimación de la Mortalidad Materna (MMEIG), que está integrado por la Organización Mundial de la Salud (OMS), el Fondo de las Naciones Unidas para la Infancia (UNICEF), el Banco Mundial y el Fondo de Población de las Naciones Unidas (UNFPA), y incluir datos de series temporales a nivel de país. Para los países sin datos de registro completos pero con otros tipos de datos y para los países sin datos, la mortalidad materna se estima con un modelo de regresión utilizando los datos nacionales de mortalidad materna y la información socioeconómica disponibles.

Forma de cálculo de la variable 9: Las principales fuentes de datos de mortalidad son los sistemas de registro civil y las estimaciones directas o indirectas basadas en encuestas o censos por muestreo. datos de mortalidad específicos por edad.

Las estimaciones de mortalidad neonatal, infantil y en la niñez tienden a variar según la fuente y el método para un momento y lugar determinados. Los años para las estimaciones disponibles también varían según el país, lo que dificulta las comparaciones entre países y a lo largo del tiempo. Para que las estimaciones de mortalidad neonatal, infantil y en la niñez sean comparables y garantizar la consistencia entre las estimaciones de diferentes agencias, el Grupo Interagencial de las Naciones Unidas para la Estimación de la Mortalidad Infantil (UN IGME), que comprende el Fondo de las Naciones Unidas para la Infancia (UNICEF), el World Organización Mundial de la Salud (OMS), el Banco Mundial, la División de Población de las Naciones Unidas y otras universidades e institutos de investigación, desarrollaron y adoptaron un método estadístico que utiliza toda la información disponible para reconciliar las diferencias. El método utiliza modelos estadísticos para obtener una mejor estimación de la línea de tendencia ajustando un modelo de regresión de las tasas de mortalidad específico del país en comparación con sus fechas de referencia.

Forma de cálculo de la variable 10: La tasa de supervivencia de la cohorte se calcula dividiendo el número total de niños pertenecientes a una cohorte que alcanzaron cada grado sucesivo del nivel de educación especificado por el número de niños en la misma cohorte; aquellos matriculados originalmente en el primer grado de educación primaria, y multiplicando por 100. Para reflejar los patrones actuales de transición de grado, se calcula con base en el método de cohortes reconstruidas, que utiliza datos sobre matriculación por grado para los dos años más recientes y datos sobre repetidores por grado para el más reciente de esos dos años.

Los datos sobre educación son recopilados por el Instituto de Estadística de la UNESCO a partir de las respuestas oficiales a su encuesta anual sobre educación. Todos los datos se asignan a la Clasificación Internacional Normalizada de la Educación (ISCED) para garantizar la comparabilidad de los programas educativos a nivel internacional. La versión actual fue adoptada formalmente por los Estados Miembros de la UNESCO en 2011.

Los años de referencia reflejan el año escolar para el que se presentan los datos. En algunos países, el año escolar abarca dos años calendario (por ejemplo, de septiembre de 2010 a junio de 2011); en estos casos el año de referencia se refiere al año en que finalizó el curso escolar (2011 en el ejemplo).

Forma de cálculo de la variable 11: La tasa de supervivencia de la cohorte se calcula dividiendo el número total de niños pertenecientes a una cohorte que alcanzaron cada grado sucesivo del nivel de educación especificado por el número de niños en la misma cohorte; aquellos matriculados originalmente en el primer grado de educación primaria, y multiplicando por 100. Para reflejar los patrones actuales de transición de grado, se calcula con base en el método de cohortes reconstruidas, que utiliza datos sobre matriculación por grado para los dos años más recientes y datos sobre repetidores por grado para el más reciente de esos dos años.

Los datos sobre educación son recopilados por el Instituto de Estadística de la UNESCO a partir de las respuestas oficiales a su encuesta anual sobre educación. Todos los datos se asignan a la Clasificación Internacional Normalizada de la Educación (ISCED) para garantizar la comparabilidad de los programas educativos a nivel internacional. La versión actual fue adoptada formalmente por los Estados Miembros de la UNESCO en 2011.

Los años de referencia reflejan el año escolar para el que se presentan los datos. En algunos países, el año escolar abarca dos años calendario (por ejemplo, de septiembre de 2010 a junio de 2011); en estos casos el año de referencia se refiere al año en que finalizó el curso escolar (2011 en el ejemplo).

Forma de cálculo de la variable 12: No posee una metodología definida para su calculo

Forma de cálculo de la variable 13: La tasa de supervivencia de la cohorte se calcula dividiendo el número total de niños pertenecientes a una cohorte que alcanzaron cada grado sucesivo del nivel de educación especificado por el número de niños en la misma cohorte; aquellos matriculados originalmente en el primer grado de educación primaria, y multiplicando por 100. Para reflejar los patrones actuales de transición de grado, se calcula con base en el método de cohortes reconstruidas, que utiliza datos sobre matriculación por grado para los dos años más recientes y datos sobre repetidores por grado para el más reciente de esos dos años.

Los datos sobre educación son recopilados por el Instituto de Estadística de la UNESCO a partir de las respuestas oficiales a su encuesta anual sobre educación. Todos los datos se asignan a la Clasificación Internacional Normalizada de la Educación (ISCED) para garantizar la comparabilidad de los programas educativos a nivel internacional. La versión actual fue adoptada formalmente por los Estados Miembros de la UNESCO en 2011.

Los años de referencia reflejan el año escolar para el que se presentan los datos. En algunos países, el año escolar abarca dos años calendario (por ejemplo, de septiembre de 2010 a junio de 2011); en estos casos el año de referencia se refiere al año en que finalizó el curso escolar (2011 en el ejemplo).

Forma de cálculo de la variable 14: Las principales fuentes de datos de mortalidad son los sistemas de registro civil y las estimaciones directas o indirectas basadas en encuestas o censos por muestreo. datos de mortalidad específicos por edad.

Las estimaciones de mortalidad neonatal, infantil y en la niñez tienden a variar según la fuente y el método para un momento y lugar determinados. Los años para las estimaciones disponibles también varían según el país, lo que dificulta las comparaciones entre países y a lo largo del tiempo. Para que las estimaciones de mortalidad neonatal, infantil y en la niñez sean comparables y garantizar la consistencia entre las estimaciones de diferentes agencias, el Grupo Interinstitucional de las Naciones Unidas para la Estimación de la Mortalidad Infantil (UN IGME), que comprende el Fondo de las Naciones Unidas para la Infancia (UNICEF), el Fondo Mundial Organización Mundial de la Salud (OMS), el Banco Mundial, la División de Población de las Naciones Unidas y otras universidades e institutos de investigación, desarrollaron y adoptaron un método estadístico que utiliza toda la información disponible para reconciliar las diferencias. El método utiliza modelos estadísticos para obtener una mejor estimación de la línea de tendencia ajustando un modelo de regresión de tasas de mortalidad específico del país en comparación con sus fechas de referencia.

Forma de cálculo de la variable 15: Este indicador se calcula dividiendo la tasa bruta de matrícula femenina en educación primaria por la tasa bruta de matrícula masculina en educación primaria.

Los datos sobre educación son recopilados por el Instituto de Estadística de la UNESCO a partir de las respuestas oficiales a su encuesta anual sobre educación. Todos los datos se asignan a la Clasificación Internacional Normalizada de la Educación (ISCED) para garantizar la comparabilidad de los programas educativos a nivel internacional. La versión actual fue adoptada formalmente por los Estados Miembros de la UNESCO en 2011.

Los años de referencia reflejan el año escolar para el que se presentan los datos. En algunos países, el año escolar abarca dos años calendario (por ejemplo, de septiembre de 2010 a junio de 2011); en estos casos el año de referencia se refiere al año en que finalizó el curso escolar (2011 en el ejemplo).

Forma de cálculo de la variable 16: Este indicador se calcula dividiendo la tasa bruta de matrícula femenina en educación terciaria por la tasa bruta de matrícula masculina en educación terciaria.

Los datos sobre educación son recopilados por el Instituto de Estadística de la UNESCO a partir de las respuestas oficiales a su encuesta anual sobre educación. Todos los datos se asignan a la Clasificación Internacional Normalizada de la Educación (ISCED) para garantizar la comparabilidad de los programas educativos a nivel internacional. La versión actual fue adoptada formalmente por los Estados Miembros de la UNESCO en 2011.

Los años de referencia reflejan el año escolar para el que se presentan los datos. En algunos países, el año escolar abarca dos años calendario (por ejemplo, de septiembre de 2010 a junio de 2011); en estos casos el año de referencia se refiere al año en que finalizó el curso escolar (2011 en el ejemplo).

Forma de cálculo de la variable 17: Este indicador se calcula dividiendo la tasa bruta de matrícula femenina en educación primaria y secundaria por la tasa bruta de matrícula masculina en educación primaria y secundaria.

Los datos sobre educación son recopilados por el Instituto de Estadística de la UNESCO a partir de las respuestas oficiales a su encuesta anual sobre educación. Todos los datos se asignan a la Clasificación Internacional Normalizada de la Educación (ISCED) para garantizar la comparabilidad de los programas educativos a nivel internacional. La versión actual fue adoptada formalmente por los Estados Miembros de la UNESCO en 2011.

Los años de referencia reflejan el año escolar para el que se presentan los datos. En algunos países, el año escolar abarca dos años calendario (por ejemplo, de septiembre de 2010 a junio de 2011); en estos casos el año de referencia se refiere al año en que finalizó el curso escolar (2011 en el ejemplo).

Forma de cálculo de la variable 18: La relación empleo-población indica cuán eficientemente una economía proporciona puestos de trabajo para las personas que quieren trabajar. Una relación alta significa que una gran proporción de la población está empleada. Pero una relación empleo-población más baja puede verse como una signo positivo, especialmente para los jóvenes, si un aumento en su educación lo provoca.

La serie es parte de la base de datos de estimaciones modeladas de la OIT, que incluye observaciones informadas a nivel nacional y datos imputados para países con datos faltantes, principalmente para capturar tendencias regionales y globales con una cobertura de país consistente. Los microdatos informados por los países se basan principalmente en encuestas de fuerza laboral representativas a nivel nacional, con otras fuentes (por ejemplo, encuestas de hogares y censos de población) que consideran las diferencias en la fuente de datos, el alcance de la cobertura, la metodología y otros factores específicos del país. El análisis de país requiere precaución cuando se dispone de datos limitados informados a nivel nacional. También se aplican una serie de modelos para imputar las observaciones faltantes y hacer proyecciones. Sin embargo, las observaciones imputadas no se basan en datos nacionales, están sujetas a una gran incertidumbre y no deben utilizarse para comparaciones o clasificaciones de países.

Forma de cálculo de la variable 19: La esperanza de vida al nacer utilizada aquí es el número promedio de años que se espera que viva un recién nacido si los patrones de mortalidad en el momento de su nacimiento permanecen constantes en el futuro. Refleja el nivel de mortalidad general de una población y resume el patrón de mortalidad que prevalece en todos los grupos de edad en un año dado. Se calcula en una tabla de vida por períodos que proporciona una instantánea del patrón de mortalidad de una población en un momento dado. Por lo tanto, no refleja el patrón de mortalidad que una persona realmente experimenta durante su vida , que se puede calcular en una tabla de vida de cohortes.

La alta mortalidad en los grupos de edad jóvenes reduce significativamente la esperanza de vida al nacer. Pero si una persona sobrevive a su infancia de alta mortalidad, puede vivir mucho más tiempo. Por ejemplo, en una población con una esperanza de vida al nacer de 50 años, puede haber pocas personas que mueran a los 50 años. La esperanza de vida al nacer puede ser baja debido a la alta mortalidad infantil, de modo que una vez que una persona sobrevive a su infancia, él / ella puede vivir mucho más de 50 años.

Forma de cálculo de la variable 20: Las estimaciones de población generalmente se basan en censos nacionales de población. Las estimaciones de los años anteriores y posteriores al censo son interpolaciones o extrapolaciones basadas en modelos demográficos.

Los errores y el conteo insuficiente ocurren incluso en países de altos ingresos. En los países en desarrollo, los errores pueden ser sustanciales debido a los límites en el transporte, las comunicaciones y otros recursos necesarios para realizar y analizar un censo completo.

La calidad y confiabilidad de los datos demográficos oficiales también se ven afectadas por la confianza pública en el gobierno, el compromiso del gobierno con la enumeración completa y precisa, la confidencialidad y la protección contra el uso indebido de los datos del censo y la independencia de las agencias del censo de la influencia política. Además, la comparabilidad de los indicadores de población está limitada por las diferencias en los conceptos, definiciones, procedimientos de recopilación y métodos de estimación utilizados por las agencias nacionales de estadística y otras organizaciones que recopilan los datos.

La actualidad de un censo y la disponibilidad de datos complementarios de encuestas o sistemas de registro son formas objetivas de juzgar la calidad de los datos demográficos. Los sistemas de registro de algunos países europeos ofrecen información completa sobre la población en ausencia de un censo.

La División de Estadística de las Naciones Unidas supervisa la integridad de los sistemas de registro civil. Algunos países en desarrollo han progresado en los últimos 60 años, pero otros todavía tienen deficiencias en los sistemas de registro civil.

La migración internacional es el único otro factor, además de las tasas de natalidad y mortalidad, que determina directamente el crecimiento de la población de un país. Estimar la migración es difícil. En cualquier momento, muchas personas se encuentran fuera de su país de origen como turistas, trabajadores, refugiados o por otras razones. Los estándares para la duración y el propósito de los movimientos internacionales que califican como migración varían, y las estimaciones requieren información sobre flujos hacia y desde países que es difícil de recopilar.

Las proyecciones de población, a partir de un año base, se proyectan hacia adelante utilizando suposiciones de mortalidad, fertilidad y migración por edad y sexo hasta 2050, según la variante media de la base de datos World Population Prospects de la División de Población de las Naciones Unidas.

Forma de cálculo de la variable 21: No posee metodología establecida para su calculo.”,

Forma de cálculo de la variable 22: El bosque está determinado tanto por la presencia de árboles como por la ausencia de otros usos predominantes de la tierra. Los árboles deben alcanzar una altura mínima de 5 metros in situ. Áreas bajo reforestación que aún no han alcanzado pero se espera que alcancen una cubierta de dosel de 10 por ciento y una altura de arbolado de 5 metros, así como áreas temporalmente despobladas, producto de la intervención humana o causas naturales, que se espera que se regeneren.

La Organización para la Agricultura y la Alimentación (FAO) proporciona información detallada sobre la cubierta forestal y estimaciones ajustadas de la cubierta forestal. La encuesta utiliza una definición uniforme de bosque. Aunque la FAO proporciona un desglose de la cubierta forestal entre bosques naturales y plantaciones para los países en desarrollo, los datos forestales utilizados para derivar estos datos indicadores no reflejan ese desglose. La superficie terrestre total no incluye las masas de agua continentales, como los principales ríos y lagos. Las variaciones de un año a otro pueden deberse a datos actualizados o revisados mas que a cambios en el área. El indicador se obtiene dividiendo el área total cubierta por bosques de un país por el área total de tierra del país, y multiplicándolo por 100.

Forma de cálculo de la variable 23: No posee metodología definida para el calculo.

Forma de cálculo de la variable 24: Las emisiones de dióxido de carbono, en gran parte subproductos de la producción y el uso de energía, representan la mayor parte de los gases de efecto invernadero, que están asociados con el calentamiento global. Las emisiones antropogénicas de dióxido de carbono resultan principalmente de la quema de combustibles fósiles y la fabricación de cemento. En la combustión, diferentes combustibles fósiles liberan diferentes cantidades de dióxido de carbono para el mismo nivel de uso de energía: el petróleo libera aproximadamente un 50 por ciento más de dióxido de carbono que el gas natural y el carbón libera aproximadamente el doble. La fabricación de cemento libera alrededor de media tonelada métrica de dióxido de carbono por cada tonelada métrica de cemento producido. Los datos de las emisiones de dióxido de carbono incluyen los gases de la quema de combustibles fósiles y la fabricación de cemento, pero excluyen las emisiones del uso de la tierra, como la deforestación.

Forma de cálculo de la variable 25: Los datos provienen del Programa de Monitoreo Conjunto de la Organización Mundial de la Salud (OMS) y el Fondo de las Naciones Unidas para la Infancia (UNICEF) con base en censos nacionales y encuestas de hogares representativas a nivel nacional. Las tasas de cobertura de agua y saneamiento se basan en información de los usuarios del servicio. en las instalaciones que sus hogares realmente usan en lugar de en la información de los proveedores de servicios, que pueden incluir sistemas que no funcionan.

La OMS/UNICEF define una fuente de agua potable mejorada como aquella que, por la naturaleza de su construcción o mediante una intervención activa, está protegida de la contaminación exterior, en particular de la contaminación con materia fecal. Las fuentes de agua mejoradas incluyen agua corriente en la vivienda, parcela o patio; agua corriente en la parcela del vecino; grifo/tubería pública; pozo entubado/perforación; pozo excavado protegido; manantial protegido; y agua de lluvia.”,

Forma de cálculo de la variable 26: Internet es una red informática pública mundial. Brinda acceso a una serie de servicios de comunicación, incluida la World Wide Web, y transporta archivos de correo electrónico, noticias, entretenimiento y datos, independientemente del dispositivo utilizado (no se supone que sea solo a través de una computadora; también puede ser por teléfono móvil, PDA, máquina de juegos, TV digital, etc.). El acceso puede ser a través de una red fija o móvil.

Forma de cálculo de la variable 27: Una línea telefónica fija (anteriormente denominada línea telefónica principal en funcionamiento) es una línea activa que conecta el equipo terminal del abonado a la red telefónica pública conmutada (PSTN) y que tiene un puerto dedicado en el equipo de la central telefónica. Este término es sinónimo de la términos estación principal o línea de intercambio directo (DEL) que se usan comúnmente en los documentos de telecomunicaciones. Puede que no sea lo mismo que una línea de acceso o un suscriptor. Esto debe incluir el número activo de líneas telefónicas fijas analógicas, canales ISDN, inalámbrico fijo, teléfonos públicos y suscripciones VoIP Las líneas activas son aquellas que han registrado actividad en los últimos tres meses.

Los datos sobre las líneas telefónicas fijas se derivan de los datos administrativos que los países (por lo general, la autoridad reguladora de las telecomunicaciones o el Ministerio a cargo de las telecomunicaciones) recopilan regularmente, y al menos anualmente, de los operadores de telecomunicaciones. Los datos se consideran muy confiables, oportunos y completos.

Los datos para este indicador están fácilmente disponibles para aproximadamente el 90 por ciento de los países, ya sea a través de los cuestionarios de Indicadores Mundiales de Telecomunicaciones de la UIT o de la información oficial disponible en el sitio web del Ministerio o del Regulador. Por lo demás, la información puede agregarse a través de los datos de los operadores (principalmente a través de informes anuales) y complementarse con informes de investigación de mercado.

El indicador de líneas telefónicas (por cada 100 personas) se obtiene dividiendo todas las líneas telefónicas por la población del país y multiplicando por 100”

Indicador economico

Indicador ambiental

Indicador humano

Indicador Tecnologico

3. Análisis crítico de los indicadores propuestos, desde la perspectiva ortodoxa y su deconstrucción

Dimension económica

El análisis crítico del indicador económico desde una perspectiva ortodoxa es aquel que se basa en la idea de que el indicador económico es una medida objetiva y cuantificable del crecimiento económico de un país.

Esta perspectiva ortodoxa se enfoca en el análisis de indicadores como el PIB, la inflación, la tasa de desempleo y otros indicadores similares. Sin embargo, algunas críticas que se le hacen a este enfoque es que estos indicadores no siempre reflejan el bienestar económico de la población en general. Por ejemplo, el aumento del PIB no necesariamente significa una mejora en la calidad de vida de los ciudadanos, ya que no mide la distribución del ingreso o la calidad de los servicios públicos. Por lo tanto, la deconstrucción de este enfoque ortodoxo implica una revisión crítica de estos indicadores económicos para entender sus limitaciones y para identificar otras formas de medir el desarrollo económico que tengan en cuenta otros factores importantes, como la sostenibilidad ambiental y social.

Normalización de la Data

## function(x){(x-min(x))/(max(x)-min(x))}

Al realizar el procedimiento de ponderacion por medio del metodo jerarquico se obtuvo que:

La variable que mas peso tiene en el indicador de crecimiento es la Formacion Bruta de Capital (X1) con el 38.6%. La segunda variable como mayor ponderacion obtenida fue la PIB (X2) con el 19.3%. La tercer variable como mas ponderacion fue el PIB por persona empleada (X3) con el 12.9%.

Según lo anterior, el indicador de crecimiento, es explicado en una 70.8% por la formacion bruta de capital, el PIB y el Pib por persona empleada.

Por el contrario las otras varibles que representa el 29.2% de explicacion del indicador.

PONDERACION DIMENSION ECONOMICA

Analisis de las variables mayor ponderadas Para analizar este indicador primero se analizaran el comportamiento de las 3 variables que mayor ponderacion obtuvieron.

Jerarquia Reciproca

##        X1        X3        X5        X6       X16       X24       X26 
## 1.0000000 0.5000000 0.3333333 0.2500000 0.2000000 0.1666667 0.1428571
##    X1    X3    X5    X6   X16   X24   X26 
## 0.386 0.193 0.129 0.096 0.077 0.064 0.055

DIMENSION AMBIENTAL

El análisis crítico del indicador ambiental desde una perspectiva ortodoxa es aquel que se basa en la idea de que los indicadores ambientales, como las emisiones de gases de efecto invernadero, la calidad del aire o la disponibilidad de agua, son medidas objetivas y cuantificables del estado del medio ambiente en un área determinada. Esta perspectiva ortodoxa se centra en el análisis de estos indicadores como una forma de medir la sostenibilidad ambiental.

Sin embargo, algunas críticas que se le hacen a este enfoque es que estos indicadores no siempre reflejan el bienestar ambiental de la población en general. el caso es una reducción de emisiones de gases de efecto invernadero no necesariamente significa una mejora en la calidad del aire o el agua, ya que no mide la contaminación generada por otras fuentes. Por lo tanto, la deconstrucción de este enfoque ortodoxo implica una revisión crítica de estos indicadores ambientales para entender sus limitaciones y para identificar otras formas de medición que tengan en cuenta otros factores importantes, como la biodiversidad o la equidad ambiental.

NORMALIZACION DE LA DATA

PONDERACION DIMENSION AMBIENTAL

Jerarquia Reciproca

##        X2        X4       X15       X23 
## 1.0000000 0.5000000 0.3333333 0.2500000
##   X2   X4  X15  X23 
## 0.48 0.24 0.16 0.12

DIMENSION HUMANA

Desde una perspectiva ortodoxa, el indicador humano se enfoca en medir el desarrollo humano a través del Índice de Desarrollo Humano (IDH), que mide el progreso en términos de esperanza de vida, educación e ingreso per cápita. Esta medida se utiliza para evaluar el nivel de bienestar de la población y el progreso de un país. Sin embargo, una crítica que se le hace a este enfoque es que el IDH no considera otros factores importantes que pueden afectar el desarrollo humano, como la igualdad de género, la distribución del ingreso, la calidad de vida, la participación ciudadana y la equidad social, entre otros. Por lo tanto, la deconstrucción de este enfoque ortodoxo implica una revisión crítica del IDH y otros indicadores humanos para entender sus limitaciones y para identificar otras formas de medición que tengan en cuenta otros factores importantes para medir el desarrollo humano de manera más integral y justa.

Es importante destacar que el IDH, a pesar de ser ampliamente utilizado como un indicador del desarrollo humano, ha sido criticado por no ser lo suficientemente inclusivo. El IDH no mide la desigualdad, la discriminación o la exclusión social, lo que significa que puede haber países con un alto IDH que, sin embargo, tienen una gran brecha entre ricos y pobres o donde algunos grupos de la población son discriminados o marginados. Además, el IDH y otros indicadores similares se basan en datos agregados y promedios, lo que puede ocultar las desigualdades dentro de los países.

Por ejemplo, un país con una alta esperanza de vida promedio podría tener comunidades que enfrentan graves problemas de salud y mortalidad infantil. Por lo tanto, la deconstrucción del enfoque ortodoxo del indicador humano implica un cambio hacia enfoques más inclusivos y holísticos. Esto incluye la incorporación de otros factores importantes, como la calidad de vida, la seguridad alimentaria, la salud mental, la equidad de género, la diversidad cultural y la participación ciudadana. También implica una mayor participación de las comunidades y grupos marginados en el proceso de medición del desarrollo humano, para garantizar que se reflejen sus necesidades y preocupaciones en los indicadores.

NORMALIZACION DE LA DATA

PONDERACION DIMENSION HUMANA

Jerarquia Reciproca

##         X8         X9        X10        X11        X12        X13        X17 
## 1.00000000 0.50000000 0.33333333 0.25000000 0.20000000 0.16666667 0.14285714 
##        X18        X19        X21        X22        X25        X27 
## 0.12500000 0.11111111 0.10000000 0.09090909 0.08333333 0.07692308
##    X8    X9   X10   X11   X12   X13   X17   X18   X19   X21   X22   X25   X27 
## 0.314 0.157 0.105 0.079 0.063 0.052 0.045 0.039 0.035 0.031 0.029 0.026 0.024

DIMENSION TECNOLOGICA

Desde esta perspectiva, el indicador tecnológico se utiliza para medir el nivel de adopción y uso de la tecnología en una empresa o país. Se considera que una mayor adopción de la tecnología es un indicador de mayor eficiencia y productividad, lo que se traduce en un mayor crecimiento económico.

Sin embargo, esta perspectiva ortodoxa del indicador tecnológico ha sido criticada por su enfoque limitado y reduccionista de la tecnología. La tecnología no es solo un medio para alcanzar fines económicos, sino que también tiene implicaciones sociales, culturales y políticas.

La deconstrucción del indicador tecnológico implica cuestionar su supuesto objetivo de medir la eficiencia y productividad de la tecnología. En su lugar, se propone una perspectiva más amplia que considere las implicaciones sociales, culturales y políticas de la tecnología.

>Esto implica considerar cómo la tecnología afecta a las relaciones sociales y de poder, cómo influye en la cultura y la identidad, y cómo puede tener impactos negativos en el medio ambiente y la salud. También implica considerar cómo la tecnología puede ser utilizada para promover la justicia social y la equidad.

NORMALIZACION DE LA DATA

PONDERACION DIMENSION TECNOLOGICA

Jerarquia Reciproca

## X14 X20 
## 1.0 0.5
##   X14   X20 
## 0.667 0.333

4. Alcances y Limitaciones de los indicadores propuestos.

LIMITACIONES

Falta de información: una de las principales limitaciones para la realización de este estudio fue la falta de información disponible para cada uno de los países correspondientes en nuestro estudio dentro del periodo que se tomó para el estudio. Por lo que no se encontró información completa para las variables seleccionadas de algunos países como por ejemplo Kiribati, Micronesia, Nauru, Palau, entre otros.

Elección de variables: el tema del desarrollo es un tema muy amplio por lo que a la hora de construir el indicador se tuvo que ser minucioso a la hora de seleccionar las variables que pueda englobar en su mayor parte el tema de desarrollo y así hacer un trabajo más fiable.

INDICADOR ECONOMICO

ALCANCE DIMENCION ECONOMICA

Al analizar estas variables, es posible obtener una imagen amplia del desarrollo económico de Oceanía. Esta información se puede utilizar para identificar fortalezas y debilidades, y para desarrollar políticas que promuevan un mayor desarrollo. Un mayor crecimiento económico puede provocar un mayor desarrollo económico, la economía ortodoxa considera esto como una condición necesaria La economía ortodoxa sostiene que el crecimiento económico es una condición necesaria para el desarrollo económico. Esto se debe a que el crecimiento económico puede conducir a la creación de empleos, la mejora de la recaudación de impuestos y la inversión en educación y salud.

LIMITACIONES DIMENCION ECONOMICA

Los datos utilizados para medir el desarrollo pueden ser inexactos o incompletos. Esto puede dificultar la obtención de una imagen clara del estado de desarrollo de un país. en nuestro estudio fue limitada la informacion para todos los paises de la región. El crecimiento económico puede tener consecuencias negativas. El crecimiento económico puede generar desigualdad, degradación ambiental y otras consecuencias negativas.”

ALCANCE DIMENCION DESARROLLO HUMANO

Estos indicadores miden una amplia gama de aspectos del desarrollo humano, incluidos la salud, la educación y el empleo.

LIMITACIONES DIMENCION ECONOMICA

Los datos utilizados para medir el desarrollo pueden ser inexactos o incompletos. Esto puede dificultar la obtención de una imagen clara del estado de desarrollo de un país. en nuestro estudio fue limitada la informacion para todos los paises de la región.

Los indicadores no capturan todos los aspectos del desarrollo humano. Por ejemplo, no miden la calidad de vida o el nivel de felicidad.

ALCANCE DIMENCION AMBIENTALES

Un alto impacto ambiental sugiere que el desarrollo no es sostenible.

Estos indicadores miden una amplia gama de aspectos del desarrollo ambiental, incluida la cubierta forestal, las emisiones de CO2 y el acceso al agua. Se pueden utilizar para realizar un seguimiento del progreso a lo largo del tiempo y para comparar países.

LIMITACIONES DIMENCION AMBIENTALES

Los datos utilizados para medir el desarrollo pueden ser inexactos o incompletos. Esto puede dificultar la obtención de una imagen clara del estado de desarrollo de un país. en nuestro estudio fue limitada la informacion para todos los paises de la región.

No son medidas perfectas del desarrollo ambiental. Por ejemplo, el indicador de superficie forestal no tiene en cuenta la calidad del bosque. Además, estos indicadores a menudo se basan en datos autoinformados, que pueden ser inexactos.

ALCANCE DIMENCION TECNOLOGICA

Estos indicadores miden una amplia gama de aspectos del desarrollo tecnológico, incluido el acceso a Internet y las suscripciones de telefonía fija. Se pueden utilizar para realizar un seguimiento del progreso a lo largo del tiempo y para comparar países.

Esta información se puede utilizar para fundamentar decisiones políticas y mejorar la infraestructura tecnológica de un país.

LIMITACIONES DIMENCION TECNOLOGICA

Los datos utilizados para medir el desarrollo pueden ser inexactos o incompletos. Esto puede dificultar la obtención de una imagen clara del estado de desarrollo de un país. en nuestro estudio fue limitada la informacion para todos los paises de la región.

Estos indicadores no son medidas perfectas del desarrollo tecnológico. Por ejemplo, el indicador de usuarios de Internet no tiene en cuenta la calidad del acceso a Internet.

bilbiografia

Capitán, AL. 1996. “Una Visión Retrospectiva de La Economı́a Del Desarrollo.” Universidad de Huelva. Vidal Villa (2003)

Economía Mundial [https://datos.bancomundial.org/indicator]

Pérez, Carlos Ademir [https://rpubs.com/ca_ademir/w_fa]

Pérez, Carlos Ademir [https://rpubs.com/ca_ademir]

Pérez, Carlos Ademir [https://rpubs.com/ca_ademir/ponderadores_subjetivos]

Pérez, Carlos Ademir [ttps://rpubs.com/ca_ademir/indicador_sintetico]

LS0tCnRpdGxlOiAiRGVzYXJyb2xsbyBnOCIKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHRydWUKICAgIHRvY19mbG9hdDoKICAgICAgY29sbGFwc2VkOiB0cnVlCiAgICAgIHNtb290aF9zY3JvbGw6IHRydWUKICAgIHNlbGZfY29udGFpbmVkOiB0cnVlCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCiAgICB0b2NfZGVwdGg6IDQKICAgIGRmX3ByaW50OiBwYWdlZAogICAgY29kZV9mb2xkaW5nOiBzaG93Ci0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSxtZXNzYWdlID0gRkFMU0Usd2FybmluZyA9IEZBTFNFKQpgYGAKCgo8Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iIGNvbG9yPSJibGFjayI+CjxwIHN0eWxlIHN0eWxlPSJsaW5lLWhlaWdodDogMzAwJSI+CjxoND48ZGl2IGFsaWduPSJjZW50ZXIiPgoKPGJyPgo8YnI+CgoKKipVTklWRVJTSURBRCBERSBFTCBTQUxWQURPUioqCgoKKipGQUNVTFRBRCBERSBDSUVOQ0lBUyBFQ09OT01JQ0FTKioKPGJyPgoKKipFU0NVRUxBIERFIEVDT05PTUlBKioKCiFbXShodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zL2MvYzgvTG9nb19VRVMuanBnKXt3aWR0aD0yNSV9CgoqKk1hdGVyaWE6KiogRWNvbm9tw61hIGRlbCBEZXNhcnJvbGxvIEkKCgoqKkRvY2VudGU6KiogQ2FybG9zIEFkZW1pciBQw6lyZXogQWxhcwoKPC9icj4KVGVtYTogQWxjYW5jZXMgeSBsaW1pdGFjaW9uZXMgZGUgbGEgQ2FyYWN0ZXJpemFjacOzbiBFbXDDrXJpY2EgZGVsIERlc2Fycm9sbG8sIGRlc2RlIHVuYSBwZXJzcGVjdGl2YSBvcnRvZG94YSwgcGFyYSBlbCBwZXJpb2RvIGRlIHJlZmVyZW5jaWEgMjAwNS0yMDIxLCBjYXNvcyBkZSBlc3R1ZGlvIE9jZWFuw61hLgoKCioqSW50ZWdyYW50ZXM6KioKCgp8ICAgICBBcGVsbGlkb3MgICAgIHwgICAgICBOb21icmVzICAgICAgIHwgICBEVUUgICB8IFBhcnRpY2lwYWNpw7NufAp8Oi0tLS0tLS0tLS0tLS0tLS0tOnw6LS0tLS0tLS0tLS0tLS0tLS0tOnw6LS0tLS0tLTp8Oi0tLS0tLS0tLS0tLTp8CnwgQW1heWEgRmxvcmVzICAgICAgfCAgSm9zdcOpIE5haHVtICAgICAgIHwgQUYxNjAxMCB8ICAgICAxMDAlICAgICB8CnwgQ2FuYWxlcyBMw7NwZXogICAgIHwgIEpvc8OpIE1hbnVlbCAgICAgICB8IENMMTIwMjUgfCAgICAgMTAwJSAgICAgfAp8IEVzY29iYXIgTW9yYWxlcyAgIHwgIE1lZGFyZG8gSm9zw6kgICAgICB8IEVNMTgwMDMgfCAgICAgNzAlICAgICAgfAp8IFBlw7FhIEfDoWx2ZXogICAgICAgfCAgQWxpY2lhIEJldHNhYsOpICAgIHwgUEcwNzAxMyB8ICAgICAxMDAlICAgICB8CgoKKipDaWNsbzoqKiBJLTIwMjMKCioqRmVjaGEgRW50cmVnYToqKiBMdW5lcyAyOSBkZSBKdW5pbyBkZSAyMDIzCgoKKipDaXVkYWQgVW5pdmVyc2l0YXJpYSwgU2FuIFNhbHZhZG9yLCBFbCBTYWx2YWRvcioqCgo8L2Rpdj48aDQ+PC9wPgoKIyAqKkludHJvZHVjY2nDs24qKgoKPkVsIGNvbmNlcHRvIGRlIGRlc2Fycm9sbG8gaGEgc2lkbyBvYmpldG8gZGUgbXVjaG8gZGViYXRlIHkgZGlzY3VzacOzbiBkdXJhbnRlIHNpZ2xvcy4gTm8gZXhpc3RlIHVuYQogICAgZGVmaW5pY2nDs24gw7puaWNhIGRlIGRlc2Fycm9sbG8sIHBlcm8gZ2VuZXJhbG1lbnRlIHNlIGVudGllbmRlIGNvbW8gZWwgcHJvY2VzbyBkZSBtZWpvcmFyIGxhIGNhbGlkYWQgZGUKICAgIHZpZGEgZGUgbGFzIHBlcnNvbmFzLgoKPlVuYSBmb3JtYSBkZSBtZWRpciBlbCBkZXNhcnJvbGxvIGVzIHV0aWxpemFyIGluZGljYWRvcmVzIHNpbnTDqXRpY29zLCBjb21vIGVsIFBJQiBwZXIgY8OhcGl0YSwgbGEKICAgIGVzcGVyYW56YSBkZSB2aWRhIHkgbGFzIHRhc2FzIGRlIGFsZmFiZXRpemFjacOzbi4gRXN0b3MgaW5kaWNhZG9yZXMgcHVlZGVuIHByb3BvcmNpb25hciB1bmEgaW5zdGFudMOhbmVhCiAgICDDunRpbCBkZWwgZXN0YWRvIGRlIGRlc2Fycm9sbG8gZW4gdW4gcGHDrXMgbyByZWdpw7NuIGVuIHBhcnRpY3VsYXIuCgo+U2luIGVtYmFyZ28sIHRhbWJpw6luIGV4aXN0ZW4gbGltaXRhY2lvbmVzIGVuIGVsIHVzbyBkZSBpbmRpY2Fkb3JlcyBzaW50w6l0aWNvcyBwYXJhIG1lZGlyIGVsIGRlc2Fycm9sbG8uCiAgICBQb3IgZWplbXBsbywgZXN0b3MgaW5kaWNhZG9yZXMgbm8gc2llbXByZSB0aWVuZW4gZW4gY3VlbnRhIGxhIGRpc3RyaWJ1Y2nDs24gZGUgbGEgcmlxdWV6YSBvIGxhIGNhbGlkYWQKICAgIGRlIHZpZGEgZGUgbG9zIGRpZmVyZW50ZXMgZ3J1cG9zIGRlIHBlcnNvbmFzLiBBZGVtw6FzLCBwdWVkZW4gdmVyc2UgaW5mbHVlbmNpYWRvcyBwb3IgZmFjdG9yZXMgY29tbyBsb3MKICAgIHJlY3Vyc29zIG5hdHVyYWxlcyB5IGxhIGdlb2dyYWbDrWEuCiAgICAKPkVuIGVzdGUgdHJhYmFqbyBub3MgY2VudHJhcmVtb3MgZW4gbG9zIGFsY2FuY2VzIHkgbGltaXRhY2lvbmVzIGRlIGxhIGNhcmFjdGVyaXphY2nDs24gZW1ww61yaWNhIGRlbAogICAgZGVzYXJyb2xsbyBkZXNkZSB1bmEgcGVyc3BlY3RpdmEgb3J0b2RveGEuIFVzYXJlbW9zIGRhdG9zIGRlIGVzdHVkaW9zIGRlIGNhc29zIGRlIE9jZWFuw61hIHBhcmEgZXhhbWluYXIgY8OzbW8gc2UgaGFuIHV0aWxpemFkbyBlc3RvcyBpbmRpY2Fkb3JlcyBwYXJhIG1lZGlyIGVsIGRlc2Fycm9sbG8gZW4gbGEgcmVnacOzbiBkdXJhbnRlIGxvcyDDumx0aW1vcyAxNSBhw7FvcyAoMjAwNS0yMDIxKS4KCj5Bcmd1bWVudGFyZW1vcyBxdWUgbGEgcGVyc3BlY3RpdmEgb3J0b2RveGEgcHJvcG9yY2lvbmEgdW4gbWFyY28gw7p0aWwgcGFyYSBjb21wcmVuZGVyIGVsIGRlc2Fycm9sbG8sIHBlcm8gdGFtYmnDqW4gdGllbmUgYWxndW5hcyBsaW1pdGFjaW9uZXMuIENvbmNsdWlyZW1vcyBkaXNjdXRpZW5kbyBhbGd1bm9zIGRlIGxvcyBkZXNhZsOtb3MgZGUgbWVkaXIgZWwgZGVzYXJyb2xsbyBlbiBPY2VhbsOtYS4KQWJvcmRhcmVtb3MgbGFzIHNpZ3VpZW50ZXMgY3Vlc3Rpb25lczoKCiAgPsK/Q3XDoWxlcyBzb24gbG9zIGluZGljYWRvcmVzIGNsYXZlIHV0aWxpemFkb3MgcGFyYSBtZWRpciBlbCBkZXNhcnJvbGxvIGVuIE9jZWFuw61hPwoKICA+wr9Dw7NtbyBoYW4gY2FtYmlhZG8gZXN0b3MgaW5kaWNhZG9yZXMgZW4gbG9zIMO6bHRpbW9zIDE1IGHDsW9zPwoKPkNyZWVtb3MgcXVlIGVzdGUgZG9jdW1lbnRvIGhhcsOhIHVuYSBjb250cmlidWNpw7NuIHNpZ25pZmljYXRpdmEgYSBsYSBsaXRlcmF0dXJhIHNvYnJlIGVsIGRlc2Fycm9sbG8gZW4gICAgICBPY2VhbsOtYS4gQWwgcHJvcG9yY2lvbmFyIHVuIGFuw6FsaXNpcyBjcsOtdGljbyBkZSBsYSBjYXJhY3Rlcml6YWNpw7NuIGVtcMOtcmljYSBkZWwgZGVzYXJyb2xsbyBkZXNkZSB1bmEKICBwZXJzcGVjdGl2YSBvcnRvZG94YS4KCj5BIGxvIGxhcmdvIGRlIGxhIGhpc3RvcmlhLCBoYW4gZXhpc3RpZG8gZGl2ZXJzYXMgdGVvcsOtYXMgbyBlc2N1ZWxhcyBkZSBwZW5zYW1pZW50byBxdWUgZm9ybXVsYW4gc3UKICAgIHZpc2nDs24gc29icmUgZWwgY29uY2VwdG8gZGUgImRlc2Fycm9sbG8iLCBlbCBjdWFsIGRpZmllcmUgZW50cmUgdG9kYXMgZWxsYXMsIHBvciBsbyBxdWUgZ2VuZXJhciB1bgogICAgY29uY2VwdG8gZ2xvYmFsIHBlcnRlbmVjaWVudGUgYSB1bmEgY29ycmllbnRlIHByaW5jaXBhbCBlbiBlbCBwZW5zYW1pZW50byBzb2JyZSBkZXNhcnJvbGxvIGhhIHNpZG8gdW4KICAgIGdyYW4gcmV0by4gRW4gZXN0ZSBzZW50aWRvLCBlcyBpbXBvcnRhbnRlIGlkZW50aWZpY2FyIGxhcyBwcmluY2lwYWxlcyBjb3JyaWVudGVzIGRlIHBlbnNhbWllbnRvCiAgICBleGlzdGVudGVzIGRlbnRybyBkZSBsYSBFY29ub23DrWEgZGVsIERlc2Fycm9sbG8sIGhhYmxhbW9zIGRlOiBUZW9yw61hIGRlIGxhIG1vZGVybml6YWNpw7NuLCBUZW9yw61hCiAgICBFc3RydWN0dXJhbGlzdGEsIFRlb3LDrWEgTmVvbWFyeGlzdGEsIFRlb3LDrWEgTmVvbGliZXJhbCB5IFRlb3LDrWFzIGFsdGVybmF0aXZhcyBkZSBkZXNhcnJvbGxvLiBMbyBjdWFsLAogICAgZGVqYSBlbiBldmlkZW5jaWEgcXVlIGV4aXN0ZSB1bmEgdmlzacOzbiBvcnRvZG94YSB5IGhldGVyb2RveGEgc29icmUgZWwgY29uY2VwdG8gZGUgZGVzYXJyb2xsbywKICAgIG1vc3RyYW5kbyBhc8OtIHVuIGNhbWJpbyBlbiBlbCBwYXJhZGlnbWEgZGVsIGRlc2Fycm9sbG8uIAoKCiMgKipPYmpldGl2b3MqKgoKIyMgT2JqZXRpdm8gR2VuZXJhbAoKPkFuYWxpemFyIGxvcyBhbGNhbmNlcyB5IGxpbWl0YWNpb25lcyBkZSBsYSBjYXJhY3Rlcml6YWNpw7NuIGVtcMOtcmljYSBkZWwgZGVzYXJyb2xsbyBkZXNkZSB1bmEgcGVyc3BlY3RpdmEgb3J0b2RveGEsIGVuZm9jw6FuZG9zZSBlbiBlbCBwZXJpb2RvIGRlIHJlZmVyZW5jaWEgZGUgMjAwNSBhIDIwMjEgeSB0b21hbmRvIGNvbW8gY2Fzb3MgZGUgZXN0dWRpbyBsb3MgcGHDrXNlcyBkZSBPY2VhbsOtYS4KCiMjIE9iamV0aXZvcyBFc3BlY8OtZmljb3MKCgo+QW5hbGl6YXIgY3LDrXRpY2FtZW50ZSBsYSBjYXJhY3Rlcml6YWNpw7NuIGVtcMOtcmljYSBkZWwgZGVzYXJyb2xsbyBlbiBPY2VhbsOtYSBkZXNkZSB1bmEgcGVyc3BlY3RpdmEgb3J0b2RveGEuCgo+SWRlbnRpZmljYXIgbG9zIGluZGljYWRvcmVzIGNsYXZlIHV0aWxpemFkb3MgcGFyYSBtZWRpciBlbCBkZXNhcnJvbGxvIGVuIE9jZWFuw61hLgoKPkV2YWx1YXIgbGFzIGxpbWl0YWNpb25lcyB5IGRlc2Fmw61vcyBhc29jaWFkb3MgY29uIGVsIHVzbyBkZSBsYSBjYXJhY3Rlcml6YWNpw7NuIGVtcMOtcmljYSBkZWwgZGVzYXJyb2xsbyBlbiBlbCBjb250ZXh0byBkZSBsb3MgcGHDrXNlcyBkZSBPY2VhbsOtYSwgY29uc2lkZXJhbmRvIGZhY3RvcmVzIGN1bHR1cmFsZXMsIGdlb2dyw6FmaWNvcyB5IGVjb27Ds21pY29zIGVzcGVjw61maWNvcyBkZSBsYSByZWdpw7NuLgoKCiMgKipKdXN0aWZpY2FjacOzbioqCgo+TGEgdXRpbGl6YWNpw7NuIGRlIGluZGljYWRvcmVzIG11bHRpdmFyaWFkb3Mgc2ludMOpdGljb3MgcGVybWl0ZSBkZXNjcmliaXIgYXF1ZWxsb3MgZmVuw7NtZW5vcyBlY29uw7NtaWNvcwogICAgYSB0cmF2w6lzIGRlIGxhIGludGVyYWNjacOzbiBkZSB1biBjb25qdW50byBkZSB2YXJpYWJsZXMuIEVuIGVzdGUgc2VudGlkbywgc2UgY29tcG9uZSBkZSB1bmEgVmFyaWFibGUKICAgIENvbXBsZWphLCBsYSBjdWFsIGluZGljYSBlbCBmZW7Ds21lbm8gYSBkZXNjcmliaXIgeSBhIG1lZGlyIGEgdHJhdsOpcyBkZSB1bmEgYmF0ZXLDrWEgZGUgaW5kaWNhZG9yZXMKICAgIHZhcmlhZG9zIHF1ZSByZXNwb25kYW4gYSB1biBtYXJjbyB0ZcOzcmljbyBhc29jaWFkbyBhIGVzdGEgdmFyaWFibGUgY29tcGxlamEuCiAgCj5MYSBpbmZvcm1hY2nDs24gcXVlIHNlIGJ1c2NhIGFsIGNvbm9jZXIgbGFzIHZhcmlhYmxlcyBxdWUgZGVzY3JpYmVuIHkgZXhwbGljYW4gZWwgbml2ZWwgZGUgZGVzYXJyb2xsbwogICAgcGFyYSBsYXMgcmVnaW9uZXMgZGUgT2NlYW7DrWEgZHVyYW50ZSBlbCBwZXJpb2RvIGRlIDIwMDUtMjAyMSBlcyBxdWUsIGEgcGFydGlyIGRlIHVuIGNvbmNlcHRvIG3DoXMKICAgIGFtcGxpbyBzb2JyZSBlbCBmZW7Ds21lbm8gZGVsIGRlc2Fycm9sbG8gYWwgcXVlIGFsdWRlIGVsIGVuZm9xdWUgb3J0b2RveG8sIHNlIGFjdWRhIGEgbGEgdXRpbGl6YWNpw7NuIGRlCiAgICBpbmRpY2Fkb3JlcyBtdWx0aXZhcmlhZG9zIHNpbnTDqXRpY29zIGxvIHF1ZSBub3MgcGVybWl0aXLDoSByb2J1c3RlY2VyIGRlIGVzdGEgZm9ybWEgZXN0ZSBlbmZvcXVlIHkKICAgIHByZXNlbnRhcmxvIGNvbW8gdW4gZmVuw7NtZW5vIG11bHRpZGltZW5zaW9uYWwgcXVlIHRlbmdhIHF1ZSB2ZXIgY29uIGVsIGF1bWVudG8gZGVsIGJpZW5lc3RhciBkZSBsYQogICAgcG9ibGFjacOzbiB5IHF1ZSBhIHN1IHZleiByZXF1aWVyZSBkZSBsYSB1dGlsaXphY2nDs24gZGUgdmFyaWFibGVzIGVjb27Ds21pY2FzLCBhbWJpZW50YWxlcywgdGVjbm9sb2dpY2FzCiAgICB5IGh1bWFuYXMuIAogICAgCj5FbiBlc3RlIHNlbnRpZG8sIGVsIHByZXNlbnRlIHRyYWJham8gaGEgdG9tYWRvIGEgYmllbiBjb25zaWRlcmFyIHVuIHRvdGFsIGRlIDI3IHZhcmlhYmxlcywKICAgIGRpc3RyaWJ1aWRhcyBlbiA0IGRpbWVuc2lvbmVzIHByaW5jaXBhbGVzIHF1ZSBleHBsaWNhcsOhbiBhIGxhIHZhcmlhYmxlIGNvbXBsZWphICJkZXNhcnJvbGxvIi4gRXN0YXMKICAgIGRpbWVuc2lvbmVzIHNvbjogZGltZW5zacOzbiBlY29uw7NtaWNhICg3KSwgaHVtYW5hICgxNCksIGFtYmllbnRhbCAoNCkgeSB0ZWNub2xvZ8OtYSAoMikuCiAgICAKPkVsIHByZXNlbnRlIGVzdHVkaW8gYnVzY2EsIHBvciB0YW50bywgc2UgcHJldGVuZGUgYmFqbyBsYSBhcGxpY2Fjw7NuIGRlIGluZGljYWRvcmVzIG11bHRpdmFyaWFkb3MKICAgIHNpbnTDqXRpY29zLCBkZW1vc3RyYXIgbG9zIGFsY2FuY2VzIHkgbGltaXRhY2lvbmVzIGRlIGxhIGNhcmFjdGVyaXphY2nDs24gZW1ww61yaWNhIGRlbCBkZXNhcnJvbGxvIGJham8KICAgIHVuYSBwZXJzcGVjdGl2YSBvcnRvZG94YSwgcGFyYSBsYXMgcmVnaW9uZXMgZGUgT2NlYW7DrWEgZW4gZWwgcGVyw61vZG8gZGUgMjAwNS0yMDIxLgoKIyAqKjEuIE1hcmNvIFRlw7NyaWNvIHkgUmVmZXJlbmNpYWwqKgoKPkVuIGxhIHNvY2llZGFkIGFjdHVhbCwgZWwgc2lzdGVtYSBkb21pbmFudGUgZGUgcHJvZHVjY2nDs24gZW4gbGEgZXN0cnVjdHVyYSBlY29uw7NtaWNhIGdsb2JhbCBlcyBlbAogICAgY2FwaXRhbGlzbW8uIEVzdGUgc2lzdGVtYSBzZSBjYXJhY3Rlcml6YSBwb3IgbGEgZXhwbG90YWNpw7NuIGRlIHVuYSBjbGFzZSBxdWUgcG9zZWUgbG9zIG1lZGlvcyBkZQogICAgcHJvZHVjY2nDs24gc29icmUgb3RyYSBjbGFzZSBxdWUgc29sbyBwb3NlZSBzdSBmdWVyemEgbGFib3JhbC4gRXN0YSByZWxhY2nDs24gZGUgZXhwbG90YWNpw7NuIGhhCiAgICBwZXJkdXJhZG8gZHVyYW50ZSBtdWNobyB0aWVtcG8geSBoYSBwZXJtZWFkbyBwcm9mdW5kYW1lbnRlIGVuIGxhIHN1cGVyZXN0cnVjdHVyYSBtdW5kaWFsLgoKPkxhIGFwYXJpY2nDs24gZGUgbGEgY29uY2VwY2nDs24gZGUgZGVzYXJyb2xsbyBlcyBwYXJ0ZSBkZSBlc3RhIHRlbmRlbmNpYSBoaXN0w7NyaWNhLiBEZXNwdcOpcyBkZSBsYQogICAgU2VndW5kYSBHdWVycmEgTXVuZGlhbCwgbG9zIEVzdGFkb3MgY29tZW56YXJvbiBhIGFkb3B0YXJsYSBjb21vIHVuIGFzcGVjdG8gbm9ybWF0aXZvIG3DoXMgaW1wb3J0YW50ZS4KICAgIFNlIHByb21vdmllcm9uIGxhcyB2ZW50YWphcyBkZWwgbGlicmUgbWVyY2FkbyB5IGxvcyByZXN1bHRhZG9zIGRlbCBpbnRlbnNvIHByb2Nlc28gZGUKICAgIGluZHVzdHJpYWxpemFjacOzbiBleHBlcmltZW50YWRvIGVuIEVzdGFkb3MgVW5pZG9zIGEgdHJhdsOpcyBkZWwgIlBsYW4gTWFyc2hhbGwiLiBFc3RlIGVzZnVlcnpvIHJlc3VsdMOzCiAgICBtdXkgYXRyYWN0aXZvIHBhcmEgYXF1ZWxsb3MgcGHDrXNlcyBxdWUgaGFiw61hbiBzdWZyaWRvIGdyYXZlcyBjb25zZWN1ZW5jaWFzIHkgYnVzY2FiYW4gc2FsaXIgZGUgdW5hCiAgICBzaXR1YWNpw7NuIGRyYW3DoXRpY2EgYSBtZWRpYWRvcyBkZSBsYSBkw6ljYWRhIGRlIDE5NDAuIEFkZW3DoXMsIGVsIFBsYW4gTWFyc2hhbGwgZGVzdGFjYWJhIHBvciBzdSBsdWNoYQogICAgaGVnZW3Ds25pY2EgcGFydGljdWxhciBjb250cmEgZWwgc29jaWFsaXNtbyBzb3Zpw6l0aWNvLgoKPkxvcyBwcmltZXJvcyBwcm95ZWN0b3MgZW1wcmVuZGlkb3MgcG9yIGxhIHJlY2nDqW4gZm9ybWFkYSBPcmdhbml6YWNpw7NuIGRlIGxhcyBOYWNpb25lcyBVbmlkYXMgKE9OVSkgZW4KICAgIDE5NDUgcmVmbGVqYW4gbG9zIHByaW5jaXBhbGVzIG9iamV0aXZvcyBkZWwgZGVzYXJyb2xsbyBlY29uw7NtaWNvIHkgc29jaWFsLCBxdWUgYnVzY2FuICJmb21lbnRhciBlbAogICAgcHJvZ3Jlc28geSBtZWpvcmFyIGxvcyBuaXZlbGVzIGRlIHZpZGEgZW4gdW4gZXNww61yaXR1IGRlIGxpYmVydGFkLCB1dGlsaXphbmRvIGxhcyBpbnN0aXR1Y2lvbmVzCiAgICBpbnRlcm5hY2lvbmFsZXMgcGFyYSBwcm9tb3ZlciBlbCBhdmFuY2UgZWNvbsOzbWljbyB5IHNvY2lhbCBkZSB0b2RvcyBsb3MgcHVlYmxvcyIgKFN1bmtlbCB5IFBlZHJvIFBheiwKICAgIDE5NzAsIHAuIDE4KS4KCj5Mb3Mgb2JqZXRpdm9zIGRlIGxvZ3JhciBhbHRvcyBuaXZlbGVzIGRlIGNyZWNpbWllbnRvIGVjb27Ds21pY28sIGZ1bmRhbWVudGFkb3MgZW4gcHJvY2Vzb3MgbWFzaXZvcyBkZQogICAgaW5kdXN0cmlhbGl6YWNpw7NuLCByZXF1ZXLDrWFuIGNhbWJpb3MgdGVjbm9sw7NnaWNvcyB5IGRlIHByb2R1Y3RpdmlkYWQgYSB1biByaXRtbyBhY2VsZXJhZG8sIGxvIHF1ZQogICAgbWFyY8OzIGxvcyBwcmltZXJvcyBwYXNvcyBoYWNpYSBsYSBjb25zb2xpZGFjacOzbiBkZWwgY2FwaXRhbGlzbW8gY29tbyBlbCBzaXN0ZW1hIGVjb27Ds21pY28gcHJlZG9taW5hbnRlCiAgICBhIG5pdmVsIGdsb2JhbCBlbiBsYSBhY3R1YWxpZGFkLiBFbiBlc3RlIGNvbnRleHRvLCBhcXVlbGxvcyBwYcOtc2VzIHF1ZSBzZSBkZXN0YWNhbiBlbiB0w6lybWlub3MKICAgIGFic29sdXRvcyB5IGVuIHRhc2FzIGRlIGNyZWNpbWllbnRvIHNvbiBjb25zaWRlcmFkb3MgbmFjaW9uZXMgZGVzYXJyb2xsYWRhcywgc2llbmRvIEVzdGFkb3MgVW5pZG9zIGVsCiAgICBwcmluY2lwYWxyZWZlcmVudGUgZGUgZXN0YSB2aXNpw7NuIChNb250b3lhLCAyMDAwKS4KCj5Db24gbGEgYXBhcmljacOzbiBkZWwgY29uY2VwdG8gZGUgZGVzYXJyb2xsbyBlY29uw7NtaWNvLCBzZSBpZGVudGlmaWNhbiBwYcOtc2VzIHF1ZSBjdW1wbGVuIGNvbiBsYXMKICAgIGNhcmFjdGVyw61zdGljYXMgZGUgZXN0YSB2aXNpw7NuLCBsb3MgY3VhbGVzIHNlIGNhcmFjdGVyaXphbiBwb3IgYXByb3ZlY2hhciBzdXMgcmVjdXJzb3MgbmF0dXJhbGVzIHBhcmEKICAgIGxvZ3JhciB1bmEgbWF5b3IgcHJvZHVjY2nDs24geSB1bmEgbWF5b3IgcGFydGljaXBhY2nDs24gZW4gbG9zIG1lcmNhZG9zLCBsbyBxdWUgbGVzIHBlcm1pdGUgYWxjYW56YXIgdW4KICAgIGNyZWNpbWllbnRvIGVjb27Ds21pY28uIFBvciBvdHJvIGxhZG8sIGFxdWVsbG9zIHBhw61zZXMgcXVlIGNhcmVjZW4gZGUgY3JlY2ltaWVudG8gZWNvbsOzbWljbyBlCiAgICBpbmR1c3RyaWFsaXphY2nDs24gc2UgZGVub21pbmFuIHBhw61zZXMgc3ViZGVzYXJyb2xsYWRvcywgdGFsIGNvbW8gbG8gZXhwbGljYSBBcXVpbGVzIE1vbnRveWEgKDIwMDApOgogICAgInVuIGNvbmp1bnRvIGNvbXBsZWpvIGUgaW50ZXJyZWxhY2lvbmFkbyBkZSBmZW7Ds21lbm9zIHF1ZSBzZSBtYW5pZmllc3RhbiBlbiBkZXNpZ3VhbGRhZGVzIG5vdGFibGVzIGRlCiAgICByaXF1ZXphIHkgcG9icmV6YSwgZW4gZWwgc3ViYXByb3ZlY2hhbWllbnRvIGRlIGxhcyBjYXBhY2lkYWRlcyBwcm9kdWN0aXZhcywgZW4gbGEgZGVwZW5kZW5jaWEKICAgIGVjb27Ds21pY2EsIGN1bHR1cmFsLCBwb2zDrXRpY2EgeSB0ZWNub2zDs2dpY2EiIChNb250b3lhLCAyMDAwLCBwLiAxMikuCgo+U2UgaGFuIGVtcGxlYWRvIGRpdmVyc29zIGluZGljYWRvcmVzIHBhcmEgbWVkaXIgZWwgcHJvY2VzbyBkZSBkZXNhcnJvbGxvIGVjb27Ds21pY28geSByZWZsZWphciBlbAogICAgY3JlY2ltaWVudG8gZWNvbsOzbWljbyBhIGxvIGxhcmdvIGRlbCB0aWVtcG8sIGNvbW8gZWwgUHJvZHVjdG8gSW50ZXJubyBCcnV0byAoUElCKSwgZWwgUElCIHBlciBjw6FwaXRhIHkKICAgIGVsIFZhbG9yIEFncmVnYWRvIChWQSA9IFBJQiAtIENvbnN1bW8gSW50ZXJtZWRpbykuIFNpbiBlbWJhcmdvLCBhIHBlc2FyIGRlIGVzdG9zIGVzZnVlcnpvcywgZWwKICAgIG9iamV0aXZvIGRlbCBkZXNhcnJvbGxvIGRlIHJlZHVjaXIgbGFzIGRpc3BhcmlkYWRlcyBzb2NpYWxlcyB5IGVjb27Ds21pY2FzIGVudHJlIGxhcyBwZXJzb25hcyBubyBzZSBoYQogICAgbWF0ZXJpYWxpemFkbyBkZSBtYW5lcmEgc2lnbmlmaWNhdGl2YSBlbiBtdWNob3MgcGHDrXNlcy4gRW4gbG9zIHBhw61zZXMgY29uc2lkZXJhZG9zIHN1YmRlc2Fycm9sbGFkb3MsCiAgICBwZXJzaXN0ZW4gbGEgcG9icmV6YSwgZWwgZGVzZW1wbGVvLCBsYSBkZXNpZ3VhbGRhZCB5IG90cm9zIHByb2JsZW1hcyBpbmhlcmVudGVzIGFsIHNpc3RlbWEKICAgIGNhcGl0YWxpc3RhLgogICAgCj5MYSBmYWx0YSBkZSByZXN1bHRhZG9zIHNhdGlzZmFjdG9yaW9zIGRlIGxhcyB0ZW9yw61hcyBkZSBkZXNhcnJvbGxvIGhhIGxsZXZhZG8gYSBsYSBldmFsdWFjacOzbiBkZQogICAgaW5kaWNhZG9yZXMgY29tbyBlbCBQSUIgeSBlbCBQSUIgcGVyIGPDoXBpdGEsIHkgYSBsYSBmb3JtdWxhY2nDs24gZGUgZW5mb3F1ZXMgYWx0ZXJuYXRpdm9zIHF1ZSBidXNjYW4KICAgIHByb3BvcmNpb25hciBhIGxvcyBwYcOtc2VzIHN1YmRlc2Fycm9sbGFkb3MgbGFzIGNhcGFjaWRhZGVzIG5lY2VzYXJpYXMgcGFyYSBjdWJyaXIgdGFudG8gbGFzCiAgICBuZWNlc2lkYWRlcyBiw6FzaWNhcyBjb21vIG90cmFzIG5lY2VzaWRhZGVzLCBkZSBtYW5lcmEgc2ltaWxhciBhIGxvIGxvZ3JhZG8gcG9yIGxvcyBwYcOtc2VzCiAgICBkZXNhcnJvbGxhZG9zLgoKIyMgKioxLjEgTWFyY28gdGXDs3JpY28qKgojIyMgICoqMS4xLjEgVGVvcsOtYXMgZGVsIGRlc2Fycm9sbG8qKgojIyMgICAgKipUZW9yw61hIEtleW5lc2lhbmEqKgoKPkxhcyBlc2N1ZWxhcyBjbMOhc2ljYXMgeSBuZW9jbMOhc2ljYXMgc2UgZW5mcmVudGFyb24gYSBmdWVydGVzIGNyw610aWNhcyB0cmFzIGxhIEdyYW4gRGVwcmVzacOzbiwgeWEgcXVlCiAgICBlc3RhIGNyaXNpcyByZXZlbMOzIGxhIGRpZmljdWx0YWQgZGUgbG9ncmFyIGVsIGVxdWlsaWJyaW8gYSB0cmF2w6lzIGRlbCBtZWNhbmlzbW8gZGUgcHJlY2lvcyBlbiBsb3MKICAgIGRpc3RpbnRvcyBtZXJjYWRvcywgY29tbyBlbCBkZSBiaWVuZXMsIGZpbmFuY2llcm8geSBsYWJvcmFsLiBRdWVkw7MgZW4gZXZpZGVuY2lhIHF1ZSBsb3MgYWp1c3RlcyBubyBzZQogICAgcHJvZHVjZW4gZGUgbWFuZXJhIGF1dG9tw6F0aWNhLCBsbyBxdWUgZGlvIGx1Z2FyIGFsIHN1cmdpbWllbnRvIGRlbCBLZXluZXNpYW5pc21vLCBkZW5vbWluYWRvIGFzw60gZW4KICAgIGhvbm9yIGEgc3UgcHJpbmNpcGFsIGF1dG9yLCBKb2huIE1heW5hcmQgS2V5bmVzLgoKPktleW5lcyBkZXNhZmnDsyBsYSB0ZW9yw61hIGNsw6FzaWNhIGFsIGFyZ3VtZW50YXIgcXVlIGxhIGVjb25vbcOtYSBubyBhbGNhbnphIGF1dG9tw6F0aWNhbWVudGUgZWwgcGxlbm8KICAgIGVtcGxlbyB5IG5vIHNlIGF1dG9ycmVndWxhLiBTZWfDum4gS2V5bmVzLCBlbCBlcXVpbGlicmlvIGFsIHF1ZSB0aWVuZGUgbGEgaW50ZXJhY2Npw7NuIGRlIGxvcyBmYWN0b3JlcwogICAgZWNvbsOzbWljb3Mgbm8gZ2FyYW50aXphIGVsIHBsZW5vIGVtcGxlbyBkZSBsb3MgcmVjdXJzb3MgcHJvZHVjdGl2b3MuIFVuYSBkaXNtaW51Y2nDs24gZW4gZWwgZW1wbGVvIG8KICAgIGxvcyBzYWxhcmlvcyBwdWVkZSByZXN1bHRhciBlbiB1bmEgcmVkdWNjacOzbiBkZSBsYSBkZW1hbmRhIHksIHBvciBlbmRlLCBkZSBsYSBwcm9kdWNjacOzbiwgbG8gcXVlCiAgICBhdW1lbnRhIGVsIGRlc2VtcGxlby4gRW4gY29uc2VjdWVuY2lhLCBLZXluZXMgcHJvcHVzbyBxdWUgZWwgRXN0YWRvIGVzdGltdWxlIGxhIGRlbWFuZGEgbWVkaWFudGUgdW4KICAgIG1heW9yIGdhc3RvIGVjb27Ds21pY28uIChDYWx2YSwgMjAwNikuCgo+S2V5bmVzIHNlw7FhbGEgZG9zIGhlcnJhbWllbnRhcyBwYXJhIGxvZ3JhciBlbCBkZXNhcnJvbGxvIGVjb27Ds21pY286IExhIHBvbMOtdGljYSBtb25ldGFyaWEgeSBMYQogICAgcG9sw610aWNhIGZpc2NhbC4gKEtleW5lcyAxOTM2KS4KCj5LZXluZXMgYXJndW1lbnRhYmEgcXVlIGVsIHBsZW5vIGVtcGxlbyBlcmEgZnVuZGFtZW50YWwgcGFyYSBsb2dyYXIgdW4gY3JlY2ltaWVudG8gZWNvbsOzbWljbyBkZW50cm8gZGVsCiAgICBzaXN0ZW1hIGNhcGl0YWxpc3RhLCBhdW5xdWUgZXN0byBpbXBsaWNhcmEgcXVlIGVsIEVzdGFkbyB0dXZpZXJhIHF1ZSByZWFsaXphciBpbnZlcnNpb25lcyB5IGF1bWVudGFyCiAgICBlbCBkw6lmaWNpdCBww7pibGljby4gQWRlbcOhcywgc29zdGVuw61hIHF1ZSBsb3Mgc2FsYXJpb3MgcGFnYWRvcyBwb3IgbG9zIGNhcGl0YWxpc3RhcyBhIGxvcyB0cmFiYWphZG9yZXMgCiAgICBubyBkZWJlcsOtYW4gc2VyIHZpc3RvcyBjb21vIHVuIGdhc3RvLCBzaW5vIGNvbW8gdW4gbWVkaW8gcGFyYSBxdWUgbG9zIGNhcGl0YWxpc3RhcyBvYnR1dmllcmFuIAogICAgZ2FuYW5jaWFzLgogICAgU2Vnw7puIEtleW5lcywgbG9zIHRyYWJhamFkb3JlcyBnYXN0YW4gc3VzIHNhbGFyaW9zIGVuIGJpZW5lcyBuZWNlc2FyaW9zIHBhcmEgc3Ugc3Vic2lzdGVuY2lhLCBsbyBxdWUKICAgIGdlbmVyYSB1biByZXRvcm5vIGRlIGRpbmVybyBhIGxhcyBlbXByZXNhcyBjYXBpdGFsaXN0YXMgcXVlIHNvbiBsYXMgcHJvZHVjdG9yYXMgZGUgZXNvcyBiaWVuZXMuCiAgICAoS2V5bmVzLCAxOTM2KQoKIyMjICAgICoqVGVvcsOtYSBkZSBsYSBtb2Rlcm5pemFjacOzbioqCgo+RW4gbGEgZMOpY2FkYSBkZSBsb3MgYcOxb3MgY2luY3VlbnRhLCBzdXJnacOzIGxhIHRlb3LDrWEgZGUgbGEgTW9kZXJuaXphY2nDs24gY29tbyByZXN1bHRhZG8gZGUgZGl2ZXJzb3MKICAgIGFjb250ZWNpbWllbnRvcyBoaXN0w7NyaWNvcywgY29tbyBlbCBhc2NlbnNvIGRlIEVzdGFkb3MgVW5pZG9zIGNvbW8gcG90ZW5jaWEgZWNvbsOzbWljYSB5IHBvbMOtdGljYSwgbGEKICAgIGV4cGFuc2nDs24gZGUgcGHDrXNlcyBzb2NpYWxpc3RhcyBwZXJjaWJpZGEgY29tbyB1bmEgYW1lbmF6YSB5IGxhIGRlc2FwYXJpY2nDs24gZGUgaW1wZXJpb3MgY29sb25pYWxlcyBlbgogICAgYWxndW5hcyByZWdpb25lcyBkZSAgeSDDgWZyaWNhLiBFc3RvcyBldmVudG9zIG1vdGl2YXJvbiBsYSBuZWNlc2lkYWQgZGUgb3JpZW50YXIgYSBlc3RvcyBwYcOtc2VzIGhhY2lhIAogICAgZWwgZGVzYXJyb2xsbyBlY29uw7NtaWNvIGJhc2FkbyBlbiBlbCBzaXN0ZW1hIGNhcGl0YWxpc3RhIHkgbG9zIHBhw61zZXMgY29uc2lkZXJhZG9zIGRlc2Fycm9sbGFkb3MgCiAgICAoTW9udG95YSwyMDAwKS4KCj5TZWfDum4gbGEgdGVvcsOtYSBkZSBsYSBNb2Rlcm5pemFjacOzbiBzaWVuZG8gZXN0YSBkZSBjb3JyaWVudGUgb3J0b2RveGEsIGVsIGNhbWJpbyBzb2NpYWwgb2N1cnJlIGRlCiAgICBtYW5lcmEgZXZvbHV0aXZhIHkgZ3JhZHVhbCwgbG8gcXVlIGNvbmR1Y2UgYWwgcHJvZ3Jlc28gZGVzZWFkbyBkZXNkZSBsYSBwZXJzcGVjdGl2YSBkZWwgZGVzYXJyb2xsbwogICAgZWNvbsOzbWljby4gRWwgb2JqZXRpdm8gZGUgbGEgbW9kZXJuaXphY2nDs24gZXMgaG9tb2dlbmVpemFyIGxhcyBkaWZlcmVudGVzIHNvY2llZGFkZXMgcGFyYSBtZWpvcmFyIHN1cwogICAgY29uZGljaW9uZXMgZGUgdmlkYSBhIHRyYXbDqXMgZGUgbGEgaW5kdXN0cmlhbGl6YWNpw7NuIGRlbnRybyBkZWwgc2lzdGVtYSBjYXBpdGFsaXN0YS4gCiAgICAKPkVzdGEgdGVvcsOtYSBzb3N0aWVuZSBxdWUgZWwgZGVzYXJyb2xsbyBkZSBsb3MgcGHDrXNlcyBzZSBwdWVkZSBsb2dyYXIgbWVkaWFudGUgbGEgbW9kZXJuaXphY2nDs24sIHF1ZSBzZQogICAgbWF0ZXJpYWxpemEgcHJpbmNpcGFsbWVudGUgYSB0cmF2w6lzIGRlIGxhIGluZHVzdHJpYWxpemFjacOzbi4gRXN0ZSBwcm9jZXNvIGltcGxpY2EgdW5hIHRyYW5zZm9ybWFjacOzbiwKICAgIHlhIHF1ZSBpbXBsaWNhIHJlZW1wbGF6YXIgbGFzIGVzdHJ1Y3R1cmFzIHkgdmFsb3JlcyBkZSBsYXMgZWNvbm9tw61hcyBzdWJkZXNhcnJvbGxhZGFzIG1lZGlhbnRlIGxhCiAgICBpbXBsZW1lbnRhY2nDs24gZGUgcG9sw610aWNhcyBxdWUgcmVkdXpjYW4gbGEgcGFydGljaXBhY2nDs24gZGUgbGEgYWdyaWN1bHR1cmEgZW4gZWwgUElCIHkgb3RyYXMgYWNjaW9uZXMgCiAgICBhcnJhaWdhZGFzIGVuIGxhIGlkaW9zaW5jciBkZSBsb3MgcGHDrXNlcyBzdWJkZXNhcnJvbGxhZG9zLiBDb21vIHNlIHNlw7FhbGEgZW4gZWwgdGV4dG8gY2l0YWRvOiAiU2UgCiAgICB0cmF0YSBkZSB1bmEgdGVvcsOtYSBmdW5kYW1lbnRhZGEgZW4gZWwgYW7DoWxpc2lzIG5lb2Nsw6FzaWNvIHF1ZSwgYWwgaWRlbnRpZmljYXIgZWwgZGVzYXJyb2xsbyBjb24gZWwKICAgIGNyZWNpbWllbnRvIGVjb27Ds21pY28sIGNvbnNpZGVyYSBsb3MgcHJvY2Vzb3MgY29tbyByZXN1bHRhZG9zIG3DoXMgbyBtZW5vcyBhdXRvbcOhdGljb3MgZGVsIG1lcmNhZG8iCiAgICAoTW9udG95YSwgMjAwMCwgcC4gODEpLgoKPkVsIEVzdGFkbyBzZSBwcmVzZW50YSBjb21vIHVuIGVudGUgY2FuYWxpemFkb3IgZGUgcmVjdXJzb3MgeSBlbiBwYXJhbGVsbyBkZWJlcsOhIHJlYWxpemFyIGxhCiAgICBwbGFuaWZpY2FjacOzbiBuZWNlc2FyaWEgcGFyYSBsYSBhcGxpY2FjacOzbiBkZSBwb2zDrXRpY2FzIG9yaWVudGFkYXMgYWwgZGVzYXJyb2xsbyBpbmR1c3RyaWFsIHBvciBtZWRpbwogICAgZGUgbGEgaW52ZXJzacOzbi4gKENhcGl0w6FuIDE5OTYpLgoKPkxhcyB0cmVzIGNhcmFjdGVyw61zdGljYXMgaW1wb3J0YW50ZXMgZW4gbGEgdGVvcsOtYSBkZSBsYSBtb2Rlcm5pemFjacOzbjogMSkgTGEgaW5kdXN0cmlhbGl6YWNpw7NuIGVzIGVsCiAgICBwaWxhciBmdW5kYW1lbnRhbCBwYXJhIGVsIGRlc2Fycm9sbG8uIDIpIFNlIGFib3JkYSBlbCBzdWJkZXNhcnJvbGxvIGNvbW8gcHJvYmxlbWEgcmVsYXRpdm8geSBzb24KICAgIGV4cGxpY2Fkb3MgcG9yIGxvcyBjw61yY3Vsb3MgdmljaW9zb3MgZGUgcG9icmV6YSBxdWUgcHJvdm9jYW4gdW4gZXN0YW5jYW1pZW50byBwZXJtYW5lbnRlLiAzKSBDcsOpZGl0b3MgCiAgICBvIGludmVyc2lvbmVzIGRpcmVjdGFzIHNvbiBmb3JtYXMgZGUgYXl1ZGEgcXVlIGFjdGl2YW4gZWwgcHJvY2VzbyBkZSBjcmVjaW1pZW50byBwb3IgbWVkaW8gZGUgbGEKICAgIGludmVyc2nDs24gKENhcGl0w6FuIDE5OTYpLiAKCiMjIyAqKlRlb3LDrWEgZGUgbGEgZGVwZW5kZW5jaWEqKgoKPkVzdGEgdGVvcsOtYSBzdXJnZSBjb24gZWwgcHJvcMOzc2l0byBkZSBleHBsaWNhciBsYSBzaXR1YWNpw7NuIGRlIHN1YmRlc2Fycm9sbG8gZW4gQW3DqXJpY2EgTGF0aW5hIHkgbGEKICAgIGRlcGVuZGVuY2lhIGRlIGVzdG9zIHBhw61zZXMgcmVzcGVjdG8gYSBsYXMgbmFjaW9uZXMgZGVzYXJyb2xsYWRhcy4gQXVucXVlIHNlIGVuZm9jYSBwcmluY2lwYWxtZW50ZSBlbgogICAgYXNwZWN0b3MgZWNvbsOzbWljb3MsIG5vIGV4Y2x1eWUgY29uc2lkZXJhY2lvbmVzIHBvbMOtdGljYXMsIGlkZW9sw7NnaWNhcywgc29jaWFsZXMgeSBjdWx0dXJhbGVzLiBTZQogICAgcGxhbnRlYSBxdWUgZWwgc3ViZGVzYXJyb2xsbyB5IGxhIGRlcGVuZGVuY2lhIGRlIGxvcyBwYcOtc2VzIHN1YmRlc2Fycm9sbGFkb3Mgc29uIGVsIHJlc3VsdGFkbyBkZSB1bgogICAgcHJvY2VzbyBoaXN0w7NyaWNvIGdsb2JhbCByZWxhY2lvbmFkbyBjb24gbGEgZXhwYW5zacOzbiBkZWwgc2lzdGVtYSBjYXBpdGFsaXN0YSBhIG5pdmVsIG11bmRpYWwuCiAgICAoTW9udG95YSwgMjAwMCkuCgo+TGEgY29udHJpYnVjacOzbiBkZSBlc3RhIHBlcnNwZWN0aXZhIGFsIGVudGVuZGltaWVudG8geSBhbsOhbGlzaXMgZGVsIHN1YmRlc2Fycm9sbG8gZW4gQW3DqXJpY2EgTGF0aW5hIHNlCiAgICBjYXJhY3Rlcml6YSBwb3Igc3UgZW5mb3F1ZSBjcsOtdGljbyBlbiBsdWdhciBkZSBwcm9wb3NpdGl2by4gQSBkaWZlcmVuY2lhIGRlIGxhIHZpc2nDs24gZXN0cnVjdHVyYWxpc3RhCiAgICBkZWwgZGVzYXJyb2xsbywgcXVlIHNlIGNlbnRyYSBlbiB1biBhbsOhbGlzaXMgbcOhcyBhbmFsw610aWNvLiAoTW9udG95YSwgMjAwMCkuCgo+U2Vnw7puIFRoZW90b25pbyBEb3MgU2FudG9zLCBkZXN0YWNhZG8gZXhwb25lbnRlIGRlIGxhIHRlb3LDrWEgZGUgbGEgRGVwZW5kZW5jaWEsIHNlIGVudGllbmRlIHBvcgogICAgZGVwZW5kZW5jaWE6IOKAnOKApiB1bmEgc2l0dWFjacOzbiBlbiBsYSBjdWFsIGxhIGVjb25vbcOtYSAgZGUgdW4gZGV0ZXJtaW5hZG8gcGHDrXMgZXN0w6EgY29uZGljaW9uYWRvIHBvciBlbAogICAgZGVzYXJyb2xsbyB5IGxhIGV4cGFuc2nDs24gZGUgb3RyYSBlY29ub23DrWEgbGEgY3VhbCBlc3TDoSBzdWpldGEgbGEgcHJpbWVyYeKAnS4gKE1vbnRveWEsIDIwMDAsIHAuIDEyMykuCgo+QW5kcsOpIEd1bmRlciBGcmFuaywgb3RybyBkZXN0YWNhZG8gZXhwb25lbnRlIGRlIGxhIHRlb3LDrWEgZGUgbGEgRGVwZW5kZW5jaWEsIGJ1c2NhIGVuIHN1cyB0cmFiYWpvcwogICAgZXhwbGljYXIgbGFzIGNhdXNhcyB5IHJhw61jZXMgZGVsIHN1YmRlc2Fycm9sbG8uIFNlZ8O6biBHdW5kZXIgRnJhbmssIGVsIHN1YmRlc2Fycm9sbG8gbm8gc2UgZGViZQogICAgw7puaWNhbWVudGUgYSBsYSBmYWx0YSBkZSBpbnN0aXR1Y2lvbmVzIHPDs2xpZGFzIHkgY2FwaXRhbCBlbiBlc3RvcyBwYcOtc2VzLCBzaW5vIHF1ZSB0YW1iacOpbiBlcyBlbAogICAgcmVzdWx0YWRvIGRlIHVuIHByb2Nlc28gaGlzdMOzcmljbyBxdWUgaGEgcHJvbW92aWRvIGVsIGxsYW1hZG8gRGVzYXJyb2xsbyBFY29uw7NtaWNvIGVuIGFsZ3Vub3MgcGHDrXNlcyBhCiAgICB0cmF2w6lzIGRlIGxhIGluZHVzdHJpYWxpemFjacOzbiB5IGVsIGNyZWNpbWllbnRvIGVjb27Ds21pY28sIGZhdm9yZWNpZG9zIHBvciBsYSBkb21pbmFuY2lhIGRlbCBzaXN0ZW1hCiAgICBjYXBpdGFsaXN0YS4gKE1vbnRveWEsIDIwMDApLgoKIyMjICoqVGVvcsOtYSBlc3RydWN0dXJhbGlzdGEgZGVsIGRlc2Fycm9sbG8qKgoKPkVuIGVzdGEgdGVvcsOtYSBzZSBkaXN0aW5ndWVuIGRvcyBncnVwb3MgZGUgcGHDrXNlczogbG9zIHBlcmlmw6lyaWNvcywgcXVlIGNvcnJlc3BvbmRlbiBhIHBhw61zZXMKICAgIHN1YmRlc2Fycm9sbGFkb3MsIHkgbG9zIHBhw61zZXMgY2VudHJhbGVzLCBxdWUgc29uIHBhw61zZXMgZGVzYXJyb2xsYWRvcy4gTG9zIHBhw61zZXMgY2VudHJhbGVzIHNlCiAgICBjYXJhY3Rlcml6YW4gcG9yIHRlbmVyIGVjb25vbcOtYXMgaW5kdXN0cmlhbGl6YWRhcyBiYWpvIGVsIHNpc3RlbWEgY2FwaXRhbGlzdGEsIG1pZW50cmFzIHF1ZSBsb3MgcGHDrXNlcwogICAgcGVyaWbDqXJpY29zIHNlIGNvbnNpZGVyYW4gcmV6YWdhZG9zIGVuIHTDqXJtaW5vcyB0ZWNub2zDs2dpY29zLCBjb24gbml2ZWxlcyBvcmdhbml6YXRpdm9zIHkgCiAgICBwcm9kdWN0aXZpZGFkIG3DoXMgYmFqb3MgKE1vbnRveWEsIDIwMDApLgoKPkVsIGRlc2Fycm9sbG8gZWNvbsOzbWljbyBjb25zaXN0ZSBlbiB1bmEgcmVpbnZlcnNpw7NuIG5hY2lvbmFsIGRlbCBleGNlZGVudGUsIHF1ZSBwZXJtaXRhIHVuIGF1bWVudG8gZGUKICAgIGxhIHJlbnRhIHF1ZSBzZXLDoSBwb3N0ZXJpb3JtZW50ZSByZWRpc3RyaWJ1aWRhIGRlIGZvcm1hIGVxdWl0YXRpdmEsIGVsbG8gc29sYW1lbnRlIGVzIHBvc2libGUgcG9yIHVuCiAgICBjYW1iaW8gcG9sw610aWNvIHJhZGljYWwgKENhcGl0w6FuIDE5OTYpLgoKPkxhIHBlcnNwZWN0aXZhIGVzdHJ1Y3R1cmFsaXN0YSBkZWwgZGVzYXJyb2xsbyBjb21wYXJ0ZSBjaWVydGFzIHNpbWlsaXR1ZGVzIGNvbiBsYSB0ZW9yw61hIGRlIGxhCiAgICBNb2Rlcm5pemFjacOzbiwgZW4gdGFudG8gYW1iYXMgc29zdGllbmVuIHF1ZSBsYSBpbmR1c3RyaWFsaXphY2nDs24gZXMgZWwgY2FtaW5vIGFkZWN1YWRvIHBhcmEgYWJvcmRhciBsYQogICAgcG9icmV6YSB5IG90cm9zIGRlc2Fmw61vcyBxdWUgZW5mcmVudGFuIGxvcyBwYcOtc2VzIHBlcmlmw6lyaWNvcy4KCj5TaW4gZW1iYXJnbywgc2Vnw7puIGxhIHBlcnNwZWN0aXZhIGVzdHJ1Y3R1cmFsaXN0YSBkZWwgZGVzYXJyb2xsbywgbGFzIHJhw61jZXMgZGVsIHN1YmRlc2Fycm9sbG8gZW4KICAgIEFtw6lyaWNhIExhdGluYSBzZSBhdHJpYnV5ZW4gYSBsYSBkZXBlbmRlbmNpYSBkZSBlc3RvcyBwYcOtc2VzIGVuIGxhcyBleHBvcnRhY2lvbmVzIGRlIHByb2R1Y3RvcwogICAgcHJpbWFyaW9zLiBFc3RvIHNlIGRlYmUgYSBsYSBkaXZpc2nDs24gaW50ZXJuYWNpb25hbCBkZWwgdHJhYmFqbywgZG9uZGUgQW3DqXJpY2EgTGF0aW5hIHNlIGVzcGVjaWFsaXphCiAgICBlbiBsYSBwcm9kdWNjacOzbiBkZSBhbGltZW50b3MgeSBtYXRlcmlhcyBwcmltYXMsIG1pZW50cmFzIHF1ZSBkZXBlbmRlIGRlIGxhcyBpbXBvcnRhY2lvbmVzIGRlIGJpZW5lcwogICAgaW5kdXN0cmlhbGVzIGRlIGxvcyBwYcOtc2VzIGNlbnRyYWxlcywgcXVlIHNvbiBsb3MgcGHDrXNlcyBkZXNhcnJvbGxhZG9zIHNlZ8O6biBlc3RhIGNvcnJpZW50ZSBkZQogICAgcGVuc2FtaWVudG8uCgo+U2Vnw7puIGxvIHNlw7FhbGFkbyBwb3IgQXF1aWxlcyBNb250b3lhICgyMDAwKSwgUi4gUHJlYmlzY2ggb2JzZXJ2w7MgcXVlIGVzdGFzIGNvbmRpY2lvbmVzIGRlbCBtZXJjYWRvCiAgICBpbnRlcm5hY2lvbmFsIGZhdm9yZWNlbiBsb3MgaW50ZXJlc2VzIGRlIGxvcyBwYcOtc2VzIGNlbnRyYWxlcy4gQ29tbyByZXN1bHRhZG8sIGxhIGJyZWNoYSBlbnRyZQogICAgCj5Mb3MgcGHDrXNlcyBwZXJpZsOpcmljb3MgeSBsb3MgcGHDrXNlcyBjZW50cmFsZXMgY29udGludWFyw6EgYW1wbGnDoW5kb3NlIGNvbiBlbCB0aWVtcG8uIEVzdG8gc2UgZGViZSBhIGxhCiAgICBlc3BlY2lhbGl6YWNpw7NuIGRlIGxvcyBwYcOtc2VzIHBlcmlmw6lyaWNvcyBlbiBsYSBleHBvcnRhY2nDs24gZGUgcHJvZHVjdG9zIHByaW1hcmlvcywgbG8gY3VhbCBsbGV2YSBhIHVuCiAgICBkZXRlcmlvcm8gZGUgbG9zIHTDqXJtaW5vcyBkZSBpbnRlcmNhbWJpbyBkZWJpZG8gYSBsYSBww6lyZGlkYSBkZWwgcG9kZXIgYWRxdWlzaXRpdm8gZGUgbGFzIHBlcnNvbmFzIGVuCiAgICBBbcOpcmljYSBMYXRpbmEgeSBsYSBkaXNtaW51Y2nDs24gZGUgbG9zIHByZWNpb3MgZGUgZXhwb3J0YWNpw7NuIGVuIGxhIHJlZ2nDs24gbGF0aW5vYW1lcmljYW5hLgoKIyMjICoqVGVvcsOtYSBOZW9tYXJ4aXN0YSBkZWwgZGVzYXJyb2xsbyoqCgo+RnVlIG90cmEgZXNjdWVsYSBkZSBsYSBFY29ub23DrWEgUG9sw610aWNhIGRlbCBEZXNhcnJvbGxvIGFsdGVybmF0aXZhIGEgbGEgZXNjdWVsYSBkZSBsYSBtb2Rlcm5pemFjacOzbi4KICAgIFN1cmdpw7MgYSBtZWRpYWRvcyBkZSBsb3MgYcOxb3MgY3VhcmVudGEgZGVsIHNpZ2xvIFhYIChoaWRhbGdvLCAyMDExKQogICAgCiAgICAqKlNlZ8O6biAoY2FwaXRhbiwgMTk5NiksIGVzdGEgdGVvcsOtYSBzZSBjYXJhY3Rlcml6YSBwb3I6KioKCj5hLiBFbCBzdWJkZXNhcnJvbGxvIGVzIGNvbmNlYmlkbyBwb3IgbGEgY29udGludWEgZXh0cmFjY2nDs24gZGUgZXhjZWRlbnRlIGdlbmVyYWRvIGVuIGxhIHBlcmlmZXJpYSBwb3IKICAgIHBhcnRlIGRlIGxhcyBlY29ub23DrWFzIGNhcGl0YWxpc3RhcyBhdmFuemFkYXMgKHNpc3RlbWEgZGUgcmVsYWNpb25lcyBkZSBpbnRlcmNhbWJpbyBkZXNpZ3VhbCkuIExvCiAgICBhbnRlcmlvciBpbXBsaWNhIHF1ZSBsb3MgcGHDrXNlcyBzdWJkZXNhcnJvbGxhZG9zIG5vIHNlYW4gY2FwYWNlcyBkZSBmaW5hbmNpYXIgc3VzIHByb2Nlc29zIGRlCiAgICBpbmR1c3RyaWFsaXphY2nDs24geSBubyBjcmVjZW4gcG9ycXVlIG5vIGNyZWNlIGVsIGFob3JybyBleHRlcm5vIHBvciBkaWNoYSBmdWdhIGRlIGV4Y2VkZW50ZSwgc2llbmRvCiAgICBhc8OtIHF1ZSBlbCBwb2NvIHZhbG9yIHF1ZSBxdWVkYSBlbiBsYSBlY29ub23DrWEgbm8gc2UgZGlzdHJpYnV5ZSBlcXVpdGF0aXZhbWVudGUsIG1hbnRlbmllbmRvIHVuIHRlamlkbwogICAgcHJvZHVjdGl2byBwcmVjYXJpbyB5IGVzdG8gZ2VuZXJhIHF1ZSBlc3RvcyBwYcOtc2VzIHRlbmdhbiB1biBiYWpvIGluZ3Jlc28gcGVyIGPDoXBpdGEgeSBiYWphcyB0YXNhcyBkZQogICAgYWN1bXVsYWNpw7NuIGRlIGNhcGl0YWwgeSBlcyBsYSByYXrDs24gcG9yIGxhIHF1ZSB0aWVuZW4gdW4gYmxvcXVlbyBhbCBkZXNhcnJvbGxvLgoKPmIuIEVsIGRlc2Fycm9sbG8gdmllbmUgZGFkbyBlbnRvbmNlcyBwb3IgdW5hIHJlaW52ZXJzacOzbiBuYWNpb25hbCBkZWwgZXhjZWRlbnRlIHF1ZSBhdW1lbnRlIGxvcwogICAgbml2ZWxlcyBkZSByZW50YSBwYXJhIHF1ZSBlc3RhIHNlIHJlZGlzdHJpYnV5YSBlcXVpdGF0aXZhbWVudGUuCgo+Yy4gRGVudHJvIGRlbCBtb2RvIGRlIHByb2R1Y2Npw7NuIGNhcGl0YWxpc3RhLCBlbCBkZXNhcnJvbGxvIGVjb27Ds21pY28gc2UgZGV0ZXJtaW5hIHBvciBsYSBwb3NpY2nDs24gZGUKICAgIGxhIGVjb25vbcOtYSBhIG5pdmVsIGludGVybmFjaW9uYWwuCgo+ZC4gRWwgc3ViZGVzYXJyb2xsbyBlcyB1biBmZW7Ds21lbm8gaW5oZXJlbnRlIGFsIGNhcGl0YWxpc21vLCBuZWNlc2l0YW5kbyBhc8OtLCB1biBjYW1iaW8gcG9sw610aWNvCiAgICByYWRpY2FsLiBFbCBhdXRvciBwbGFudGVhIGxhcyByZXZvbHVjaW9uZXMgcG9wdWxhcmVzIHF1ZSBhcGFydGVuIGEgbGFzIMOpbGl0ZXMgZGVsIHBvZGVyIHkgcGVybWl0YW4KICAgIGluc3RhdXJhciB1biBzb2NpYWxpc21vIG5hY2lvbmFsLCBkZXNjb25lY3RhbmRvIGRlbCBzaXN0ZW1hIGVjb27Ds21pY28gbXVuZGlhbCBhIGVzdG9zIHBhw61zZXMuCgojIyMgKipUZW9yw61hIE5lb2xpYmVyYWwgZGVsIGRlc2Fycm9sbG8qKgoKPkVuIGxhIHRlb3LDrWEgbmVvbGliZXJhbCBkZXNhcnJvbGxvIGVjb27Ds21pY28gc2UgZnVuZGFtZW50ZSBlbiBsYSBlZmljYWNpYSBkZWwgbWVyY2FkbyBwYXJhIG9idGVuZXIgdW5hCiAgICDDs3B0aW1hIGFzaWduYWNpw7NuIGRlIHJlY3Vyc29zLCBvYnRlbmllbmRvIGRlIGxhIGRlc2lndWFsZGFkIGVjb27Ds21pY2EgdW4gaW5jZW50aXZvIGh1bWFubyB5IG1heGltaXphcgogICAgZWwgZGVzYXJyb2xsbyBwb3IgbGEgbGliZXJhY2nDs24gZGVsIG1lcmNhZG8gaW50ZXJuYWNpb25hbCAoQ2FwaXTDoW4gMTk5NikuCgo+TGFzIHRyZXMgY2FyYWN0ZXLDrXN0aWNhcyBpbXBvcnRhbnRlcyBlbiBsYSB0ZW9yw61hIE5lb2xpYmVyYWwgc29uOiAKCj4xKSBMYSBubyBpbnRlcnZlbmNpw7NuIGRlbCBlc3RhZG8gbWF4aW1pemEgbGEgZWZpY2llbmNpYSB5IGVsIGJpZW5lc3RhciBlY29uw7NtaWNvLgoKPjIpIERlc2ludGVyw6lzIHBvciBsYSBpZ3VhbGRhZCBzb2NpYWwgYWwgcGxhbnRlYXIgcXVlIGxhIGRlc2lndWFsZGFkIGVjb27Ds21pY2EgZXMgdW4gaW1wb3J0YW50ZQogICAgaW5jZW50aXZvIGh1bWFuby4gCgo+MykgTWFudGllbmUgbGEgcG9zdHVyYSBxdWUgbG9zIGJlbmVmaWNpb3Mgc29uIG11dHVvcyBlbiBlbCBjb21lcmNpbyBpbnRlcm5hY2lvbmFsIHBvciBsbyBxdWUgc2UKICAgIG9idGllbmUgbXVjaGFzIHZlbnRhamFzIGRlIGVzdGUgeSBhIGxhIHZleiBhcG9ydGFjaW9uZXMgaW1wb3J0YW50ZXMgZW4gZWwgZGVzYXJyb2xsbyAoQ2FwaXTDoW4gMTk5NikuCgo+RWwgRXN0YWRvIHRpZW5lIHVuYSBtw61uaW1hIG8gbnVsYSBwYXJ0aWNpcGFjacOzbiwgcHVlZGUgaW50ZXJ2ZW5pciDDum5pY2FtZW50ZSBjb21vIGltcHVsc2Fkb3IgcGFyYSBlbAogICAgY3VtcGxpbWllbnRvIGRlIGxleWVzIHF1ZSBiZW5lZmljaWVuIGFsIG1lcmNhZG8uIChDYXBpdMOhbiAxOTk2KS4KCiMjICoqVGVvcsOtYXMgQWx0ZXJuYXRpdmFzIGRlbCBkZXNhcnJvbGxvKioKCj5FbiBsYXMgdGVvcsOtYXMgQWx0ZXJuYXRpdmFzIGVsIGRlc2Fycm9sbG8gc2Ugb2J0aWVuZSBtZWRpYW50ZSBlbCBwcm9jZXNvIG11bHRpZGltZW5zaW9uYWwgZGUgCiAgICBzYXRpc2ZhY2Npw7NuIGVmZWN0aXZhIGRlIGxhcyBuZWNlc2lkYWRlcyBiw6FzaWNhcyBkZSBsb3MgaW5kaXZpZHVvcyAobWF0ZXJpYWxlcyB5IGVzcGlyaXR1YWxlcyBiw6FzaWNhcykKICAgIGRlIGxhIGNsYXNlIHRyYWJhamFkb3JhLCBwZXJtaXRpZW5kbyBzdSBkZXNhcnJvbGxvIGludGVncmFsIChleHByZXNpw7NuLCBjcmVhdGl2aWRhZCwgaWd1YWxkYWQgeSBsaWJyZQogICAgZGV0ZXJtaW5hY2nDs24pLCBnYXJhbnRpemFuZG8gZGVyZWNob3MgaHVtYW5vcywgY2l2aWxlcywgcG9sw610aWNvcywgZSBpbmRpdmlkdWFsZXMuIChDYXBpdMOhbiAxOTk2KS4KCj5MYXMgdHJlcyBjYXJhY3RlcsOtc3RpY2FzIGltcG9ydGFudGVzIGVuIGxhIHRlb3LDrWEgTmVvbGliZXJhbCBzb246IDEpIENhbWJpYSBlbCBwYXJhZGlnbWEgZGVsIAogICAgZGVzYXJyb2xsby4gU2UgdHJhbnNpdGEgZGVsIGRlc2Fycm9sbG8gYmFzYWRvIGVuIGxhIHJpcXVlemEgKG9ydG9kb3hvKSBhIHVuIGRlc2Fycm9sbG8gYmFzYWRvIGVuIGxhCiAgICByZWR1Y2Npw7NuIGRlIGxhIHBvYnJlemEuIDIpIERlc2Fycm9sbG8gYWx0ZXJuYXRpdm8uIFNlIGNlbnRyYSBlbiBsYSBzYXRpc2ZhY2Npw7NuIGRlIGxhcyBuZWNlc2lkYWRlcyAKICAgIGh1bWFuYXMgbWF0ZXJpYWxlcyAoYWxpbWVudGFjacOzbiwgdml2aWVuZGEsIHNhbHVkLCBlZHVjYWNpw7NuLCBldGMuKSB5IGxhcyBuZWNlc2lkYWRlcyBpbm1hdGVyaWFsZXMgCiAgICAoZXNwaXJpdHVhbGVzLCBkZSByZWFsaXphY2nDs24gcGVyc29uYWwsIGV0Yy4pLiAzKSBEZXNhcnJvbGxvIGRlIHNlciAoQ2FwaXTDoW4gMTk5Nik6CgogICAgPiBJZ3VhbGl0YXJpbzogU2F0aXNmYWNjacOzbiBkZSBuZWNlc2lkYWRlcyBodW1hbmFzIGLDoXNpY2FzLgoKICAgID4gRW5kw7NnZW5vIHkgYXV0w7Nub21vOiBkZXNhcnJvbGxvIGNlbnRyYWRvIGVuIGxhIHNvYmVyYW7DrWEgeSBsaWJyZSBkZXRlcm1pbmFjacOzbiBlY29uw7NtaWNhLgoKICAgID4gRWNvbMOzZ2ljbzogRWwgdXNvIHJhY2lvbmFsIGRlIGxvcyByZWN1cnNvcyBuYXR1cmFsZXMuCgogICAgPiBFbCBkZXNhcnJvbGxvIGJhc2FkbyBlbiBjYW1iaW9zIAoKPkVsIG9iamV0aXZvIGRlIGxhcyB0ZW9yw61hcyBhbHRlcm5hdGl2YXMgZXMsIHJlZHVjaXIgbGEgcG9icmV6YSwgcG9yIHRhbnRvLCBzZSBvcmllbnRhIGFsIGRlc2Fycm9sbG8gCiAgICAgaW5kaXZpZHVhbCB5IGNvbXVuaXRhcmlvLCBhdW1lbnRhbmRvIHN1IHByb2R1Y3RpdmlkYWQgcGFyYSBxdWUgcHVlZGEgYWNjZWRlciBhIGluZ3Jlc29zIG3DoXMgYWx0b3MuIAogICAgIEVudG9uY2VzLCBlbCBwYXBlbCBkZWwgRXN0YWRvIGVzIGRvdGFyIGRlIGVkdWNhY2nDs24sIGFsaW1lbnRhY2nDs24geSBzYWx1ZCBkZSBjYWxpZGFkIHBhcmEgcXVlIGxvcyAKICAgICB0cmFiYWphZG9yZXMgc2VhbiBtw6FzIHByb2R1Y3Rpdm9zIChDYXBpdMOhbiAxOTk2KS4KIAojIyAqKjEuMS4yIEVuZm9xdWVzIGRlbCBkZXNhcnJvbGxvKioKCj5FeGlzdGVuIGRpZmVyZW50ZXMgZW5mb3F1ZSBkZXNkZSBsb3MgY3VhbGVzIHNlIHB1ZWRlIGV4cGxpY2FyIGxhIHRlb3LDrWEgZGVsIGRlc2Fycm9sbG8sIGVzdG9zIGVuZm9xdWVzCiAgICBzb246CgojIyMgKipEZXNhcnJvbGxvIGRlc2RlIGVuZm9xdWUgT3J0b2RveG8qKgoKPkxhIHRlb3LDrWEgb3J0b2RveGEgc2UgYmFzw7MgaW5pY2lhbG1lbnRlIGVuIGxvcyBlY29ub21pc3RhcyBuZW9jbMOhc2ljb3MgY29tbyBBbGZyZWQgTWFyc2hhbGwsIExlb24gCiAgICBXYWxyYXMsIFZpbGZyZWRvIFBhcmV0byB5IEFydGh1ciBQaWdvdSwgeSBwb3N0ZXJpb3JtZW50ZSB0dXZvIGFjZXJjYW1pZW50b3MgY29uIG90cmFzIGNvcnJpZW50ZXMgCiAgICBlY29uw7NtaWNhcy4gTm8gb2JzdGFudGUsIGxhIGNvbmV4acOzbiBlbnRyZSBsYSBvcnRvZG94aWEgeSBsb3MgbmVvY2zDoXNpY29zIGVzIGVzZW5jaWFsIGVuIGN1YWxxdWllciAKICAgIGFuw6FsaXNpcyBkZWJpZG8gYWwgc2lnbmlmaWNhZG8gaGlzdMOzcmljbyBxdWUgcmVwcmVzZW50YSBwYXJhIGVsIGRlc2Fycm9sbG8gKE1vbnRveWEsIDIwMDApLgoKPkxhIGVjb25vbcOtYSBvcnRvZG94YSwgdGFsIGNvbW8gbG8gZGVmaW5lIGVsIFNlbWluYXJpbyBkZSBFY29ub23DrWEgQ3LDrXRpY2EgKFRBSUZBKSBlbiBzdSBsaWJybyAiQ3LDrXRpY2EKICAgIGEgbGEgZWNvbm9tw61hIE9ydG9kb3hhIiwgc2UgYmFzYSBlbiBsYXMgdGVvcsOtYXMgZnVuZGFtZW50YWRhcyBlbiBsYSBkb2N0cmluYSBlY29uw7NtaWNhIHRyYWRpY2lvbmFsLiAKICAgIER1cmFudGUgbG9zIMO6bHRpbW9zIDIwIGHDsW9zLCBlbCBwZW5zYW1pZW50byBuZW9jbMOhc2ljbyBvIGxpYmVyYWwgc2UgaGEgY29udmVydGlkbyBlbiBlbCBwYXJhZGlnbWEgCiAgICBkb21pbmFudGUgeSBleGNsdXNpdm8gZGUgbGEgZWNvbm9tw61hLCByZXByZXNlbnRhbmRvIHVuYSB2aXNpw7NuIG9ydG9kb3hhIMO6bmljYSBxdWUgYWJhcmNhIHRvZGEgbGEgCiAgICBjb3JyaWVudGUgY29udmVuY2lvbmFsIGRlIGxhIGNpZW5jaWEgZWNvbsOzbWljYSAoRXR4ZXphcnJldGEsIDIwMDQpLgoKPmxhcyBwcmluY2lwYWxlcyBjYXJhY3RlcsOtc3RpY2FzIGRlIGxhIG9ydG9kb3hpYSBvIHBlbnNhbWllbnRvIG5lb2Nsw6FzaWNvIHNvbiBsYXMgc2lndWllbnRlcyBzZWfDum4gCiAgICBCYXJyeSBDbGFyayBlbiBlbCBsaWJybyBDcsOtdGljYSBhIGxhIEVjb25vbcOtYSBPcnRvZG94YSAoRXR4ZXphcnJldGEsIDIwMDQpOgoKPkV4aXN0ZW4gaW50ZXJlc2VzIGluZGl2aWR1YWxlcyBxdWUgb3BlcmFuIGRlIG1hbmVyYSBhdXTDs25vbWEsIGVtcGxlYW5kbyBsYSBjYXBhY2lkYWQgZGUgcmF6b25hbWllbnRvIAogICAgcGFyYSBzYXRpc2ZhY2VyIG5lY2VzaWRhZGVzIChDbGFyaywgMjAwNCkuIEFkZW3DoXMsIHNlIGVzdGFibGVjZSB1biBnb2JpZXJubyBjdXlhIGZ1bmNpw7NuIGVzIHByb3RlZ2VyIAogICAgbG9zIGRlcmVjaG9zIGVzdGFibGVjaWRvcyBwb3IgbGEgY29uc3RpdHVjacOzbiwgeSBzZSByZWNvbm9jZSBxdWUgImVsIGdvYmllcm5vIGVzIHRhbnRvIG1lam9yIGN1YW50byAKICAgIG1lbm9zIGdvYmllcm5hIiAoQ2xhcmssIDIwMDQpLiAKICAgIAo+RW4gZXN0ZSBjb250ZXh0bywgbm8gZXhpc3RlIHVuYSBlc2NhbGEgb2JqZXRpdmEgcGFyYSBkZXRlcm1pbmFyIHF1w6kgIHZhbG9yZXMgc29uIHN1cGVyaW9yZXMgYSBvdHJvcywgCiAgICBsbyBxdWUgcGVybWl0ZSBhIGxvcyBpbmRpdmlkdW9zIGRlZmluaXIgZWwgYmllbiB5IGVsIG1hbCBzZWfDum4gc3VzIHByZWZlcmVuY2lhcyBwZXJzb25hbGVzLiBMYSAKICAgIGxpYmVydGFkIHNlIGVudGllbmRlIGNvbW8gbGEgYXVzZW5jaWEgZGUgY29lcmNpw7NuIHBvciBwYXJ0ZSBkZWwgZ29iaWVybm8gdSAgb3RyYXMgcGVyc29uYXMuIEFzaW1pc21vLCAKICAgIHNlIGJ1c2NhIGxhIGlndWFsZGFkLCBxdWUgaW1wbGljYSBxdWUgdG9kb3MgbG9zIGNpdWRhZGFub3MgdGllbmVuIGxhcyBtaXNtYXMgb3BvcnR1bmlkYWRlcyBwYXJhIAogICAgcGFydGljaXBhciBlbiBhY3RpdmlkYWRlcyBlY29uw7NtaWNhcyB5IGRpc2ZydXRhciBkZSBsb3MgbWlzbW9zIGRlcmVjaG9zIGNpdmlsZXMgZXN0YWJsZWNpZG9zIHBvciBsYSAKICAgIGNvbnN0aXR1Y2nDs24uIExhIGp1c3RpY2lhIHJlcXVpZXJlIHByb3RlZ2VyIGxvcyBkZXJlY2hvcyBkZSBwcm9waWVkYWQgeSBjaXZpbGVzIGVzdGFibGVjaWRvcyBwb3IgbGEgCiAgICBjb25zdGl0dWNpw7NuLCB5IHNhbmNpb25hciBhIHF1aWVuZXMgdmlvbGVuIGxvcyBkZXJlY2hvcyBkZSBsb3MgZGVtw6FzLiBQb3Igw7psdGltbywgbGEgZWZpY2llbmNpYSBzZSAKICAgIHJlZmllcmUgYSB1bmEgc2l0dWFjacOzbiBlbiBsYSBxdWUgbmFkaWUgcHVlZGUgbWVqb3JhciBlY29uw7NtaWNhbWVudGUgc2luIHBlcmp1ZGljYXIgYSBvdHJhIHBlcnNvbmEuCgo+RW4gZWwgw6FtYml0byBkZSBsYSBlY29ub23DrWEgb3J0b2RveGEsIHNlIGRlc3RhY2EgbGEgcmFjaW9uYWxpZGFkIGRlIGxvcyBhZ2VudGVzLCBxdWllbmVzIGJ1c2NhbgogICAgbWF4aW1pemFyIHN1IHV0aWxpZGFkIGluZGl2aWR1YWwgZGVudHJvIGRlIGxhcyBsaW1pdGFjaW9uZXMgZGUgc3UgZW50b3JubyB5IGVzIGVsIHF1ZSBhYm9yZGFyZW1vcyBlbgogICAgbGEgcHJlc2VudGUgaW52ZXN0aWdhY2nDs24uCgojIyMgKipEZXNhcnJvbGxvIGRlc2RlIGVuZm9xdWUgSGV0ZXJvZG94byoqCgo+TGEgY29ycmllbnRlIGRlIGxhIGVjb25vbcOtYSBoZXRlcm9kb3hhIHNlIGNhcmFjdGVyaXphIHBvciBzdSBlbmZvcXVlIGVuIGxhIGNyZWFjacOzbiBkZSBudWV2YXMgdGVvcsOtYXMgCiAgICBhIHBhcnRpciBkZSBsYSBpZGVudGlmaWNhY2nDs24gZGUgbnVldm9zIGhlY2hvcyBoaXN0w7NyaWNvcyBxdWUgbW9kaWZpY2FuIHVuIG1hcmNvIHNvY2lvZWNvbsOzbWljbyAKICAgIGVzcGVjw61maWNvLiBBZGVtw6FzLCBwYXJ0ZSBkZWwgc3VwdWVzdG8gZGUgcXVlIGxhcyB0ZW9yw61hcyBlY29uw7NtaWNhcyBleGlzdGVudGVzIHJlc3VsdGFuIGluc3VmaWNpZW50ZXMKICAgIG8gaW5hZGVjdWFkYXMgcGFyYSBjb21wcmVuZGVyIHkgYWJvcmRhciBkaWNob3MgY2FtYmlvcy4gKENFUEFMLCAyMDA0KS4KCj5TZWfDum4gZWwgZWNvbm9taXN0YSBtZXhpY2FubyBSb2JlcnRvIEVzY2FsYW50ZSwgbGEgZWNvbm9tw61hIGhldGVyb2RveGEgc2UgZGVmaW5lIGNvbW8gY3VhbHF1aWVyCiAgICBjb250cmlidWNpw7NuIHF1ZSBidXNjYSBlbCBiaWVuZXN0YXIgc29jaWFsIHkgcXVlIHNlIG9wb25lIGEgbGEgY29ycmllbnRlIHRlw7NyaWNhIGRvbWluYW50ZSAoRXNjYWxhbnRlLAogICAgMjAwOSkuIEVuIG90cmFzIHBhbGFicmFzLCBsYSBoZXRlcm9kb3hpYSBpbXBsaWNhIHVuIGVuZm9xdWUgZW4gY29uc3RhbnRlIGV2b2x1Y2nDs24gYSBsbyBsYXJnbyBkZWwKICAgIHRpZW1wbyBlbiBjb250cmFwb3NpY2nDs24gYSBsbyBxdWUgc2UgY29uc2lkZXJhIG9ydG9kb3hvLiBVbiBlamVtcGxvIGRlc3RhY2FkbyBkZSBlc3RvLCBjb21vIHNlw7FhbGEKICAgIEVzY2FsYW50ZSwgZXMgZWwgc3VyZ2ltaWVudG8gZGUgS2V5bmVzIGNvbW8gZWNvbm9taXN0YSBoZXRlcm9kb3hvIGZyZW50ZSBhIGxhIGVjb25vbcOtYSBuZW9jbMOhc2ljYQogICAgZG9taW5hbnRlIGVuIGxhIGTDqWNhZGEgZGUgbG9zIHRyZWludGEuIFBvc3Rlcmlvcm1lbnRlLCBjb24gbGEgc8OtbnRlc2lzIG5lb2Nsw6FzaWNhLCBhbGd1bmFzIGlkZWFzCiAgICBrZXluZXNpYW5hcyBmdWVyb24gYWRvcHRhZGFzIGNvbW8gb3J0b2RveGFzIChFc2NhbGFudGUsIDIwMDkpLgoKIyMjICoqRWwgRGVzYXJyb2xsbyBzdXN0ZW50YWJsZSB5IHNvc3RlbmlibGUqKgoKPlBhcnRpbW9zIGRlbCBoZWNobyBxdWUgZWwgZGVzYXJyb2xsbyBzdXN0ZW50YWJsZSB5IGVsIGRlc2Fycm9sbG8gc29zdGVuaWJsZSBlc3TDoW4gdmluY3VsYWRvcyBhCiAgICBhcXVlbGxvcyBvYmpldGl2b3Mgc29jaWFsZXMsIGVjb27Ds21pY29zIHkgYW1iaWVudGFsZXMuCiAgICAKPkxhIGRpZmVyZW5jaWEgZW50cmUgZXN0b3MgZXMgY2xhcmE6IGxhIHBlcmR1cmFjacOzbiBkZWwgZGVzYXJyb2xsbyBzdXN0ZW50YWJsZSBlbiBlbCB0aWVtcG8gYWxjYW56YXLDoQogICAgdW4gZ3JhZG8gZGUgZGVzYXJyb2xsbyBzb3N0ZW5pYmxlLgoKPkVsIGRlc2Fycm9sbG8gc3VzdGVudGFibGUgbm8gc2UgcmVmaWVyZSBhIHVuYSBtZXRhIHRhbmdpYmxlIG5pIGN1YW50aWZpY2FibGUgYSBzZXIgYWxjYW56YWRhIGVuIAogICAgZGV0ZXJtaW5hZG8gcGxhem8geSBtb21lbnRvLCBzaW5vIHF1ZSBhbHVkZSBhIGxhIHBvc2liaWxpZGFkIGRlIG1hbnRlbmVyIHVuIGVxdWlsaWJyaW8gZW50cmUgZmFjdG9yZXMKICAgIHF1ZSBleHBsaWNhcsOhbiB1biBjaWVydG8gbml2ZWwgZGUgZGVzYXJyb2xsbyBkZWwgc2VyIGh1bWFubywgc2llbmRvIGVzdGUgbml2ZWwgdHJhbnNpdG9yaW8sIGNhbWJpYW50ZSwKICAgIGNvbiBpbmNlcnRpZHVtYnJlcyB5IGRlYmVyw61hIHNlciBzaWVtcHJlIHByb3BpY2lhZG9yIGRlIGxhcyBtZWpvcmFzIGVuIGxhIGNhbGlkYWQgZGUgdmlkYSBkZSBsb3Mgc2VyZXMKICAgIGh1bWFub3MuIEVuIGVzdGUgc2VudGlkbywgZWwgY29uY2VwdG8gZGUgImRlc2Fycm9sbG8gaHVtYW5vIiBkZWJlcsOtYSBsbGV2YXIgaW1wbMOtY2l0byBsYQogICAgc3VzdGVudGFiaWxpZGFkIGVuIHVuIGRldGVybWluYWRvIG1vbWVudG8geSBsYSBzb3N0ZW5pYmlsaWRhZCBkZSBkaWNoYSBzdXN0ZW50YWJpbGlkYWQgZW4gZWwgdGllbXBvLgoKIyMgKipUw6ljbmljYSBtdWx0aXZhcmlhZGEgc2ludMOpdGljYSoqCgo+TGFzIHTDqWNuaWNhcyBlc3RhZMOtc3RpY2FzIG11bHRpdmFyaWFkYXMgc29uIGFxdWVsbGFzIHF1ZSBhbmFsaXphbiBtw7psdGlwbGVzIGNhcmFjdGVyw61zdGljYXMgeSBwZXJtaXRlbgogICAgZW4gbGEgaW52ZXN0aWdhY2nDs24gZXh0cmFlciBhYnVuZGFudGUgaW5mb3JtYWNpw7NuIGRlIGxvcyBkYXRvcyBkaXNwb25pYmxlcy4gRW4gZXN0dWRpb3MgY29tbyBlc3RlIGRlCiAgICBvYnNlcnZhY2nDs24gZGUgZGF0b3Mgbm8gZXMgcG9zaWJsZSBhc2lnbmFyIGV4cGVyaW1lbnRhbG1lbnRlIHZhbG9yZXMgZGUgdW5hIHZhcmlhYmxlIHlhIHByb25vc3RpY2FkYSwKICAgIHBvciBsbyBxdWUgbm9zIGludGVyZXNhIGNvbm9jZXIgbG9zIGVmZWN0b3MgZGUgbcO6bHRpcGxlcyB2YXJpYWJsZXMgcHJvbm9zdGljYWRhcyBzb2JyZSB1biByZXN1bHRhZG8geQogICAgcGFyYSBlbGxvIHNlIHVzw7MgZWwgbW9kZWxvIGRlIHJlZ3Jlc2nDs24gcXVlIHNpbnRldGl6YSBsYSBpbmZvcm1hY2nDs24gc29icmUgdmFyaWFibGVzIHByZWRpY3RpdmFzIAogICAgaW5kaXZpZHVhbGVzIGNvbiBlbCB1c28gZGUgdG9kbyBlbCBjb25qdW50byBkZSBkYXRvcy4KICAgIAo+RWwgYW7DoWxpc2lzIG11bHRpdmFyaWFkbyBzZSBwcmVzZW50YSBlbiBlc3RlIGVzdHVkaW8gZGUgY2F1c2FsaWRhZCwgY3V5YSBlc3RyYXRlZ2lhIHBhcnRlIGRlbCBkaXNlw7FvCiAgICBlbiBkb25kZSBzZSBpbnZvbHVjcmFuIHZhcmlhYmxlcyBkZXBlbmRpZW50ZXMgeSBjb21vIGNvdmFyaWFibGVzIGxvcyBzdXB1ZXN0b3MgZmFjdG9yZXMgY2F1c2FsZXMuCiAgICAKPkxvcyBjb2VmaWNpZW50ZXMgZXN0aW1hZG9zIGNvbiBlbCBtb2RlbG8gc29uIHBhcsOhbWV0cm9zIGVzdGFkw61zdGljb3MgZGVzY3JpcHRpdm9zIHF1ZSBwZXJtaXRlbiBvYnRlbmVyCiAgICB1biBzaWduaWZpY2FkbyBkZSBsb3MgZGF0b3MuCgo+TGEgdGVvcsOtYSBlc3RhZMOtc3RpY2EgeSBsb3MgbcOpdG9kb3MgYXBsaWNhZG9zIGEgbGEgZWxhYm9yYWNpw7NuIGRlIGluZGljYWRvcmVzIHNpbnTDqXRpY29zIHBvcgogICAgZW50aWRhZGVzICBkZWwgIG9yZGVuICBsb2NhbCwgIHJlZ2lvbmFsICBlIGludGVybmFjaW9uYWwsICByZWNvbWllbmRhbiAgZWwgIHVzbyAgZGUgIGFuw6FsaXNpcwogICAgbXVsdGl2YXJpYW50ZSBwYXJhIGVsIHRyYXRhbWllbnRvIGRlIGRhdG9zIHF1ZSBkZXNjcmliZW4gZmVuw7NtZW5vcyBxdWUgcHVlZGVuIHNlciBleHBsaWNhZG9zIGVuIGNvbcO6bgogICAgKFNlZ25lc3RhbiwgMjAwMmEsIENhc3RybywgMjAwNCkuIAogICAgCj5TZSBhcmd1bWVudGEgcXVlIHBhc2FyIGRlIGxhIHJlY29waWxhY2nDs24gZGUgaW5kaWNhZG9yZXMgc2ltcGxlcyBhIGxhIGdlbmVyYWNpw7NuIGRlIGluZGljYWRvcmVzCiAgICBzaW50w6l0aWNvcyBlcyB1biBpbXBlcmF0aXZvIHBhcmEgc2ltcGxpZmljYXIgbG9zIGRhdG9zIHkgZXN0cnVjdHVyYXJsb3MgZW4gaW5mb3JtYWNpw7NuIG3DoXMgZWxhYm9yYWRhLAogICAgZGUgYWN1ZXJkbyBhIGxhcyBuZWNlc2lkYWRlcyBkZSBsb3MgdG9tYWRvcmVzIGRlIGRlY2lzacOzbiB5IGVsIHDDumJsaWNvIGVuIGdlbmVyYWwgW1BvbGFuY28gKDIwMDYpzb4gTU1BCiAgICAoMTk5Ns2+IDIwMDApXS4KCj5Mb3MgbcOpdG9kb3MgZGUgYW7DoWxpc2lzIG11bHRpdmFyaWFudGUgc29uIHVuIGNvbmp1bnRvIGRlIHTDqWNuaWNhcyBkZSBhbsOhbGlzaXMgZGUgZGF0b3MgcXVlIHBlcm1pdGVuIGFsCiAgICBpbnZlc3RpZ2Fkb3IgdGVzdGFyICBsYSAgdXRpbGlkYWQgY29uanVudGEgIGRlICBsb3MgZGF0b3MgIHF1ZSBzZSBlbXBsZWFuICBlbiAgbGEgZXhwbGljYWNpw7NuIGRlIGxvcwogICAgZmVuw7NtZW5vcyBkZSBpbnRlcsOpcyBhbmFsw610aWNvLCBjb21vIGVsIGJpZW5lc3RhciBzb2NpYWwsIGxhIGNhbGlkYWQgYW1iaWVudGFsIHVyYmFuYSB5IGVsIGRlc2Fycm9sbG8KICAgIHNvc3RlbmlibGUsIGV0Yy4gKERpeG9uIGV0IGFsLiwgMjAwMs2+IFBhcmRvIGV0IGFsLiwgMjAwMs2+IFZpc2F1dGEgZXQgYWwuLCAyMDAzKS4KICAgIAo+RWwgaW5kaWNhZG9yIHNpbnTDqXRpY28gbyDDrW5kaWNlIGVzdMOhIGZvcm1hZG8gcG9yIHVuYSBzZXJpZSBkZSBjb21wb25lbnRlcyBxdWUgYXBvcnRhbiBpbmZvcm1hY2nDs24KICAgIHZhbGlvc2EgYWNlcmNhIGRlbCAgb2JqZXRpdm8gYSBtZWRpciwgeWEgc2VhIGxhIGNhbGlkYWQgIGFtYmllbnRhbCwgZWwgZGVzYXJyb2xsbyBzb3N0ZW5pYmxlLCBldGMuLCBlbgogICAgbGFzIGRpc3RpbnRhcyB1bmlkYWRlcyBkZSBvYnNlcnZhY2nDs24gKFphcnpvc2EsIDE5OTY6NjUpLgogICAgCj5FbiBnZW5lcmFsLCBlbCBhbsOhbGlzaXMgbXVsdGl2YXJpYWRvIHNlIHJlZmllcmUgYSB0w6ljbmljYXMgZXN0YWTDrXN0aWNhcyB1dGlsaXphZGFzIHBhcmEgYW5hbGl6YXIKICAgIGNvbmp1bnRvcyBkZSBkYXRvcyBxdWUgdGllbmVuIG3Dumx0aXBsZXMgdmFyaWFibGVzLiBFc3RvIHB1ZWRlIGluY2x1aXIgdMOpY25pY2FzIGNvbW8gZWwgYW7DoWxpc2lzCiAgICBmYWN0b3JpYWwsIGVsIGFuw6FsaXNpcyBkZSBjb3JyZXNwb25kZW5jaWEsIGVsIGFuw6FsaXNpcyBkaXNjcmltaW5hbnRlLCBlbnRyZSBvdHJvcy4gRW4gY3VhbnRvIGFsCiAgICB0w6lybWlubyAic2ludMOpdGljbyIsIHBvZHLDrWEgaW50ZXJwcmV0YXJzZSBjb21vIGxhIGNyZWFjacOzbiBkZSB2YXJpYWJsZXMgc2ludMOpdGljYXMgYSBwYXJ0aXIgZGUKICAgIGNvbWJpbmFjaW9uZXMgbGluZWFsZXMgZGUgdmFyaWFibGVzIG9yaWdpbmFsZXMsIGNvbiBlbCBmaW4gZGUgcmVkdWNpciBsYSBkaW1lbnNpb25hbGlkYWQgZGUgbG9zIGRhdG9zCiAgICB5IG9idGVuZXIgdW5hIHJlcHJlc2VudGFjacOzbiBtw6FzIHNpbXBsaWZpY2FkYSBkZWwgY29uanVudG8gZGUgdmFyaWFibGVzLiAKCiMjICoqMS4yIE1hcmNvIFJlZmVyZW5jaWFsKioKCj5FbCBFY29ub21pc3RhIG5hY2lkbyBlbiBsYSBJbmRpYSwgRGVicmFqIFJheSBlcyB1biByZWNvbm9jaWRvIHBvciBzdSB0cmFiYWpvIGVuIGVsIMOhcmVhIGRlIGVjb25vbcOtYQogICAgZGVsIGRlc2Fycm9sbG8uIEVuIHN1IGxpYnJvICoiRWNvbm9tw61hIGRlbCBkZXNhcnJvbGxvIiogZGVzdGFjYSBxdWUgcGFyYSBlbnRlbmRlciBsYXMgY2F1c2FzIHkKICAgIGNvbnNlY3VlbmNpYXMgZGUgZmVuw7NtZW5vcyBjb21vIGxhIHBvYnJlemEgeSBkZXNpZ3VhbGRhZCBlbiBwYcOtc2VzIHN1YmRlc2Fycm9sbGFkb3MsIGRlYmVuIAogICAgY29uc2lkZXJhcnNlIHRlbWFzIGNvbW8gbGEgZWR1Y2FjacOzbiwgc2FsdWQsIGNvbWVyY2lvIGludGVybmFjaW9uYWwsIHBvbMOtdGljYXMgZWNvbsOzbWljYXMsIGVudHJlIG90cm9zCiAgICBmYWN0b3JlcyBpbmZsdXllbnRlcyBlbiBlbCBkZXNhcnJvbGxvIGVjb27Ds21pY28uIEVsIGF1dG9yIGhhY2Ugw6luZmFzaXMgZW4gbG8gcXVlIGxsYW1hICJwb2JyZXphCiAgICBkaW7DoW1pY2EiLCBwdWVzIHJlY2FsY2EgcXVlIGxhIHBvYnJlemEgc2UgZGViZSBhIHVuYSBjb21iaW5hY2nDs24gZGUgZmFjdG9yZXMgZGUgY2Fyw6FjdGVyIGVzdHJ1Y3R1cmFsXQogICAgKGZhbHRhIGRlIGFjY2VzbyBhIGVkdWNhY2nDs24geSBlbXBsZW8pIHkgYSBmYWN0b3JlcyBpbmRpdmlkdWFsZXMgKGZhbHRhIGRlIGhhYmlsaWRhZGVzIHkgcmVjdXJzb3MKICAgIGZpbmFuY2llcm9zKS4KICAgIAo+QWRpY2lvbmFsIGFsIHRleHRvIGFudGVyaW9yLCBlbCBsaWJybyB0aXR1bGFkbyAqIkVDT05PTcONQSBERUwgREVTQVJST0xMTyBZIERFU0FSUk9MTE8gVEVSUklUT1JJQUwiKgogICAgZGUgYWxidXJxdWVycXVlLCAyMDEzLCBicmluZGEgdW5hIHZpc2nDs24gaW50ZWdyYWwgZGUgbG9zIGVuZm9xdWVzIHkgZXN0cmF0ZWdpYXMgZW1wbGVhZG9zIHBhcmEgZWwKICAgIGRlc2Fycm9sbG8gZWNvbsOzbWljbyB5IHRlcnJpdG9yaWFsIGRlIGxvcyBwYcOtc2VzIHN1YmRlc2Fycm9sbGFkb3MuIEFsYnVycXVlcnF1ZSBhcmd1bWVudGEgcXVlIGVsCiAgICBkZXNhcnJvbGxvIGVjb27Ds21pY28geSB0ZXJyaXRvcmlhbCBlc3TDoW4gw61udGltYW1lbnRlIHJlbGFjaW9uYWRvcyB5IHBvciBlc2EgcmF6w7NuIHNlIGRlYmVuIGFib3JkYXIKICAgIGRlIG1hbmVyYSBjb25qdW50YSBwYXJhIGFsY2FuemFyIHVuIGRlc2Fycm9sbG8gc29zdGVuaWJsZSB5IGVxdWl0YXRpdm8uIEFkZW3DoXMsIGVuZmF0aXphIGxhCiAgICBpbXBvcnRhbmNpYSBkZSBsYSBwYXJ0aWNpcGFjacOzbiBjaXVkYWRhbmEgeSBjb29wZXJhY2nDs24gaW50ZXJuYWNpb25hbCBwYXJhIGxhIGVsYWJvcmFjacOzbiBkZQogICAgcG9sw610aWNhcyBkZSBkZXNhcnJvbGxvIGVjb27Ds21pY28geSB0ZXJyaXRvcmlhbC4KCgojIyAqKkRlZmluaWNpw7NuIGRlIGRlc2Fycm9sbG8gcHJvcHVlc3RhIHBvciBlbCBlcXVpcG8gZGUgdHJhYmFqbyoqCgoKPkVsIGRlc2Fycm9sbG8gZXMgdW4gcHJvY2VzbyBkZSBjYW1iaW8gcXVlIG1lam9yYSBsYSBjYWxpZGFkIGRlIHZpZGEgZGUgbGFzIHBlcnNvbmFzLCB0YW50byBhaG9yYSBjb21vCiAgICBlbiBlbCBmdXR1cm8uCgo+RWwgZGVzYXJyb2xsbyBlcyB1biBwcm9jZXNvIGRlIGNhbWJpbyBxdWUgbWVqb3JhIGxhIGNhbGlkYWQgZGUgdmlkYSBkZSBsYXMgcGVyc29uYXMsIHRhbnRvIGFob3JhIGNvbW8KICAgIGVuIGVsIGZ1dHVybywgdGVuaWVuZG8gZW4gY3VlbnRhIGxhcyBkaW1lbnNpb25lcyBodW1hbmFzLCBzb2NpYWwsIGRlIGluZnJhZXN0cnVjdHVyYSB5IHRlY25vbMOzZ2ljYSwgeQogICAgcHJvbW92aWVuZG8gdW4gY3JlY2ltaWVudG8gZWNvbsOzbWljbyBzb3N0ZW5pYmxlIHkgZXF1aXRhdGl2byBxdWUgcHJvdGVqYSBlbCBtZWRpbyBhbWJpZW50ZSB5IHByb211ZXZlCiAgICBsYSBqdXN0aWNpYSBzb2NpYWwuCgo+RXN0YSBkZWZpbmljacOzbiBzZSBiYXNhIGVuIGxhIGlkZWEgZGUgcXVlIGVsIGRlc2Fycm9sbG8gZGViZSBzZXIgaG9sw61zdGljbywgc29zdGVuaWJsZSB5IGVxdWl0YXRpdm8uCiAgICBObyBkZWJlIGNlbnRyYXJzZSBlbiB1biBzb2xvIGFzcGVjdG8gZGVsIGRlc2Fycm9sbG8sIGNvbW8gZWwgY3JlY2ltaWVudG8gZWNvbsOzbWljbywgYXVucXVlIGVzdGUgc2kgZXMgCiAgICBkZSBpbXBvcnRhbmNpYSBhYm9yZGFybG8gbm8gZGViZSBzZXIgZWwgw7puaWNvLiBFbiBzdSBsdWdhciwgZGViZSB0ZW5lciBlbiBjdWVudGEgbGFzIGN1YXRybwogICAgZGltZW5zaW9uZXMgYWRpY2lvbmFsZXMgZGVsIGRlc2Fycm9sbG86IGh1bWFubywgc29jaWFsLCBpbmZyYWVzdHJ1Y3R1cmEgeSB0ZWNub2xvZ8OtYS4KCj5MYSBkaW1lbnNpw7NuIGh1bWFuYSBlcyBlc2VuY2lhbCBwYXJhIGVsIGRlc2Fycm9sbG8gcG9ycXVlIGFzZWd1cmEgcXVlIGxhcyBwZXJzb25hcyB0ZW5nYW4gbGFzCiAgICBuZWNlc2lkYWRlcyBiw6FzaWNhcyBwYXJhIHZpdmlyIHVuYSBidWVuYSB2aWRhLiBFc3RvIGluY2x1eWUgZmFjdG9yZXMgY29tbyBsYSBzYWx1ZCwgbGEgZWR1Y2FjacOzbiB5IGVsCiAgICBhY2Nlc28gYSBsYXMgbmVjZXNpZGFkZXMgYsOhc2ljYXMuCgo+TGEgZGltZW5zacOzbiBzb2NpYWwgdGFtYmnDqW4gZXMgZXNlbmNpYWwgcGFyYSBlbCBkZXNhcnJvbGxvIHBvcnF1ZSBjcmVhIHVuYSBzb2NpZWRhZCBqdXN0YSB5IGp1c3RhIHBhcmEKICAgIHRvZG9zLiBFc3RvIGluY2x1eWUgZmFjdG9yZXMgY29tbyBsYSBjb2hlc2nDs24gc29jaWFsLCBsYSBpZ3VhbGRhZCBkZSBnw6luZXJvIHkgbGEganVzdGljaWEgc29jaWFsLgoKPkxhIGRpbWVuc2nDs24gZGUgaW5mcmFlc3RydWN0dXJhIHkgdGVjbm9sb2fDrWEgZXMgZnVuZGFtZW50YWwgcGFyYSBlbCBkZXNhcnJvbGxvIHBvcnF1ZSBwcm9wb3JjaW9uYSBsYXMKICAgIGhlcnJhbWllbnRhcyB5IGxvcyByZWN1cnNvcyBxdWUgbGFzIHBlcnNvbmFzIG5lY2VzaXRhbiBwYXJhIG1lam9yYXIgc3VzIHZpZGFzLiBFc3RvIGluY2x1eWUgZmFjdG9yZXMKICAgIGNvbW8gZWwgdHJhbnNwb3J0ZSwgbGEgY29tdW5pY2FjacOzbiB5IGxhIGVuZXJnw61hLgoKPkVsIGNyZWNpbWllbnRvIGVjb27Ds21pY28gc29zdGVuaWJsZSB5IGVxdWl0YXRpdm8gZXMgZXNlbmNpYWwgcGFyYSBlbCBkZXNhcnJvbGxvIHBvcnF1ZSBhc2VndXJhIHF1ZSBlbAogICAgZGVzYXJyb2xsbyBiZW5lZmljaWUgYSB0b2Rvcywgbm8gc29sbyBhIHVub3MgcG9jb3MgZWxlZ2lkb3MuIEVzdG8gaW5jbHV5ZSBmYWN0b3JlcyBjb21vIGxhIHByb3RlY2Npw7NuCiAgICBkZWwgbWVkaW8gYW1iaWVudGUgeSBsYSBwcm9tb2Npw7NuIGRlIGxhIGp1c3RpY2lhIHNvY2lhbC4KCiMjICoqRWwgRGVzYXJyb2xsbyoqCgo+UGFydGllbmRvIGRlbCBoZWNobyBxdWUsIGVsIGVuZm9xdWUgb3J0b2RveG8gZGVsIGRlc2Fycm9sbG8gbWVuY2lvbmFkbyBhbnRlcmlvcm1lbnRlIG11ZXN0cmEgZXZpZGVuY2lhCiAgICBkZSBzZXIgY3JpdGljYWRvIHBvciBzZXIgZGVtZG8gc2ltcGxpc3RhLCBsaW1pdGFkbyB5IGVuZm9jYWRvIGVuIGVsIGNvcnRvIHBsYXpvIGRhZG8gcXVlIGNlbnRyYSBzdQogICAgZXhwbGljYWNpw7NuIGVuIGVsIGRlc2Fycm9sbG8sIGVudGVuZGlkbyBjb21vIGVsIGNyZWNpbWllbnRvIGVjb27Ds21pY28gb2J0ZW5pZG8gcG9yIGVsIGNyZWNpbWllbnRvIGRlbAogICAgUElCIHBlciBjw6FwaXRhLCBlcyBkZWNpciwgdG9tYW4gZGUgcmVmZXJlbmNpYSBhbCBQSUIgcGVyIGPDoXBpdGEgY29tbyBlbCDDum5pY28gaW5kaWNhZG9yIHF1ZSBleHBsaWNhIGVsCiAgICBkZXNhcnJvbGxvLCBkZWphbmRvIGRlIGxhZG8gb3Ryb3MgYXNwZWN0b3MgaW1wb3J0YW50ZXMgY29tbyBsYSBkaXN0cmlidWNpw7NuIGVxdWl0YXRpdmEgZGUgbGEgcmVudGEsCiAgICBwb2RlciBhZHF1aXNpdGl2byByZWFsLCBubyByZWZsZWphIGVsIHNlY3RvciBpbmZvcm1hbCBuaSBlZmVjdG9zIGV4dGVybm9zIG5lZ2F0aXZvcyBjb21vIGVsIGRldGVyaW9ybwogICAgYW1iaWVudGFsLCBsYSBpZ3VhbGRhZCBkZSBnw6luZXJvLCBpbmR1c3RyaWFzIGNvbnRhbWluYW50ZXMgeSBvdHJvcywgZW4gYWRpY2nDs24gYSBlc3RvLCBsYSAKICAgIGFyZ3VtZW50YWNpw7NuIGV4aXN0ZW50ZSBzb2JyZSBlc3RlIGVuZm9xdWUgcXVlIGxsZXZhIGEgbGFzIGVjb25vbcOtYXMgYSBwcm9ibGVtYXMgZGUgZW5kZXVkYW1pZW50bwogICAgZXh0ZXJubyB5IGEgdW5hIGRlcGVuZGVuY2lhIGVjb27Ds21pY2EgZGUgbG9zIHBhw61zZXMgc3ViZGVzYXJyb2xsYWRvcyByZXNwZXRvIGEgbG9zIHBhw61zZXMgCiAgICBkZXNhcnJvbGxhZG9zIGUgaW5zdGl0dWNpb25lcyBmaW5hbmNpZXJhcyBpbnRlcm5hY2lvbmFsZXMuCgo+RW50b25jZXMsIHNpIGVsIGRlc2Fycm9sbG8gdmEgbcOhcyBhbGzDoSBkZSBmb21lbnRhciBlbCBjcmVjaW1pZW50bywgcmVkdWNpciBsYSBwb2JyZXphIHkgbGEgZGVzaWd1YWxkYWQKICAgICh0csOtYWRhIG9ydG9kb3hhKSwgYWx1ZGUgYSB1biBjb21wb25lbnRlIGRlIGJpZW5lc3RhciBlbiBmdW5jaW9uZXMgbWF0ZXJpYWxlcyBlIGlubWF0ZXJpYWxlcyAodml0YWxlcwogICAgeSBlc3Bpcml0dWFsZXMpLiBSYXrDs24gcG9yIGxhIGN1YWwgc2UgcHJvY2VkZSBhIG1hdGl6YXIgZWwgaW5kaWNhZG9yIHNpbnTDqXRpY28gY29udmVuY2lvbmFsbWVudGUKICAgIGFjZXB0YWRvIGNvbW8gZWwgbWVqb3IgZGUgbGEgYWN0aXZpZGFkIHByb2R1Y3RpdmEgKFBJQnBjKS4KCj5Qb3IgdGFudG8sIHBhcmEgZWZlY3RvcyBkZSBlc3R1ZGlvLCBubyBzZSBjb250ZW1wbGFyw6Egw7puaWNhbWVudGUgbGEgZXNmZXJhIGVjb27Ds21pY2EgZGVsIGRlc2Fycm9sbG8gZW4KICAgIHTDqXJtaW5vcyBkZSBuaXZlbGVzIHByb2R1Y3Rpdm9zIGRlbnRybyBkZSB1bmEgZWNvbm9tw61hLCBwdWVzIGVsIGNyZWNpbWllbnRvIGVjb27Ds21pY28gcG9yIHPDrSBzb2xvIG5vCiAgICBlcyBzdWZpY2llbnRlIHBhcmEgbG9ncmFyIHVuIGRlc2Fycm9sbG8gc29zdGVuaWJsZSwgZGFkbyBxdWUgZWwgZGVzYXJyb2xsbyBzZSBwbGFudGVhIG1lZGlyIGxhcwogICAgbWVqb3JhcyBlbiB0b2RvcyBsb3Mgbml2ZWxlcyBkZSBsYSBzb2NpZWRhZCwgdGVuaWVuZG8gZW4gY3VlbnRhIGVsIHByb2dyZXNvIGRlIGxhcyBmdWVyemFzIHByb2R1Y3RpdmFzCiAgICBxdWUgYXVtZW50ZSBlbCBjcmVjaW1pZW50byBkZSBsYSBwcm9kdWNjacOzbiBkZSBiaWVuZXMgeSBzZXJ2aWNpb3MgeSBhIHN1IHZleiwgZWwgYmllbmVzdGFyIGRlIGxhCiAgICBwb2JsYWNpw7NuLCBwYXJhIGxvIGN1YWwsIGVzIGltcG9ydGFudGUgY29uc2lkZXJhciB1biBjb25qdW50byBkZSBhc3BlY3RvcyBiw6FzaWNvcyB5IGVzZW5jaWFsZXMgcGFyYSBsYQogICAgZXhpc3RlbmNpYSBodW1hbmEuIEJham8gZXN0ZSBjb250ZXh0bywgc2UgYWx1ZGUgYSBsYSBtZWpvcmEgZW4gbGEgZGlzcG9zaWNpw7NuIGRlIGJpZW5lcyBwYXJhIGVsIAogICAgY29uc3VtbywgZXMgZGVjaXIsIGJpZW5lcyB2aXRhbGVzIGNvbW8gbGEgYWxpbWVudGFjacOzbiwgbGEgdmVzdGltZW50YSwgdml2aWVuZGEgZGlnbmEsIHNlcnZpY2lvcyBkZSAKICAgIHNhbHVkLCBhY2Nlc28gYSBzZXJ2aWNpb3MgYsOhc2ljb3MsIGxhIHZpZGEgcHJvcGlhLCBlbnRyZSBvdHJvcywgZ2FyYW50aXphbmRvIGEgc3UgdmV6IGxhIGVxdWlkYWQgCiAgICBzb2NpYWwsIHByb3RlY2Npw7NuIGFtYmllbnRhbCB5IHBhcnRpY2lwYWNpw7NuIGNpdWRhZGFuYS4KCj5FbiBlc3RlIHNlbnRpZG8sIHkgdGVuaWVuZG8gZW4gY3VlbnRhIHF1ZSwgZWwgY3JlY2ltaWVudG8gZGVsIFBOQnBjIGVzIHVuIGluZGljYWRvciBxdWUgZW4gbGEgcHLDoWN0aWNhCiAgICBubyBleHBsaWNhIGxhIHJlbGFjacOzbiBlbnRyZSBlY29ub23DrWEgeSBwb2JyZXphIGRlIHVuIHBhw61zIHkgbm8gcmVmbGVqYSBkZSBsYSBtZWpvciBmb3JtYSBsb3MKICAgIHByb2dyZXNvcyBvIHJldHJvY2Vzb3MgZWNvbsOzbWljb3MgZW4gdMOpcm1pbm9zIGRlIHNhbHVkLCBlZHVjYWNpw7NuIHkgb3Ryb3MsIGVzIGFow60gZG9uZGUgcGFydGUgbGEKICAgIGltcGxlbWVudGFjacOzbiBkZSBpbmRpY2Fkb3JlcyBzb2NpYWxlcyBwYXJhIHJvYnVzdGVjZXIgZWwgZW5mb3F1ZSBvcnRvZG94by4KCj5CYWpvIGVzdGEgcHJlbWlzYSwgZXhpc3RlbiBtdWNoYXMgZm9ybXVsYWNpb25lcyBjb250ZW1wb3LDoW5lYXMgY29tbyBlbCBkZXNhcnJvbGxvIG11bHRpZGltZW5zaW9uYWwsCiAgICBkZXNhcnJvbGxvIHNvc3RlbmlibGUsIGRlc2Fycm9sbG8gaHVtYW5vLCBlY29ub21pYSBmZW1pbmlzdGEgeSBvdHJvcyBxdWUsIGEgcGVzYXIgZGUgbm8gc2VyIGNvcnJpZW50ZXMKICAgIGRlIHBlbnNhbWllbnRvLCBjb25zaWRlcmFuIGxhIHNhdGlzZmFjY2nDs24gZGUgbmVjZXNpZGFkZXMgYsOhc2ljYXMgY29tbyBlbGVtZW50byBjZW50cmFsIGRlIGRlc2Fycm9sbG8sCiAgICBicmluZGFuZG8gb3RyYXMgZGltZW5zaW9uZXMgYXBhcnRlIGRlIGxhcyBlY29uw7NtaWNhcywgbG8gY3VhbCBwZXJtaXRlIHJlZGVmaW5pciBlbCB0w6lybWlubyBkZWwKICAgIGRlc2Fycm9sbG8gYSB0cmF2w6lzIGRlIHVuYSBjb21wcmVuc2nDs24gbcOhcyBhbXBsaWEgeSBjcsOtdGljYSBkZSBsYXMgZGltZW5zaW9uZXMgc29jaWFsZXMsIGN1bHR1cmFsZXMsCiAgICBhbWJpZW50YWxlcywgZW50cmUgb3RyYXMuIERpY2hhcyBmb3JtdWxhY2lvbmVzIHBlcm1pdGVuIGVuIG51ZXN0cmEgZGVmaW5pY2nDs24gZGUgZGVzYXJyb2xsbyBkYXIgbGEKICAgIHBvc2liaWxpZGFkIGEgbGFzIHBlcnNvbmFzIGRlIHNhdGlzZmFjZXIgc3VzIG5lY2VzaWRhZGVzIHBvciBtZWRpbyBkZSB1biBhdW1lbnRvIGRlIHByb2R1Y3RpdmlkYWQgeQogICAgdW5hIHJlZHVjY2nDs24gZGUgbGEgcG9icmV6YSwgcGFyYSBsbyBjdWFsIGVzIG5lY2VzYXJpbyBkb3RhcmxvcyBkZSBlbGVtZW50b3MgYsOhc2ljb3MgY29tbyBzYWx1ZCwKICAgIGVkdWNhY2nDs24sIGFsaW1lbnRhY2nDs24geSBvdHJvcy4gCgo+UG9yIHRhbnRvLCBwYXJhIG1lZGlyLCBjb21wYXJhciB5IGFuYWxpemFyIGxhIGRpbsOhbWljYSB5IGVsIG5pdmVsIGRlIGRlc2Fycm9sbG8sIGhheSBxdWUgZXhwbGljaXRhcgogICAgbG9zIGZhY3RvcmVzIHF1ZSBjb25maWd1cmFuIGVsIGRlc2Fycm9sbG8geSBxdWUgc29uIGxvcyBxdWUgaGF5IHF1ZSBtZWRpciB5IGNvbXBhcmFyLiBQYXJhIGVsIGNhc28sCiAgICBwYXJ0aWVuZG8gZGUgZWwgY29uY2VwdG8gZGVzY3JpdG8gYW50ZXJpb3JtZW50ZSwgcHJvY2VkZW1vcyBhIGRlZmluaXIgbGFzIGRpbWVuc2lvbmVzIHF1ZSBoYW4gc2lkbwogICAgdG9tYWRhcyBlbiBjdWVudGEgcGFyYSBsYSBjb25zdHJ1Y2Npw7NuIGRlIGxhIHZhcmlhYmxlIGNvbXBsZWphIGEgZXhwbGljYXI6IGVsIGRlc2Fycm9sbG8uIEVzdGFzCiAgICBkaW1lbnNpb25lcyByb2J1c3RlY2VuIGxhIGlkZWEgY29udmVuY2lvbmFsIGRlbCBkZXNhcnJvbGxvIHF1ZSBzZSBiYXNhIGVuIGxhIHBlcnNwZWN0aXZhIGVjb27Ds21pY2EsIAogICAgcHJvcG9yY2lvbmFuZG8gYXPDrSBpbmRpY2Fkb3JlcyBtb25ldGFyaW9zLCBhbWJpZW50YWxlcyB5IHNvY2lhbGVzIHF1ZSBnYXJhbnRpemFyw6FuIHVuIGRlc2Fycm9sbG8gCiAgICBzdXN0ZW50YWJsZSB5IHNvc3RlbmlibGUuIAoKPkNhYmUgcmVjYWxjYXIgcXVlIGxhcyBjYXJhY3RlcsOtc3RpY2FzIGRlIGVzdGUgcHJvY2VzbyBzZXLDoSBkaWZlcmVudGUgZW4gY2FkYSBwYcOtcywgcmVnacOzbiBvIGxvY2FsaWRhZCAKICAgIHNlZ8O6biBsYSBzaXR1YWNpw7NuIGVuIGxhIHF1ZSBlc3RvcyBzZSBlbmN1ZW50cmVuLCBzdXMgY29uZGljaW9uZXMsIGZvcm1hcyBkZSBvcmdhbml6YWNpw7NuLCBlbnRyZSAKICAgIG90cm9zLiBCYWpvIGVsIGVzcXVlbWEgcHJvcHVlc3RvIHBvciAobGFycm91eWV0LCAyMDE1KSBzb2JyZSBsYXMgZGltZW5zaW9uZXMgZGVsIGRlc2Fycm9sbG8gCiAgICBzdXN0ZW50YWJsZSwgcHJlc2VudGFtb3MgbGFzIGRpbWVuc2lvbmVzIGEgY29uc2lkZXJhciBwYXJhIG1lZGlyIGVsIG5pdmVsIGRlIGRlc2Fycm9sbG8gZW4gbGEgcmVnacOzbiAKICAgIGRlIEF1c3RyYWxpYSB5IE51ZXZhIFplbGFuZGlhLCBNZWxhbmVzaWEgeSBNaWNyb25lc2lhCgojIyAqKjEuIERpbWVuc2nDs24gRWNvbsOzbWljYSoqCgo+QmFqbyBlbCBlc3F1ZW1hIGRlIHN1c3RlbnRhYmlsaWRhZCBsbyBxdWUgY3VlbnRhIG5vIGVzIGVsIGNyZWNpbWllbnRvIGRlIGxhIHByb2R1Y2Npw7NuLCBzaW5vIGxhIAogICAgY2FsaWRhZCBkZSBsb3Mgc2VydmljaW9zIHF1ZSBwcmVzdGFuIGJham8gbGEgcHLDoWN0aWNhIGRlIHByb2Nlc29zIGRlIHByb2R1Y2Npw7NuIG3DoXMgbGltcGlvcywgCiAgICBlZmljaWVudGVzIHkgY29uIGFncmVnYWNpw7NuIGRlIHZhbG9yIGEgbGFzIG1hdGVyaWFzIHByaW1hcy4KCj5FbiBlc3RlIHNlbnRpZG8sIGV4aXN0ZSBsYSBuZWNlc2lkYWQgZGUgcHJvbW92ZXIgdW4gY3JlY2ltaWVudG8gZWNvbsOzbWljbyBzb3N0ZW5pYmxlLCBsYSBjcmVhY2nDs24gZGUgCiAgICBlbXBsZW8geSBlbCBhY2Nlc28gYSBvcG9ydHVuaWRhZGVzIGVjb27Ds21pY2FzIHBhcmEgdG9kb3MgcXVlIHBlcm1pdGEgc2F0aXNmYWNlciBsYXMgbmVjZXNpZGFkZXMgZGUgbGFzCiAgICBnZW5lcmFjaW9uZXMgcHJlc2VudGVzIHNpbiBjb21wcm9tZXRlciBsYSBjYXBhY2lkYWQgZGUgbGFzIGdlbmVyYWNpb25lcyBmdXR1cmFzIHBhcmEgc2F0aXNmYWNlciBzdXMKICAgIHByb3BpYXMgbmVjZXNpZGFkZXMuIERlYmUgc2VyIGNhcGF6IGRlIHJlZHVjaXIgbGEgcG9icmV6YSwgbGEgZGVzaWd1YWxkYWQgeSBsYSBleGNsdXNpw7NuIHNvY2lhbC4KCiMjICoqMi4gRGltZW5zacOzbiBIdW1hbmEqKgoKPkVsIGRlc2Fycm9sbG8gc3VzdGVudGFibGUgc2UgZW5mb2NhIGEgdW5hIG1lam9yYSBlbiBsYSBjYWxpZGFkIGRlIHZpZGEgZGUgbGFzIHBlcnNvbmFzIGEgdHJhdsOpcyBkZQogICAgc2F0aXNmYWNlciBzdXMgbmVjZXNpZGFkZXMgYsOhc2ljYXMsIGlndWFsYXIgbG9zIG5pdmVsZXMgZGUgaW5ncmVzb3MgeSBzdXBlcmFyIGxhIHBvYnJlemEgYSB0cmF2w6lzIGRlIAogICAgbGEgcmVhc2lnbmFjacOzbiBkZSByZWN1cnNvcyBlY29uw7NtaWNvcyBxdWUgYXRpZW5kYW4gZXN0YXMgbmVjZXNpZGFkZXMuCgo+TGEgZGltZW5zacOzbiBodW1hbmEgZGVsIGRlc2Fycm9sbG8gc2UgcmVmaWVyZSBhIGxhIGltcG9ydGFuY2lhIGRlIGluY2x1aXIgZWwgYmllbmVzdGFyIHkgZWwgcHJvZ3Jlc28gCiAgICBkZSBsYXMgcGVyc29uYXMgY29tbyB1biBjb21wb25lbnRlIGNsYXZlIGVuIGVsIHByb2Nlc28gZGUgZGVzYXJyb2xsby4gRXN0byBzaWduaWZpY2EgcXVlIG5vIHNlIHRyYXRhIAogICAgc29sbyBkZSBjcmVjaW1pZW50byBlY29uw7NtaWNvLCBzaW5vIHRhbWJpw6luIGRlIG1lam9yYXIgbGFzIGNvbmRpY2lvbmVzIGRlIHZpZGEgZGUgbGEgcG9ibGFjacOzbiwgcG9yIAogICAgZWplbXBsbywgbWVkaWFudGUgbGEgcHJvdGVjY2nDs24gZGUgbG9zIGRlcmVjaG9zIGh1bWFub3MsIGVsIGFjY2VzbyBhIHNlcnZpY2lvcyBiw6FzaWNvcyBjb21vIGxhIAogICAgZWR1Y2FjacOzbiB5IGxhIHNhbHVkLCB5IGxhIHByb21vY2nDs24gZGUgdmFsb3JlcyBjb21vIGxhIGp1c3RpY2lhIHNvY2lhbCwgbGEgaWd1YWxkYWQgZGUgZ8OpbmVybyB5IGxhIAogICAgcGFydGljaXBhY2nDs24gY2l1ZGFkYW5hLgoKIyMgKiozLiBEaW1lbnNpw7NuIEFtYmllbnRhbCoqCgo+U2UgcmVmaWVyZSBhIGxhIGltcG9ydGFuY2lhIGRlIGNvbnNpZGVyYXIgZWwgaW1wYWN0byBkZSBsYXMgYWN0aXZpZGFkZXMgaHVtYW5hcyBlbiBlbCBtZWRpbyBhbWJpZW50ZSB5CiAgICBlbiBsb3MgcmVjdXJzb3MgbmF0dXJhbGVzLiBFbCBkZXNhcnJvbGxvIHkgbGEgdmlkYSBtaXNtYSBkZWJlbiBpciBkZSBsYSBtYW5vIGNvbiBlbCBzdXN0ZW50byBkZSBsYQogICAgbmF0dXJhbGV6YSB2aW5jdWxhbmRvIGFzw60gbG9zIG1vZGVsb3MgZGUgZGVzYXJyb2xsbyBhIGxvIGVjb2zDs2dpY28geSBhbWJpZW50YWwgKHVuIG1vZGVsbyBzdXN0ZW50YWJsZSAKICAgIG1lZGlhbnRlIGxhIHJlZ2VuZXJhY2nDs24gZGUgcmVjdXJzb3MgbmF0dXJhbGVzIHkgY2FwYWNpZGFkIGRlIGFzaW1pbGFjacOzbiBkZWwgZWNvc2lzdGVtYSkuCgo+RWwgZGVzYXJyb2xsbyBkZWJlIHRlbmVyIGVuIGN1ZW50YSBsYSBwcm90ZWNjacOzbiB5IGNvbnNlcnZhY2nDs24gZGVsIG1lZGlvIGFtYmllbnRlIHkgbG9zIHJlY3Vyc29zIAogICAgbmF0dXJhbGVzLCBjb21vIHBhcnRlIGludGVncmFsIGRlbCBwcm9jZXNvIGRlIGRlc2Fycm9sbG8uIEVzdGUgZW5mb3F1ZSByZWNvbm9jZSBxdWUgZWwgZGVzYXJyb2xsbyAKICAgIGh1bWFubyBubyBwdWVkZSBzZXIgc29zdGVuaWJsZSBzaSBubyBzZSB0b21hbiBtZWRpZGFzIHBhcmEgZ2FyYW50aXphciBsYSBzb3N0ZW5pYmlsaWRhZCBhbWJpZW50YWwuIFNlIAogICAgdHJhdGEgZGUgdW4gZW5mb3F1ZSBjZW50cmFkbyBlbiBsYSBwcm90ZWNjacOzbiB5IGNvbnNlcnZhY2nDs24gZGVsIG1lZGlvIGFtYmllbnRlIHkgZGUgbG9zIHJlY3Vyc29zIAogICAgbmF0dXJhbGVzLCBxdWUgcmVjb25vY2UgbGEgaW1wb3J0YW5jaWEgZGUgbGEgYmlvZGl2ZXJzaWRhZCwgbGEgY2FsaWRhZCBkZWwgYWlyZSB5IGRlbCBhZ3VhLCBlbCBjYW1iaW8gCiAgICBjbGltw6F0aWNvIHkgb3Ryb3MgcHJvYmxlbWFzIGFtYmllbnRhbGVzIGdsb2JhbGVzLgoKIyMgKio0LiBEaW1lbnNpw7NuIGRlIFRlY25vbG9nw61hKioKCj5FbCB0ZW1hIGRlIGxhIHRlY25vbMOzZ2ljYSwgcmVxdWllcmUgZGUgcHJvY2Vzb3MgZGUgaW5ub3ZhY2nDs24geSBkZXNhcnJvbGxvIChJK0QpIHBhcmEgcmVkdWNpciBlbCAKICAgIGNvbnRlbmlkbyBlbiByZWN1cnNvcyBuYXR1cmFsZXMgZGUgZGV0ZXJtaW5hZGFzIGFjdGl2aWRhZGVzIGVjb27Ds21pY2FzIHkgcGVybWl0aXIgbGFzIG1lam9yYXMgZW4gCiAgICBjdWFudG8gYSBsYSBjYWxpZGFkIGRlIGxhIHByb2R1Y2Npw7NuLiBFc3RhIGRpbWVuc2nDs24gdmVsYSBwb3IgbGEgYsO6c3F1ZWRhIHkgY2FtYmlvIGhhY2lhIHRlY25vbG9nw61hcyAKICAgIGVmaWNpZW50ZXMgcGFyYSBsb3MgcGHDrXNlcyBpbmR1c3RyaWFsaXphZG9zIHkgZWwgZGVzYXJyb2xsbyBkZSB0ZWNub2xvZ8OtYXMgbcOhcyBlZmljaWVudGVzIHkgbGltcGlhcyBlbgogICAgcGHDrXNlcyBkZSBsYSBwZXJpZmVyaWEgeWEgcXVlIGVzdG9zIMO6bHRpbW9zIGFsIHBvc2VlciBlY29ub23DrWFzIGJhc2FkYXMgZW4gbGEgYWdyaWN1bHR1cmEsIGRlYmVuCiAgICBkZXNhcnJvbGxhciB0ZWNub2xvZ8OtYXMgYXByb3BpYWRhcyB5IGRlIHBlcXVlw7FhIGVzY2FsYSBwYXJhIGluY3JlbWVudGFyIGxhIHByb3VjdGl2aWRhZCBhZ3LDrWNvbGEgeSBkZSAKICAgIG90cm9zIHNlY3RvcmVzIGRlIHNlciBwb3NpYmxlLgoKIyAqKjIuIENhcmFjdGVyaXphY2nDs24gZGUgbG9zIGluZGljYWRvcmVzIHByb3B1ZXN0b3MqKgoKICA+RW4gZWwgcHJlc2VudGUgdHJhYmFqbyBzZSBoYW4gY29uc2lkZXJhZG8gdW4gdG90YWwgZGUgMjcgdmFyaWFibGVzLCBkaXN0cmlidWlkYXMgZW4gNyBkaW1lbnNpb25lcywgbGFzIGN1YWxlcyBzb246IGRpbWVuc2nDs24gZWNvbsOzbWljYSAoNyksIGh1bWFuYSAoMTQpLCBhbWJpZW50YWwgKDQpIHkgdGVjbm9sb2dpY2EgKDIpLCBjb24gbGFzIGN1YWxlcywgc2UgaGEgZGVzYXJyb2xsYWRvIGVsIGFuw6FsaXNpcyBkZSBsYSByZWdpw7NuIGRlIEF1c3RyYWxpYSB5IE51ZXZhIFplbGFuZGlhLCBNZWxhbmVzaWEsIE1pY3JvbmVzaWEgeSBQb2xpbmVzaWEuIEVuIGJhc2UgYSBsYXMgNCBkaW1lbnNpb25lcyBwcm9wdWVzdGFzIHF1ZSBjb21wb25lbiBudWVzdHJvIGluZGljYWRvciBkZSBkZXNhcnJvbGxvLCBlc3TDoW4gY29uc3RpdHVpZGFzIHBvciB1biB0b3RhbCBkZSB2YXJpYWJsZXMgcXVlIHNlIGFncnVwYW4gZW4gc3ViZGltZW5zaW9uZXMuIEJham8gZXN0ZSBjb250ZXh0byBzZSBwcm9jZWRlIGEgZGVzYXJyb2xsYXIgbGEgY2FyYWN0ZXJpemFjacOzbiBkZSBjYWRhIHVuYSBkZSBsYXMgZGltZW5zaW9uZXMganVudGFtZW50ZSBjb24gbGFzIHZhcmlhYmxlcyBxdWUgbGFzIGNvbXBvbmVuLgoKCiMjICAgSU5ESUNBRE9SIEVDT05PTUlDTzoKICA+IkVzdGUgaW5kaWNhZG9yIGhhY2UgcmVmZXJlbmNpYSBhIGxhIHByaW1lcmEgYWd1cGFjaW9uIGRlIHZhcmlhYmxlcyByZWxhY2lvbmFkYXMgY29uIGxvcyBzdWJkaW1lbnNpb25lczogcHJvZHVjY2nDs24gZSBpbmdyZXNvLCBkaXN0cmlidWNpw7NuIGRlbCBpbmdyZXNvIGUgaW5mbGFjacOzbi4gTGFzIGN1YWxlcyBzZSBhc2lnbmFuIGRlIGxhIHNpZ3VpZW50ZSBmb3JtYToiLCAKICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKICA+4oCiICoqVmFyaWFibGUxX0Zvcm1hY2nDs24gYnJ1dGEgZGUgY2FwaXRhbCAoJSBkZWwgUElCKToqKiBMYSBmb3JtYWNpw7NuIGJydXRhIGRlIGNhcGl0YWwgKGFudGVyaW9ybWVudGUsIGludmVyc2nDs24gaW50ZXJuYSBicnV0YSkgY29uc2lzdGUgZW4gbG9zIGRlc2VtYm9sc29zIHBvciBhZGljaW9uZXMgYSBsb3MgYWN0aXZvcyBmaWpvcyBkZSBsYSBlY29ub23DrWEgbcOhcyBsb3MgY2FtYmlvcyBuZXRvcyBlbiBlbCBuaXZlbCBkZSBpbnZlbnRhcmlvcy4gTG9zIGFjdGl2b3MgZmlqb3MgaW5jbHV5ZW4gbWVqb3JhcyBkZSB0ZXJyZW5vcyAoY2VyY2FzLCB6YW5qYXMsIGRlc2Fnw7xlcywgZXRjLik7IGNvbXByYXMgZGUgcGxhbnRhcywgbWFxdWluYXJpYSB5IGVxdWlwbzsgeSBsYSBjb25zdHJ1Y2Npw7NuIGRlIGNhcnJldGVyYXMsIHbDrWFzIGbDqXJyZWFzIHkgc2ltaWxhcmVzLCBpbmNsdWlkYXMgZXNjdWVsYXMsIG9maWNpbmFzLCBob3NwaXRhbGVzLCB2aXZpZW5kYXMgcmVzaWRlbmNpYWxlcyBwcml2YWRhcyB5IGVkaWZpY2lvcyBjb21lcmNpYWxlcyBlIGluZHVzdHJpYWxlcy4gTG9zIGludmVudGFyaW9zIHNvbiBleGlzdGVuY2lhcyBkZSBiaWVuZXMgcXVlIHRpZW5lbiBsYXMgZW1wcmVzYXMgcGFyYSBoYWNlciBmcmVudGUgYSBmbHVjdHVhY2lvbmVzIHRlbXBvcmFsZXMgbyBpbmVzcGVyYWRhcyBlbiBsYSBwcm9kdWNjacOzbiBvIGxhcyB2ZW50YXMsIHkgZWwgPDx0cmFiYWpvIGVuIGN1cnNvPj4uIFNlZ8O6biBlbCBTQ04gMTk5MywgbGFzIGFkcXVpc2ljaW9uZXMgbmV0YXMgZGUgdmFsb3JlcyB0YW1iacOpbiBzZSBjb25zaWRlcmFuIGZvcm1hY2nDs24gZGUgY2FwaXRhbC4KCiAgPuKAoiAqKlZhcmlhYmxlMl9QSUIgcG9yIHVuaWRhZCBkZSB1c28gZGUgZW5lcmfDrWEgKFVTRCBQUEEgY29uc3RhbnRlIGRlIDIwMTcgcG9yIGtnIGRlIGVxdWl2YWxlbnRlIGRlIHBldHLDs2xlbyk6KiogRWwgUElCIHBvciB1bmlkYWQgZGUgdXNvIGRlIGVuZXJnw61hIGVzIGVsIFBJQiBQUEEgcG9yIGtpbG9ncmFtbyBkZSBwZXRyw7NsZW8gZXF1aXZhbGVudGUgZGUgdXNvIGRlIGVuZXJnw61hLiBFbCBQSUIgUFBBIGVzIGVsIHByb2R1Y3RvIGludGVybm8gYnJ1dG8gY29udmVydGlkbyBhIGTDs2xhcmVzIGludGVybmFjaW9uYWxlcyBjb25zdGFudGVzIGRlIDIwMTcgdXRpbGl6YW5kbyB0YXNhcyBkZSBwYXJpZGFkIGRlbCBwb2RlciBhZHF1aXNpdGl2by4gVW4gZMOzbGFyIGludGVybmFjaW9uYWwgdGllbmUgZWwgbWlzbW8gcG9kZXIgYWRxdWlzaXRpdm8gc29icmUgZWwgUElCIHF1ZSB1biBkw7NsYXIgZXN0YWRvdW5pZGVuc2UgZW4gbG9zIEVzdGFkb3MgVW5pZG9zLgoKICA+4oCiICoqVmFyaWFibGUzX1BJQiBwb3IgcGVyc29uYSBlbXBsZWFkYSAoZMOzbGFyZXMgUFBBIGNvbnN0YW50ZXMgZGUgMjAxNyk6KiogRWwgUElCIHBvciBwZXJzb25hIGVtcGxlYWRhIGVzIGVsIHByb2R1Y3RvIGludGVybm8gYnJ1dG8gKFBJQikgZGl2aWRpZG8gcG9yIGVsIGVtcGxlbyB0b3RhbCBlbiBsYSBlY29ub23DrWEuIEVsIFBJQiBkZSBwYXJpZGFkIGRlbCBwb2RlciBhZHF1aXNpdGl2byAoUFBBKSBlcyBlbCBQSUIgY29udmVydGlkbyBhIGTDs2xhcmVzIGludGVybmFjaW9uYWxlcyBjb25zdGFudGVzIGRlIDIwMTcgdXRpbGl6YW5kbyB0YXNhcyBkZSBQUEEuIFVuIGTDs2xhciBpbnRlcm5hY2lvbmFsIHRpZW5lIGVsIG1pc21vIHBvZGVyIGFkcXVpc2l0aXZvIHNvYnJlIGVsIFBJQiBxdWUgdGllbmUgdW4gZMOzbGFyIGVzdGFkb3VuaWRlbnNlIGVuIGxvcyBFc3RhZG9zIFVuaWRvcy4KCiAgPuKAoiAqKlZhcmlhYmxlNF9Db21lcmNpbyAoJSBkZWwgUElCKToqKiBFbCBjb21lcmNpbyBlcyBsYSBzdW1hIGRlIGxhcyBleHBvcnRhY2lvbmVzIGUgaW1wb3J0YWNpb25lcyBkZSBiaWVuZXMgeSBzZXJ2aWNpb3MgbWVkaWRhcyBjb21vIHBvcmNlbnRhamUgZGVsIHByb2R1Y3RvIGludGVybm8gYnJ1dG8uCgogID7igKIgKipWYXJpYWJsZTVfU2VydmljaW8gZGUgbGEgZGV1ZGEgdG90YWwgKCUgZGUgbGFzIGV4cG9ydGFjaW9uZXMgZGUgYmllbmVzLCBzZXJ2aWNpb3MgZSBpbmdyZXNvcyBwcmltYXJpb3MpOioqIFNlcnZpY2lvIGRlIGxhIGRldWRhIHRvdGFsIGEgZXhwb3J0YWNpb25lcyBkZSBiaWVuZXMsIHNlcnZpY2lvcyBlIGluZ3Jlc29zIHByaW1hcmlvcy4gRWwgc2VydmljaW8gdG90YWwgZGUgbGEgZGV1ZGEgZXMgbGEgc3VtYSBkZSBsb3MgcmVlbWJvbHNvcyBkZSBjYXBpdGFsIHkgbG9zIGludGVyZXNlcyBlZmVjdGl2YW1lbnRlIHBhZ2Fkb3MgZW4gbW9uZWRhLCBiaWVuZXMgbyBzZXJ2aWNpb3Mgc29icmUgbGEgZGV1ZGEgYSBsYXJnbyBwbGF6bywgbG9zIGludGVyZXNlcyBwYWdhZG9zIHNvYnJlIGxhIGRldWRhIGEgY29ydG8gcGxhem8geSBsb3MgcmVlbWJvbHNvcyAocmVjb21wcmFzIHkgY2FyZ29zKSBhbCBGTUkuCgogID4g4oCiICoqVmFyaWFibGU2X0FzaXN0ZW5jaWEgb2ZpY2lhbCBwYXJhIGVsIGRlc2Fycm9sbG8gbmV0YSB5IGF5dWRhIG9maWNpYWwgcmVjaWJpZGEgKFVTJCBhIHByZWNpb3MgYWN0dWFsZXMpOioqIExhIGFzaXN0ZW5jaWEgb2ZpY2lhbCBwYXJhIGVsIGRlc2Fycm9sbG8gKEFPRCkgbmV0YSBjb25zaXN0ZSBlbiBkZXNlbWJvbHNvcyBkZSBwcsOpc3RhbW9zIHJlYWxpemFkb3MgZW4gY29uZGljaW9uZXMgY29uY2VzaW9uYXJpYXMgKG5ldG8gZGUgbG9zIHJlZW1ib2xzb3MgZGVsIHByaW5jaXBhbCkgeSBkb25hY2lvbmVzIGRlIG9yZ2FuaXNtb3Mgb2ZpY2lhbGVzIGRlIGxvcyBtaWVtYnJvcyBkZWwgQ29taXTDqSBkZSBBc2lzdGVuY2lhIHBhcmEgZWwgRGVzYXJyb2xsbyAoQ0FEKSwgaW5zdGl0dWNpb25lcyBtdWx0aWxhdGVyYWxlcyB5IHBhw61zZXMgbm8gcGVydGVuZWNpZW50ZXMgYWwgQ0FELiBwYXJhIHByb21vdmVyIGVsIGRlc2Fycm9sbG8gZWNvbsOzbWljbyB5IGVsIGJpZW5lc3RhciBlbiBsb3MgcGHDrXNlcyB5IHRlcnJpdG9yaW9zIGVuIGxhIGxpc3RhIERBQyBkZSByZWNlcHRvcmVzIGRlIEFPRC4gSW5jbHV5ZSBwcsOpc3RhbW9zIGNvbiB1biBlbGVtZW50byBkZSBzdWJ2ZW5jacOzbiBkZSBhbCBtZW5vcyBlbCAyNSBwb3IgY2llbnRvIChjYWxjdWxhZG8gYSB1bmEgdGFzYSBkZSBkZXNjdWVudG8gZGVsIDEwIHBvciBjaWVudG8pLiBMYSBheXVkYSBvZmljaWFsIG5ldGEgc2UgcmVmaWVyZSBhIGxvcyBmbHVqb3MgZGUgYXl1ZGEgKG5ldG9zIGRlIHJlZW1ib2xzb3MpIGRlIGxvcyBkb25hbnRlcyBvZmljaWFsZXMgYSBsb3MgcGHDrXNlcyB5IHRlcnJpdG9yaW9zIGRlIGxhIHBhcnRlIElJIGRlIGxhIGxpc3RhIGRlIGJlbmVmaWNpYXJpb3MgZGVsIENBRDogcGHDrXNlcyBtw6FzIGF2YW56YWRvcyBkZSBFdXJvcGEgY2VudHJhbCB5IG9yaWVudGFsLCBsb3MgcGHDrXNlcyBkZSBsYSBhbnRpZ3VhIFVuacOzbiBTb3Zpw6l0aWNhIHkgY2llcnRvcyBwYcOtc2VzIGVuIGRlc2Fycm9sbG8gYXZhbnphZG9zLiBwYcOtc2VzIHkgdGVycml0b3Jpb3MuIExhIGF5dWRhIG9maWNpYWwgc2UgcHJvcG9yY2lvbmEgZW4gdMOpcm1pbm9zIHkgY29uZGljaW9uZXMgc2ltaWxhcmVzIGEgbG9zIGRlIGxhIEFPRC4gTGEgUGFydGUgSUkgZGUgbGEgTGlzdGEgZGVsIENBRCBzZSBlbGltaW7DsyBlbiAyMDA1LiBMYSByZWNvcGlsYWNpw7NuIGRlIGRhdG9zIHNvYnJlIGxhIGF5dWRhIG9maWNpYWwgeSBvdHJvcyBmbHVqb3MgZGUgcmVjdXJzb3MgYSBsb3MgcGHDrXNlcyBkZSBsYSBQYXJ0ZSBJSSBmaW5hbGl6w7MgY29uIGxvcyBkYXRvcyBkZSAyMDA0LiBMb3MgZGF0b3MgZXN0w6FuIGV4cHJlc2Fkb3MgZW4gZMOzbGFyZXMgZXN0YWRvdW5pZGVuc2VzIGFjdHVhbGVzLgoKICA+IOKAoiAqKlZhcmlhYmxlN19CcmVjaGEgZGUgcG9icmV6YSBhICQyLjE1IHBvciBkw61hIChQUEEgZGUgMjAxNykgKCUpOioqIExhIGJyZWNoYSBkZSBwb2JyZXphIGEgJCAyLDE1IHBvciBkw61hIChQUEEgZGUgMjAxNykgZXMgZWwgZMOpZmljaXQgbWVkaW8gZW4gaW5ncmVzb3MgbyBjb25zdW1vIGRlc2RlIGxhIGzDrW5lYSBkZSBwb2JyZXphIGRlICQgMiwxNSBwb3IgZMOtYSAoY29udGFuZG8gYSBsb3Mgbm8gcG9icmVzIGNvbW8gc2luIGTDqWZpY2l0KSwgZXhwcmVzYWRvIGNvbW8gdW4gcG9yY2VudGFqZSBkZSBsYSBsw61uZWEgZGUgcG9icmV6YS4gRXN0YSBtZWRpZGEgcmVmbGVqYSBsYSBwcm9mdW5kaWRhZCBkZSBsYSBwb2JyZXphIGFzw60gY29tbyBzdSBpbmNpZGVuY2lhLgoKIyMgIElORElDQURPUkVTIERFIERFU0FSUk9MTE8gSFVNQU5POiAKCiAgPiJBIGNvbnRpbnVhY2nDs24sIHNlIHByZXNlbnRhbiBlbCBzZWd1bmRvIGdydXBvIGRlIHZhcmlhYmxlcyBjb25zaWRlcmFkYXMgZW4gcmVmZXJlbmNpYSBhIGxhIGRpbWVuc2nDs24gaHVtYW5hLCBxdWUgc2UgY29uc3RpdHV5ZSBlbiBsb3Mgc3ViZGltZW5zaW9uZXM6IHNhbHVkLCBnYXN0byBww7pibGljbywgYWxpbWVudGFjacOzbiB5IGVkdWNhY2nDs24uIiwKCgogICA+IOKAoiAqKlZhcmlhYmxlOF9UYXNhIGRlIG1vcnRhbGlkYWQgbWF0ZXJuYSAoZXN0aW1hY2nDs24gbW9kZWxhZGEsIHBvciAxMDAuMDAwIG5hY2lkb3Mgdml2b3MpOioqIExhIHRhc2EgZGUgbW9ydGFsaWRhZCBtYXRlcm5hIGVzIGVsIG7Dum1lcm8gZGUgbXVqZXJlcyBxdWUgbXVlcmVuIHBvciBjYXVzYXMgcmVsYWNpb25hZGFzIGNvbiBlbCBlbWJhcmF6byBkdXJhbnRlIGVsIGVtYmFyYXpvIG8gZGVudHJvIGRlIGxvcyA0MiBkw61hcyBwb3N0ZXJpb3JlcyBhIGxhIHRlcm1pbmFjacOzbiBkZWwgZW1iYXJhem8gcG9yIGNhZGEgMTAwLjAwMCBuYWNpZG9zIHZpdm9zLiBMb3MgZGF0b3Mgc2UgZXN0aW1hbiBjb24gdW4gbW9kZWxvIGRlIHJlZ3Jlc2nDs24gdXRpbGl6YW5kbyBpbmZvcm1hY2nDs24gc29icmUgbGEgcHJvcG9yY2nDs24gZGUgbXVlcnRlcyBtYXRlcm5hcyBlbnRyZSBsYXMgbXVlcnRlcyBubyByZWxhY2lvbmFkYXMgY29uIGVsIFNJREEgZW4gbXVqZXJlcyBkZSAxNSBhIDQ5IGHDsW9zLCBsYSBmZWN1bmRpZGFkLCBsYXMgcGVyc29uYXMgcXVlIGF0aWVuZGVuIHBhcnRvcyB5IGVsIFBJQiBtZWRpZG8gdXRpbGl6YW5kbyBwYXJpZGFkZXMgZGUgcG9kZXIgYWRxdWlzaXRpdm8gPDxQUEE+Pi4KCiAgPiDigKIgKipWYXJpYWJsZTlfVGFzYSBkZSBtb3J0YWxpZGFkIGluZmFudGlsIChwb3IgMS4wMDAgbmFjaWRvcyB2aXZvcyk6KiogTGEgdGFzYSBkZSBtb3J0YWxpZGFkIGluZmFudGlsIGVzIGVsIG7Dum1lcm8gZGUgbmnDsW9zIHF1ZSBtdWVyZW4gYW50ZXMgZGUgY3VtcGxpciB1biBhw7FvIGRlIGVkYWQsIHBvciBjYWRhIDEuMDAwIG5hY2lkb3Mgdml2b3MgZW4gdW4gYcOxbyBkZXRlcm1pbmFkby4KCiAgPiDigKIgKipWYXJpYWJsZTEwX1BlcnNpc3RlbmNpYSBhbCDDumx0aW1vIGdyYWRvIGRlIHByaW1hcmlhLCBtdWplcmVzICglIGRlIGxhIGNvaG9ydGUpOioqIExhIHBlcnNpc3RlbmNpYSBhbCDDumx0aW1vIGdyYWRvIGRlIHByaW1hcmlhIGVzIGVsIHBvcmNlbnRhamUgZGUgbmnDsW9zIG1hdHJpY3VsYWRvcyBlbiBlbCBwcmltZXIgZ3JhZG8gZGUgcHJpbWFyaWEgcXVlIGZpbmFsbWVudGUgbGxlZ2FuIGFsIMO6bHRpbW8gZ3JhZG8gZGUgZWR1Y2FjacOzbiBwcmltYXJpYS4gTGEgZXN0aW1hY2nDs24gc2UgYmFzYSBlbiBlbCBtw6l0b2RvIGRlIGNvaG9ydGVzIHJlY29uc3RydWlkYXMuCgogID4g4oCiICoqVmFyaWFibGUxMV9QZXJzaXN0ZW5jaWEgYWwgw7psdGltbyBncmFkbyBkZSBwcmltYXJpYSwgdG90YWwgKCUgZGUgbGEgY29ob3J0ZSk6KiogTGEgcGVyc2lzdGVuY2lhIGFsIMO6bHRpbW8gZ3JhZG8gZGUgcHJpbWFyaWEgZXMgZWwgcG9yY2VudGFqZSBkZSBuacOxb3MgbWF0cmljdWxhZG9zIGVuIGVsIHByaW1lciBncmFkbyBkZSBwcmltYXJpYSBxdWUgZmluYWxtZW50ZSBsbGVnYW4gYWwgw7psdGltbyBncmFkbyBkZSBlZHVjYWNpw7NuIHByaW1hcmlhLiBMYSBlc3RpbWFjacOzbiBzZSBiYXNhIGVuIGVsIG3DqXRvZG8gZGUgY29ob3J0ZXMgcmVjb25zdHJ1aWRhcy4KCiAgPiDigKIgKipWYXJpYWJsZTEyX1Rhc2EgZGUgbW9ydGFsaWRhZCBwb3IgdHViZXJjdWxvc2lzIChwb3IgY2FkYSAxMDAuMDAwIHBlcnNvbmFzKToqKiBMYSB0YXNhIGRlIG1vcnRhbGlkYWQgcG9yIHR1YmVyY3Vsb3NpcyBlcyBlbCBuw7ptZXJvIGVzdGltYWRvIGRlIG11ZXJ0ZXMgcG9yIHR1YmVyY3Vsb3NpcyBlbnRyZSBwZXJzb25hcyBWSUggbmVnYXRpdmFzLCBleHByZXNhZGEgY29tbyBsYSB0YXNhIHBvciAxMDAuMDAwIGhhYml0YW50ZXMuIExhcyBlc3RpbWFjaW9uZXMgcGFyYSB0b2RvcyBsb3MgYcOxb3Mgc2UgcmVjYWxjdWxhbiBhIG1lZGlkYSBxdWUgc2UgZGlzcG9uZSBkZSBudWV2YSBpbmZvcm1hY2nDs24geSBzZSByZWZpbmFuIGxhcyB0w6ljbmljYXMsIHBvciBsbyBxdWUgcHVlZGVuIGRpZmVyaXIgZGUgbGFzIHB1YmxpY2FkYXMgYW50ZXJpb3JtZW50ZS4KCiAgPiDigKIgKipWYXJpYWJsZTEzX1BlcnNpc3RlbmNpYSBhbCDDumx0aW1vIGdyYWRvIGRlIHByaW1hcmlhLCB2YXJvbmVzICglIGRlIGxhIGNvaG9ydGUpOioqIExhIHBlcnNpc3RlbmNpYSBhbCDDumx0aW1vIGdyYWRvIGRlIHByaW1hcmlhIGVzIGVsIHBvcmNlbnRhamUgZGUgbmnDsW9zIG1hdHJpY3VsYWRvcyBlbiBlbCBwcmltZXIgZ3JhZG8gZGUgcHJpbWFyaWEgcXVlIGZpbmFsbWVudGUgbGxlZ2FuIGFsIMO6bHRpbW8gZ3JhZG8gZGUgZWR1Y2FjacOzbiBwcmltYXJpYS4gTGEgZXN0aW1hY2nDs24gc2UgYmFzYSBlbiBlbCBtw6l0b2RvIGRlIGNvaG9ydGVzIHJlY29uc3RydWlkYXMuCgogID4g4oCiICoqVmFyaWFibGUxNF9UYXNhIGRlIG1vcnRhbGlkYWQsIG1lbm9yZXMgZGUgNSBhw7FvcyAocG9yIDEuMDAwIG5hY2lkb3Mgdml2b3MpOioqIExhIHRhc2EgZGUgbW9ydGFsaWRhZCBkZSBtZW5vcmVzIGRlIGNpbmNvIGHDsW9zIGVzIGxhIHByb2JhYmlsaWRhZCBwb3IgMS4wMDAgZGUgcXVlIHVuIGJlYsOpIHJlY2nDqW4gbmFjaWRvIG11ZXJhIGFudGVzIGRlIGN1bXBsaXIgbG9zIGNpbmNvIGHDsW9zLCBzaSBlc3TDoSBzdWpldG8gYSBsYXMgdGFzYXMgZGUgbW9ydGFsaWRhZCBlc3BlY8OtZmljYXMgcG9yIGVkYWQgZGVsIGHDsW8gZXNwZWNpZmljYWRvLgoKICA+IOKAoiAqKlZhcmlhYmxlMTVfTWF0cmljdWxhY2nDs24gZXNjb2xhciwgcHJpbWFyaWEgKGJydXRhKSwgw61uZGljZSBkZSBwYXJpZGFkIGRlIGfDqW5lcm8gKElQRyk6KiogRWwgw61uZGljZSBkZSBwYXJpZGFkIGRlIGfDqW5lcm8gcGFyYSBsYSB0YXNhIGJydXRhIGRlIG1hdHLDrWN1bGEgZW4gbGEgZWR1Y2FjacOzbiBwcmltYXJpYSBlcyBsYSBwcm9wb3JjacOzbiBkZSBuacOxYXMgeSBuacOxb3MgbWF0cmljdWxhZG9zIGVuIGVsIG5pdmVsIHByaW1hcmlvIGVuIGVzY3VlbGFzIHDDumJsaWNhcyB5IHByaXZhZGFzLgoKICA+IOKAoiAqKlZhcmlhYmxlMTZfTWF0cmljdWxhY2nDs24gZXNjb2xhciwgdGVyY2lhcmlhIChicnV0YSksIMOtbmRpY2UgZGUgcGFyaWRhZCBkZSBnw6luZXJvIChJUEcpOioqIEVsIMOtbmRpY2UgZGUgcGFyaWRhZCBkZSBnw6luZXJvIHBhcmEgbGEgdGFzYSBicnV0YSBkZSBtYXRyaWN1bGFjacOzbiBlbiBlZHVjYWNpw7NuIHRlcmNpYXJpYSBlcyBsYSBwcm9wb3JjacOzbiBkZSBtdWplcmVzIHkgaG9tYnJlcyBtYXRyaWN1bGFkb3MgZW4gZWwgbml2ZWwgdGVyY2lhcmlvIGVuIGVzY3VlbGFzIHDDumJsaWNhcyB5IHByaXZhZGFzLgoKICA+IOKAoiAqKlZhcmlhYmxlMTdfTWF0csOtY3VsYSBlc2NvbGFyLCBwcmltYXJpYSB5IHNlY3VuZGFyaWEgKGJydXRhKSwgw61uZGljZSBkZSBwYXJpZGFkIGRlIGfDqW5lcm8gKElQRyk6KiogRWwgw61uZGljZSBkZSBwYXJpZGFkIGRlIGfDqW5lcm8gcGFyYSBsYSB0YXNhIGJydXRhIGRlIG1hdHLDrWN1bGEgZW4gbGEgZWR1Y2FjacOzbiBwcmltYXJpYSB5IHNlY3VuZGFyaWEgZXMgbGEgcHJvcG9yY2nDs24gZGUgbmnDsWFzIHkgbmnDsW9zIG1hdHJpY3VsYWRvcyBlbiBsb3Mgbml2ZWxlcyBwcmltYXJpbyB5IHNlY3VuZGFyaW8gZW4gZXNjdWVsYXMgcMO6YmxpY2FzIHkgcHJpdmFkYXMuCgogID4g4oCiICoqVmFyaWFibGUxOF9SZWxhY2nDs24gZW50cmUgZW1wbGVvIHkgcG9ibGFjacOzbiwgbWF5b3JlcyBkZSAxNSBhw7FvcywgdG90YWwgKCUpIChlc3RpbWFjacOzbiBtb2RlbGFkYSBkZSBsYSBPSVQpOioqIExhIHJlbGFjacOzbiBlbnRyZSBlbXBsZW8geSBwb2JsYWNpw7NuIGVzIGxhIHByb3BvcmNpw7NuIGRlIGxhIHBvYmxhY2nDs24gZGUgdW4gcGHDrXMgcXVlIGVzdMOhIGVtcGxlYWRhLiBFbCBlbXBsZW8gc2UgZGVmaW5lIGNvbW8gcGVyc29uYXMgZW4gZWRhZCBkZSB0cmFiYWphciBxdWUsIGR1cmFudGUgdW4gYnJldmUgcGVyw61vZG8gZGUgcmVmZXJlbmNpYSwgc2UgZGVkaWNhcm9uIGEgY3VhbHF1aWVyIGFjdGl2aWRhZCBwYXJhIHByb2R1Y2lyIGJpZW5lcyBvIHByZXN0YXIgc2VydmljaW9zIGEgY2FtYmlvIGRlIHVuYSByZW11bmVyYWNpw7NuIG8gdW5hIGdhbmFuY2lhLCB5YSBzZWEgZW4gZWwgdHJhYmFqbyBkdXJhbnRlIGVsIHBlcsOtb2RvIGRlIHJlZmVyZW5jaWEgKGVzIGRlY2lyLCBxdWUgdHJhYmFqYXJvbiBlbiB1biBwdWVzdG8gZHVyYW50ZSBhbCBtZW5vcyB1bmEgaG9yYSkgbyBubyBlbiBlbCB0cmFiYWpvIGRlYmlkbyBhIGxhIGF1c2VuY2lhIHRlbXBvcmFsIGRlIHVuIHRyYWJham8sIG8gYSBsb3MgYXJyZWdsb3MgZGUgdGllbXBvIGRlIHRyYWJham8uIExhcyBwZXJzb25hcyBtYXlvcmVzIGRlIDE1IGHDsW9zIGdlbmVyYWxtZW50ZSBzZSBjb25zaWRlcmFuIHBvYmxhY2nDs24gZW4gZWRhZCBkZSB0cmFiYWphci4KCiAgPiDigKIgKipWYXJpYWJsZTE5X0VzcGVyYW56YSBkZSB2aWRhIGFsIG5hY2VyLCB0b3RhbCAoYcOxb3MpOioqIExhIGVzcGVyYW56YSBkZSB2aWRhIGFsIG5hY2VyIGluZGljYSBlbCBuw7ptZXJvIGRlIGHDsW9zIHF1ZSB2aXZpcsOtYSB1biByZWNpw6luIG5hY2lkbyBzaSBsb3MgcGF0cm9uZXMgZGUgbW9ydGFsaWRhZCBwcmV2YWxlY2llbnRlcyBlbiBlbCBtb21lbnRvIGRlIHN1IG5hY2ltaWVudG8gc2UgbWFudHV2aWVyYW4gaWd1YWxlcyBhIGxvIGxhcmdvIGRlIHN1IHZpZGEuCgogID4g4oCiICoqVmFyaWFibGUyMF9Qb2JsYWNpw7NuLCB0b3RhbDoqKiBMYSBwb2JsYWNpw7NuIHRvdGFsIHNlIGJhc2EgZW4gbGEgZGVmaW5pY2nDs24gZGUgcG9ibGFjacOzbiBkZSBmYWN0bywgcXVlIGN1ZW50YSBhIHRvZG9zIGxvcyByZXNpZGVudGVzIGluZGVwZW5kaWVudGVtZW50ZSBkZSBzdSBlc3RhdHVzIGxlZ2FsIG8gY2l1ZGFkYW7DrWEuIExvcyB2YWxvcmVzIHF1ZSBzZSBtdWVzdHJhbiBzb24gZXN0aW1hY2lvbmVzIGRlIG1pdGFkIGRlIGHDsW8uCgogID4g4oCiICoqVmFyaWFibGUyMV9Qb2JsYWNpw7NuIHF1ZSB2aXZlIGVuIGJhcnJpb3MgbWFyZ2luYWxlcyAoJSBkZSBsYSBwb2JsYWNpw7NuIHVyYmFuYSk6KiogTGEgcG9ibGFjacOzbiBxdWUgdml2ZSBlbiBiYXJyaW9zIG1hcmdpbmFsZXMgZXMgbGEgcHJvcG9yY2nDs24gZGUgbGEgcG9ibGFjacOzbiB1cmJhbmEgcXVlIHZpdmUgZW4gaG9nYXJlcyBkZSBiYXJyaW9zIG1hcmdpbmFsZXMuIFVuIGhvZ2FyIGRlIHR1Z3VyaW9zIHNlIGRlZmluZSBjb21vIHVuIGdydXBvIGRlIHBlcnNvbmFzIHF1ZSB2aXZlbiBiYWpvIGVsIG1pc21vIHRlY2hvIHkgY2FyZWNlbiBkZSB1bmEgbyBtw6FzIGRlIGxhcyBzaWd1aWVudGVzIGNvbmRpY2lvbmVzOiBhY2Nlc28gYSBhZ3VhIG1lam9yYWRhLCBhY2Nlc28gYSBzYW5lYW1pZW50byBtZWpvcmFkbywgc3VwZXJmaWNpZSBzdWZpY2llbnRlIHBhcmEgdml2aXIsIGR1cmFiaWxpZGFkIGRlIGxhIHZpdmllbmRhIHkgc2VndXJpZGFkIGRlIHRlbmVuY2lhLCB0YWwgY29tbyBzZSBhZG9wdGEgZW4gbGEgT2JqZXRpdm8gZGUgRGVzYXJyb2xsbyBkZWwgTWlsZW5pbyBNZXRhIDcuRC4gRWwgc3VjZXNvciwgZWwgT2JqZXRpdm8gZGUgRGVzYXJyb2xsbyBTb3N0ZW5pYmxlIDExLjEuMSwgY29uc2lkZXJhIGxhIHZpdmllbmRhIGluYWRlY3VhZGEgKGFzZXF1aWJpbGlkYWQgZGUgbGEgdml2aWVuZGEpIHBhcmEgY29tcGxlbWVudGFyIGxhIGRlZmluaWNpw7NuIGFudGVyaW9yIGRlIGJhcnJpb3MgbWFyZ2luYWxlcy9hc2VudGFtaWVudG9zIGluZm9ybWFsZXMuCgojIyAgICAiSU5ESUNBRE9SRVMgQU1CSUVOVEFMRVM6IAoqKmVsIHRlcmNlciBncnVwbyBkZSB2YXJpYWJsZXMgc2UgY29uc3RpdHV5ZSBlbiBsYXMgc3ViZGltZW5zaW9uZXM6IHJlY3Vyc29zLCBlbmVyZ8OtYSBlbMOpY3RyaWNhIHkgY29udGFtaW5hY2nDs24uIioqCgogID4g4oCiICoqVmFyaWFibGUyMl9TdXBlcmZpY2llIGZvcmVzdGFsICglIGRlIGxhIHN1cGVyZmljaWUgdGVycmVzdHJlKToqKiBFbCDDoXJlYSBmb3Jlc3RhbCBlcyB0aWVycmEgYmFqbyByb2RhbGVzIG5hdHVyYWxlcyBvIHBsYW50YWRvcyBkZSDDoXJib2xlcyBkZSBhbCBtZW5vcyA1IG1ldHJvcyBpbiBzaXR1LCBzZWFuIHByb2R1Y3Rpdm9zIG8gbm8sIHkgZXhjbHV5ZSBsb3Mgcm9kYWxlcyBkZSDDoXJib2xlcyBlbiBzaXN0ZW1hcyBkZSBwcm9kdWNjacOzbiBhZ3LDrWNvbGEgKHBvciBlamVtcGxvLCBlbiBwbGFudGFjaW9uZXMgZGUgZnJ1dGFzIHkgc2lzdGVtYXMgYWdyb2ZvcmVzdGFsZXMpIHkgw6FyYm9sZXMgZW4gcGFycXVlcyB5IGphcmRpbmVzIHVyYmFub3MuCgogID4g4oCiICoqVmFyaWFibGUyM19FbWlzaW9uZXMgZGUgQ08yIChrZyBwb3IgUFBBICQgZGVsIFBJQik6KiogTGFzIGVtaXNpb25lcyBkZSBkacOzeGlkbyBkZSBjYXJib25vIHNvbiBsYXMgZGVyaXZhZGFzIGRlIGxhIHF1ZW1hIGRlIGNvbWJ1c3RpYmxlcyBmw7NzaWxlcyB5IGxhIGZhYnJpY2FjacOzbiBkZSBjZW1lbnRvLiBJbmNsdXllbiBlbCBkacOzeGlkbyBkZSBjYXJib25vIHByb2R1Y2lkbyBkdXJhbnRlIGVsIGNvbnN1bW8gZGUgY29tYnVzdGlibGVzIHPDs2xpZG9zLCBsw61xdWlkb3MgeSBnYXNlb3NvcyB5IGxhIHF1ZW1hIGRlIGdhcy4KCiAgPiDigKIgKipWYXJpYWJsZTI0X0VtaXNpb25lcyBkZSBDTzIgKHRvbmVsYWRhcyBtw6l0cmljYXMgcGVyIGPDoXBpdGEpOioqIExhcyBlbWlzaW9uZXMgZGUgZGnDs3hpZG8gZGUgY2FyYm9ubyBzb24gbGFzIGRlcml2YWRhcyBkZSBsYSBxdWVtYSBkZSBjb21idXN0aWJsZXMgZsOzc2lsZXMgeSBsYSBmYWJyaWNhY2nDs24gZGUgY2VtZW50by4gSW5jbHV5ZW4gZWwgZGnDs3hpZG8gZGUgY2FyYm9ubyBwcm9kdWNpZG8gZHVyYW50ZSBlbCBjb25zdW1vIGRlIGNvbWJ1c3RpYmxlcyBzw7NsaWRvcywgbMOtcXVpZG9zIHkgZ2FzZW9zb3MgeSBsYSBxdWVtYSBkZSBnYXMuCgogID4g4oCiICoqVmFyaWFibGUyNV9GdWVudGUgZGUgYWd1YSBtZWpvcmFkYSAoJSBkZSBsYSBwb2JsYWNpw7NuIGNvbiBhY2Nlc28pOioqIEVsIGFjY2VzbyBhIHVuYSBmdWVudGUgZGUgYWd1YSBtZWpvcmFkYSBzZSByZWZpZXJlIGFsIHBvcmNlbnRhamUgZGUgbGEgcG9ibGFjacOzbiBxdWUgdXRpbGl6YSB1bmEgZnVlbnRlIGRlIGFndWEgcG90YWJsZSBtZWpvcmFkYS4gTGEgZnVlbnRlIGRlIGFndWEgcG90YWJsZSBtZWpvcmFkYSBpbmNsdXllIGFndWEgZW50dWJhZGEgZW4gbG9zIHByZWRpb3MgKGNvbmV4acOzbiBkb21pY2lsaWFyaWEgZGUgYWd1YSBlbnR1YmFkYSB1YmljYWRhIGRlbnRybyBkZSBsYSB2aXZpZW5kYSwgbG90ZSBvIHBhdGlvIGRlbCB1c3VhcmlvKSwgeSBvdHJhcyBmdWVudGVzIG1lam9yYWRhcyBkZSBhZ3VhIHBvdGFibGUgKGdyaWZvcyBvIGZ1ZW50ZXMgcMO6YmxpY2FzLCBwb3pvcyBlbnR1YmFkb3MgbyBwZXJmb3JhZG9zLCBwb3pvcyBleGNhdmFkb3MgcHJvdGVnaWRvcywgbWFuYW50aWFsZXMgcHJvdGVnaWRvcywgeSByZWNvZ2lkYSBkZSBhZ3VhIGRlIGxsdXZpYSkuCgojIyAgICBJTkRJQ0FET1JFUyBERSBURUNOT0xPR0lBOgoqKmRpbWVuc2nDs24gc2UgY29tcG9uZSBkZSBsYXMgc3ViZGltZW5zaW9uZXMgZGUgYWNjZXNvIGEgbWVkaW9zIGRlIGNvbXVuaWFjacOzbiwgaW5ub3ZhY2lvbmVzLiIqKgoKICA+IOKAoiAqKlZhcmlhYmxlMjZfVXN1YXJpb3MgZGUgSW50ZXJuZXQgKHBvciBjYWRhIDEwMCBwZXJzb25hcyk6KiogTG9zIHVzdWFyaW9zIGRlIEludGVybmV0IHNvbiBwZXJzb25hcyBxdWUgaGFuIHV0aWxpemFkbyBJbnRlcm5ldCAoZGVzZGUgY3VhbHF1aWVyIGx1Z2FyKSBlbiBsb3Mgw7psdGltb3MgMyBtZXNlcy4gSW50ZXJuZXQgc2UgcHVlZGUgdXRpbGl6YXIgYSB0cmF2w6lzIGRlIHVuYSBjb21wdXRhZG9yYSwgdGVsw6lmb25vIG3Ds3ZpbCwgYXNpc3RlbnRlIGRpZ2l0YWwgcGVyc29uYWwsIG3DoXF1aW5hIGRlIGp1ZWdvcywgVFYgZGlnaXRhbCwgZXRjLgoKICA+IOKAoiAqKlZhcmlhYmxlMjdfU3VzY3JpcGNpb25lcyBkZSB0ZWxlZm9uw61hIGZpamEgKHBvciBjYWRhIDEwMCBwZXJzb25hcyk6KiogTGFzIHN1c2NyaXBjaW9uZXMgZGUgdGVsZWZvbsOtYSBmaWphIHNlIHJlZmllcmVuIGEgbGEgc3VtYSBkZWwgbsO6bWVybyBhY3Rpdm8gZGUgbMOtbmVhcyB0ZWxlZsOzbmljYXMgZmlqYXMgYW5hbMOzZ2ljYXMsIHN1c2NyaXBjaW9uZXMgZGUgdm96IHNvYnJlIElQIChWb0lQKSwgc3VzY3JpcGNpb25lcyBkZSBidWNsZSBsb2NhbCBpbmFsw6FtYnJpY28gZmlqbyAoV0xMKSwgZXF1aXZhbGVudGVzIGRlIGNhbmFsIGRlIHZveiBJU0ROIHkgdGVsw6lmb25vcyBww7pibGljb3MgcMO6YmxpY29zIGZpam9zLgogICAgICAKICAKIyMgQ2FsY3VsbyBkZSBsYXMgdmFyaWFibGVzIAogIAogID5Gb3JtYSBkZSBjw6FsY3VsbyBkZSBWYXJpYWJsZSAxOiBFbCBwcm9kdWN0byBpbnRlcm5vIGJydXRvIChQSUIpIGRlc2RlIGVsIGxhZG8gZGVsIGdhc3RvIHNlIGNvbXBvbmUgCiAgICAgIGRlbCBnYXN0byBkZSBjb25zdW1vIGZpbmFsIGRlIGxvcyBob2dhcmVzLCBlbCBnYXN0byBkZSBjb25zdW1vIGZpbmFsIGRlbCBnb2JpZXJubyBnZW5lcmFsLCBsYSAKICAgICAgZm9ybWFjacOzbiBicnV0YSBkZSBjYXBpdGFsIChpbnZlcnNpw7NuIHByaXZhZGEgeSBww7pibGljYSBlbiBhY3Rpdm9zIGZpam9zLCBjYW1iaW9zIGVuIGxvcyBpbnZlbnRhcmlvcwogICAgICB5IGFkcXVpc2ljaW9uZXMgbmV0YXMgZGUgdmFsb3JlcykgeSBleHBvcnRhY2lvbmVzIChleHBvcnRhY2lvbmVzIG1lbm9zIGltcG9ydGFjaW9uZXMpIGRlIGJpZW5lcyB5CiAgICAgIHNlcnZpY2lvcy4gRGljaG9zIGdhc3RvcyBzZSByZWdpc3RyYW4gYSBwcmVjaW9zIGRlIGNvbXByYWRvciBlIGluY2x1eWVuIGltcHVlc3RvcyBuZXRvcyBzb2JyZSBsb3MgCiAgICAgIHByb2R1Y3Rvcy4KCiAgPkZvcm1hIGRlIGPDoWxjdWxvIGRlIHZhcmlhYmxlIDI6IExhIHJlbGFjacOzbiBlbnRyZSBlbCBwcm9kdWN0byBpbnRlcm5vIGJydXRvIChQSUIpIHkgZWwgdXNvIGRlIAogICAgICBlbmVyZ8OtYSBpbmRpY2EgbGEgZWZpY2llbmNpYSBlbmVyZ8OpdGljYS4gUGFyYSBwcm9kdWNpciBlc3RpbWFjaW9uZXMgY29tcGFyYWJsZXMgeSBjb25zaXN0ZW50ZXMgZGVsCiAgICAgIFBJQiByZWFsIGVuIHRvZGFzIGxhcyBlY29ub23DrWFzIGVuIHJlbGFjacOzbiBjb24gbG9zIGluc3Vtb3MgZsOtc2ljb3MgZGVsIFBJQiwgZXMgZGVjaXIsIGxhcyB1bmlkYWRlcyAKICAgICAgZGUgdXNvIGRlIGVuZXJnw61hLCBlbCBQSUIgc2UgY29udmllcnRlIGEgZMOzbGFyZXMgaW50ZXJuYWNpb25hbGVzIGRlIDIwMTcgdXRpbGl6YW5kbyBsYXMgdGFzYXMgZGUgCiAgICAgIHBhcmlkYWQgZGVsIHBvZGVyIGFkcXVpc2l0aXZvIChQUEEpLiBMYXMgZGlmZXJlbmNpYXMgZW4gZXN0YSByZWxhY2nDs24gYSBsbyBsYXJnbyBkZWwgdGllbXBvIHkgZW50cmUgCiAgICAgIGVjb25vbcOtYXMgcmVmbGVqYW4gY2FtYmlvcyBlc3RydWN0dXJhbGVzIGVuIHVuYSBlY29ub23DrWEsIGNhbWJpb3MgZW4gbGEgZWZpY2llbmNpYSBlbmVyZ8OpdGljYSAKICAgICAgc2VjdG9yaWFsIHkgZGlmZXJlbmNpYXMgZW4gbGFzIG1lemNsYXMgZGUgY29tYnVzdGlibGVzLiAKICAgICAgCj5FbCB1c28gdG90YWwgZGUgZW5lcmfDrWEgc2UgcmVmaWVyZSBhbCB1c28gZGUgZW5lcmfDrWEgcHJpbWFyaWEgYW50ZXMgZGUgbGEgdHJhbnNmb3JtYWNpw7NuIGEgb3Ryb3MgCiAgICAgIGNvbWJ1c3RpYmxlcyBkZSB1c28gZmluYWwgKGNvbW8gbGEgZWxlY3RyaWNpZGFkIHkgbG9zIHByb2R1Y3RvcyByZWZpbmFkb3MgZGVsIHBldHLDs2xlbykuIEluY2x1eWUgCiAgICAgIGVuZXJnw61hIHByb2NlZGVudGUgZGUgY29tYnVzdGlibGVzIHJlbm92YWJsZXMgeSByZXNpZHVvcyAtIGJpb21hc2Egc8OzbGlkYSB5IHByb2R1Y3RvcyBhbmltYWxlcywgZ2FzIAogICAgICB5IGzDrXF1aWRvIHByb2NlZGVudGUgZGUgYmlvbWFzYSwgeSByZXNpZHVvcyBpbmR1c3RyaWFsZXMgeSBtdW5pY2lwYWxlcy4gTGEgYmlvbWFzYSBlcyBjdWFscXVpZXIgCiAgICAgIG1hdGVyaWEgdmVnZXRhbCB1dGlsaXphZGEgZGlyZWN0YW1lbnRlIGNvbW8gY29tYnVzdGlibGUgbyBjb252ZXJ0aWRhIGVuIGNvbWJ1c3RpYmxlLCBjYWxvciBvIAogICAgICBlbGVjdHJpY2lkYWQuIExvcyBkYXRvcyBkZSBlbmVyZ8OtYSBzb24gY29tcGlsYWRvcyBwb3IgbGEgQWdlbmNpYSBJbnRlcm5hY2lvbmFsIGRlIEVuZXJnw61hIChBSUUpLiBMb3MKICAgICAgZGF0b3MgZGUgbGEgQUlFIHBhcmEgbGFzIGVjb25vbcOtYXMgcXVlIG5vIHNvbiBtaWVtYnJvcyBkZSBsYSBPcmdhbml6YWNpw7NuIHBhcmEgbGEgQ29vcGVyYWNpw7NuIHkgZWwgCiAgICAgIERlc2Fycm9sbG8gRWNvbsOzbWljb3MgKE9DREUpIHNlIGJhc2FuIGVuIGRhdG9zIG5hY2lvbmFsZXMgZGUgZW5lcmfDrWEgYWp1c3RhZG9zIHBhcmEgY3VtcGxpciBjb24gbG9zIAogICAgICBjdWVzdGlvbmFyaW9zIGFudWFsZXMgY29tcGxldGFkb3MgcG9yIGxvcyBnb2JpZXJub3MgbWllbWJyb3MgZGUgbGEgT0NERS4gTG9zIGRhdG9zIGRlbCBQSUIgcHJvdmllbmVuCiAgICAgIGRlIGxvcyBhcmNoaXZvcyBkZSBjdWVudGFzIG5hY2lvbmFsZXMgZGVsIEJhbmNvIE11bmRpYWwuCiAgICAgIAo+Rm9ybWEgZGUgY8OhbGN1bG8gZGUgdmFyaWFibGUgMzogRWwgUElCIHBvciBwZXJzb25hIGVtcGxlYWRhIHJlcHJlc2VudGEgbGEgcHJvZHVjdGl2aWRhZCBsYWJvcmFsOiAgICAgICAgIHByb2R1Y2Npw7NuIHBvciB1bmlkYWQgZGUgaW5zdW1vIGxhYm9yYWwuIFBhcmEgY29tcGFyYXIgbG9zIG5pdmVsZXMgZGUgcHJvZHVjdGl2aWRhZCBsYWJvcmFsIGVudHJlIHBhw61zZXMsIGVsIFBJQiBzZSBjb252aWVydGUgYSBkw7NsYXJlcyBpbnRlcm5hY2lvbmFsZXMgdXRpbGl6YW5kbyB0YXNhcyBkZSBwYXJpZGFkIGRlIHBvZGVyIGFkcXVpc2l0aXZvIHF1ZSB0aWVuZW4gZW4gY3VlbnRhIGxhcyBkaWZlcmVuY2lhcyBlbiBsb3MgcHJlY2lvcyByZWxhdGl2b3MgZW50cmUgcGHDrXNlcy4KICAgICAgCj5MYXMgZXN0aW1hY2lvbmVzIHNlIGJhc2FuIGVuIGRhdG9zIGRlIGVtcGxlbywgcG9ibGFjacOzbiwgUElCIHkgUFBBIG9idGVuaWRvcyBkZSBsYSBPcmdhbml6YWNpw7NuIEludGVybmFjaW9uYWwgZGVsIFRyYWJham8sIGxhIERpdmlzacOzbiBkZSBQb2JsYWNpw7NuIGRlIGxhcyBOYWNpb25lcyBVbmlkYXMsIEV1cm9zdGF0LCBsYSBPQ0RFIHkgZWwgQmFuY28gTXVuZGlhbC4gTGFzIHRhc2FzIGRlIGVtcGxlbyBzb24gcGFydGUgZGUgbGEgYmFzZSBkZSBkYXRvcyBkZSBlc3RpbWFjaW9uZXMgbW9kZWxhZGFzIGRlIGxhIE9JVCBxdWUgaW5jbHV5ZSBvYnNlcnZhY2lvbmVzIGluZm9ybWFkYXMgYSBuaXZlbCBuYWNpb25hbCB5IGRhdG9zIGltcHV0YWRvcyBwYXJhIHBhw61zZXMgY29uIGRhdG9zIGZhbHRhbnRlcywgcHJpbmNpcGFsbWVudGUgcGFyYSBjYXB0dXJhciB0ZW5kZW5jaWFzIHJlZ2lvbmFsZXMgeSBnbG9iYWxlcyBjb24gdW5hIGNvYmVydHVyYSBkZSBwYcOtcyBjb25zaXN0ZW50ZS4gTG9zIG1pY3JvZGF0b3MgaW5mb3JtYWRvcyBwb3IgbG9zIHBhw61zZXMgc2UgYmFzYW4gcHJpbmNpcGFsbWVudGUgZW4gZW5jdWVzdGFzIGRlIGZ1ZXJ6YSBsYWJvcmFsIHJlcHJlc2VudGF0aXZhcyBhIG5pdmVsIG5hY2lvbmFsLCBjb24gb3RyYXMgZnVlbnRlcyAocG9yIGVqZW1wbG8sIGVuY3Vlc3RhcyBkZSBob2dhcmVzIHkgY2Vuc29zIGRlIHBvYmxhY2nDs24pIHF1ZSBjb25zaWRlcmFuIGxhcyBkaWZlcmVuY2lhcyBlbiBsYSBmdWVudGUgZGUgZGF0b3MsIGVsIGFsY2FuY2UgZGUgbGEgY29iZXJ0dXJhLCBsYSBtZXRvZG9sb2fDrWEgeSBvdHJvcyBmYWN0b3JlcyBlc3BlY8OtZmljb3MgZGVsIHBhw61zLiBFbCBhbsOhbGlzaXMgZGUgcGHDrXMgcmVxdWllcmUgcHJlY2F1Y2nDs24gY3VhbmRvIHNlIGRpc3BvbmUgZGUgZGF0b3MgbGltaXRhZG9zIGluZm9ybWFkb3MgYSBuaXZlbCBuYWNpb25hbC4gVGFtYmnDqW4gc2UgYXBsaWNhbiB1bmEgc2VyaWUgZGUgbW9kZWxvcyBwYXJhIGltcHV0YXIgbGFzIG9ic2VydmFjaW9uZXMgZmFsdGFudGVzIHkgaGFjZXIgcHJveWVjY2lvbmVzLiBTaW4gZW1iYXJnbywgbGFzIG9ic2VydmFjaW9uZXMgaW1wdXRhZGFzIG5vIHNlIGJhc2FuIGVuIGRhdG9zIG5hY2lvbmFsZXMsIGVzdMOhbiBzdWpldGFzIGEgdW5hIGdyYW4gaW5jZXJ0aWR1bWJyZSB5IG5vIGRlYmVuIHV0aWxpemFyc2UgcGFyYSBjb21wYXJhY2lvbmVzIG8gY2xhc2lmaWNhY2lvbmVzIGRlIHBhw61zZXMuCiAgICAgIAo+Rm9ybWEgZGUgY8OhbGN1bG8gZGUgbGEgdmFyaWFibGUgNDogTm8gcG9zZWUgdW5hIG1ldG9sb2fDrWEgZXN0YWJsZWNpZGEgcGFyYSBzdSBjYWxjdWxvLgogICAgICAKPkZvcm1hIGRlIGPDoWxjdWxvIGRlIGxhIHZhcmlhYmxlIDU6IExvcyBkYXRvcyBzb2JyZSBsYSBkZXVkYSBleHRlcm5hIHNlIHJlY29waWxhbiBhIHRyYXbDqXMgZGVsIFNpc3RlbWEgZGUgSW5mb3JtYWNpw7NuIGRlIERldWRvcmVzIChEUlMpIGRlbCBCYW5jbyBNdW5kaWFsLiBMb3MgZGF0b3MgZGUgbGEgZGV1ZGEgYSBsYXJnbyBwbGF6byBzZSBjb21waWxhbiB1dGlsaXphbmRvIGVsIGluZm9ybWUgZGUgcGHDrXNlcyBzb2JyZSBlbmRldWRhbWllbnRvIHDDumJsaWNvIHkgY29uIGdhcmFudMOtYSBww7pibGljYSBzb2JyZSB1bmEgYmFzZSBkZSBwcsOpc3RhbW8gcG9yIHByw6lzdGFtbyB5IHNvYnJlIGVuZGV1ZGFtaWVudG8gcHJpdmFkbyBubyBnYXJhbnRpemFkbyBzb2JyZSB1bmEgYmFzZSBhZ3JlZ2FkYS4gRXN0b3MgZGF0b3Mgc2UgY29tcGxlbWVudGFuIGNvbiBpbmZvcm1hY2nDs24gZGUgbG9zIHByaW5jaXBhbGVzIGJhbmNvcyBtdWx0aWxhdGVyYWxlcyB5IG9yZ2FuaXNtb3Mgb2ZpY2lhbGVzIGRlIGNyw6lkaXRvIGRlIGxvcyBwcmluY2lwYWxlcyBwYcOtc2VzIGFjcmVlZG9yZXMuIExvcyBkYXRvcyBkZSBsYSBkZXVkYSBhIGNvcnRvIHBsYXpvIHNlIHJlY29waWxhbiBkZSBsYSBiYXNlIGRlIGRhdG9zIFF1YXJ0ZXJseSBFeHRlcm5hbCBEZWJ0IFN0YXRpc3RpY3MgKFFFRFMpLCBkZXNhcnJvbGxhZGEgY29uanVudGFtZW50ZSBwb3IgZWwgQmFuY28gTXVuZGlhbCB5IGVsIEZNSSB5IGRlIGxvcyBhY3JlZWRvcmVzIGEgdHJhdsOpcyBkZSBsb3Mgc2lzdGVtYXMgZGUgaW5mb3JtYWNpw7NuIGRlbCBCYW5jbyBkZSBQYWdvcyBJbnRlcm5hY2lvbmFsZXMuIExvcyBkYXRvcyBkZSBsYSBkZXVkYSBzZSBpbmZvcm1hbiBlbiBsYSBtb25lZGEgZGUgcGFnbyB5IHNlIGNvbXBpbGFuIHkgcHVibGljYW4gZW4gZMOzbGFyZXMgZXN0YWRvdW5pZGVuc2VzLiBMb3MgdGlwb3MgZGUgY2FtYmlvIGRlIGZpbiBkZSBwZXLDrW9kbyBzZSB1dGlsaXphbiBwYXJhIGxhIGNvbXBpbGFjacOzbiBkZSBsYXMgY2lmcmFzIGRlIGV4aXN0ZW5jaWFzIChjYW50aWRhZCBkZSBkZXVkYSBwZW5kaWVudGUpLCB5IGVsIHNlcnZpY2lvIGRlIGxhIGRldWRhIHByb3llY3RhZG8geSBsb3MgdGlwb3MgZGUgY2FtYmlvIHByb21lZGlvIGFudWFsZXMgc2UgdXRpbGl6YW4gcGFyYSBsb3MgZmx1am9zLiBMb3MgdGlwb3MgZGUgY2FtYmlvIHNlIHRvbWFuIGRlIGxhcyBFc3RhZMOtc3RpY2FzIGZpbmFuY2llcmFzIGludGVybmFjaW9uYWxlcyBkZWwgRk1JLiBMYSBkZXVkYSByZWVtYm9sc2FibGUgZW4gbcO6bHRpcGxlcyBtb25lZGFzLCBiaWVuZXMgbyBzZXJ2aWNpb3MgeSBsYSBkZXVkYSBjb24gdW5hIHByb3Zpc2nDs24gcGFyYSBlbCBtYW50ZW5pbWllbnRvIGRlbCB2YWxvciBkZSBsYSBtb25lZGEgZGUgcmVlbWJvbHNvIHNlIG11ZXN0cmFuIGEgc3UgdmFsb3IgZW4gbGlicm9zLgogICAgICAKPkZvcm1hIGRlIGPDoWxjdWxvIGRlIGxhIHZhcmlhYmxlIDY6IE5vIHBvc2VlIHVuYSBtZXRvbG9nw61hIGVzdGFibGVjaWRhIHBhcmEgc3UgY2FsY3Vsby4KICAgICAgCj5Gb3JtYSBkZSBjw6FsY3VsbyBkZSBsYSB2YXJpYWJsZSA3OiBMYXMgY29tcGFyYWNpb25lcyBpbnRlcm5hY2lvbmFsZXMgZGUgZXN0aW1hY2lvbmVzIGRlIHBvYnJlemEgaW1wbGljYW4gcHJvYmxlbWFzIHRhbnRvIGNvbmNlcHR1YWxlcyBjb21vIHByw6FjdGljb3MuIExvcyBwYcOtc2VzIHRpZW5lbiBkaWZlcmVudGVzIGRlZmluaWNpb25lcyBkZSBwb2JyZXphLCB5IGxhcyBjb21wYXJhY2lvbmVzIGNvbnNpc3RlbnRlcyBlbnRyZSBwYcOtc2VzIHB1ZWRlbiBzZXIgZGlmw61jaWxlcy4gTGFzIGzDrW5lYXMgZGUgcG9icmV6YSBsb2NhbGVzIHRpZW5kZW4gYSB0ZW5lciB1biBtYXlvciBwb2RlciBhZHF1aXNpdGl2byBlbiBsb3MgcGHDrXNlcyByaWNvcywgZG9uZGUgc2UgdXRpbGl6YW4gZXN0w6FuZGFyZXMgbcOhcyBnZW5lcm9zb3MsIHF1ZSBlbiBwYcOtc2VzIHBvYnJlcy4KICAgICAgCj5EZXNkZSBlbCBJbmZvcm1lIHNvYnJlIGVsIGRlc2Fycm9sbG8gbXVuZGlhbCBkZSAxOTkwLCBlbCBCYW5jbyBNdW5kaWFsIHNlIGhhIHByb3B1ZXN0byBhcGxpY2FyIHVuIGVzdMOhbmRhciBjb23Dum4gcGFyYSBtZWRpciBsYSBwb2JyZXphIGV4dHJlbWEsIGJhc2FkbyBlbiBsbyBxdWUgc2lnbmlmaWNhIGxhIHBvYnJlemEgZW4gbG9zIHBhw61zZXMgbcOhcyBwb2JyZXMgZGVsIG11bmRvLiBFbCBiaWVuZXN0YXIgZGUgbGFzIHBlcnNvbmFzIHF1ZSB2aXZlbiBlbiBkaWZlcmVudGVzIHBhw61zZXMgc2UgcHVlZGUgbWVkaXIgZW4gdW5hIGVzY2FsYSBjb23Dum4gYWp1c3RhbmRvIGxhcyBkaWZlcmVuY2lhcyBlbiBlbCBwb2RlciBhZHF1aXNpdGl2byBkZSBsYXMgbW9uZWRhcy4gCiAgICAgCj5FbCBlc3TDoW5kYXIgZGUgdXNvIGNvbcO6biBkZSAkMSBwb3IgZMOtYSwgbWVkaWRvIGVuIHByZWNpb3MgaW50ZXJuYWNpb25hbGVzIGRlIDE5ODUgeSBhanVzdGFkbyBhIGxhIG1vbmVkYSBsb2NhbCB1dGlsaXphbmRvIHBhcmlkYWRlcyBkZSBwb2RlciBhZHF1aXNpdGl2byAoUFBBKSwgZnVlIGVsZWdpZG8gcGFyYSBlbCBJbmZvcm1lIHNvYnJlIGVsIERlc2Fycm9sbG8gTXVuZGlhbCBkZSAxOTkwIHBvcnF1ZSBlcmEgdMOtcGljbyBkZSBsYXMgbMOtbmVhcyBkZSBwb2JyZXphIGVuIGxvcyBwYcOtc2VzIGRlIGJham9zIGluZ3Jlc29zIGVuIGVzZSBtb21lbnRvLiBBIG1lZGlkYSBxdWUgZXZvbHVjaW9uYW4gbGFzIGRpZmVyZW5jaWFzIGVuIGVsIGNvc3RvIGRlIHZpZGEgZW4gdG9kbyBlbCBtdW5kbywgbGEgbMOtbmVhIGRlIHBvYnJlemEgaW50ZXJuYWNpb25hbCBkZWJlIGFjdHVhbGl6YXJzZSBwZXJpw7NkaWNhbWVudGUgdXRpbGl6YW5kbyBudWV2b3MgZGF0b3MgZGUgcHJlY2lvcyBQUEEgcGFyYSByZWZsZWphciBlc3RvcyBjYW1iaW9zLiBFbCDDumx0aW1vIGNhbWJpbyBmdWUgZW4gc2VwdGllbWJyZSBkZSAyMDIyLCBjdWFuZG8gYWRvcHRhbW9zICQyLDE1IGNvbW8gbGEgbMOtbmVhIGRlIHBvYnJlemEgaW50ZXJuYWNpb25hbCB1dGlsaXphbmRvIGxhIFBQQSBkZSAyMDE3LiAKICAgICAgTGFzIG1lZGlkYXMgZGUgcG9icmV6YSBiYXNhZGFzIGVuIGzDrW5lYXMgZGUgcG9icmV6YSBpbnRlcm5hY2lvbmFsZXMgaW50ZW50YW4gbWFudGVuZXIgY29uc3RhbnRlIGVsIHZhbG9yIHJlYWwgZGUgbGEgbMOtbmVhIGRlIHBvYnJlemEgZW50cmUgcGHDrXNlcywgY29tbyBzZSBoYWNlIGN1YW5kbyBzZSBoYWNlbiBjb21wYXJhY2lvbmVzIGEgbG8gbGFyZ28gZGVsIHRpZW1wby4gTGEgbMOtbmVhIGRlIHBvYnJlemEgZGUgJDMsNjUgc2UgZGVyaXZhIGRlIGxhcyBsw61uZWFzIGRlIHBvYnJlemEgbmFjaW9uYWxlcyB0w61waWNhcyBlbiBwYcOtc2VzIGNsYXNpZmljYWRvcyBjb21vIGRlIGluZ3Jlc29zIG1lZGlvcyBiYWpvcy4gTGEgbMOtbmVhIGRlIHBvYnJlemEgZGUgJDYuODUgc2UgZGVyaXZhIGRlIGxhcyBsw61uZWFzIGRlIHBvYnJlemEgbmFjaW9uYWxlcyB0w61waWNhcyBlbiBwYcOtc2VzIGNsYXNpZmljYWRvcyBjb21vIGRlIGluZ3Jlc29zIG1lZGlvcyBhbHRvcy4KICAgICAgCj5MYXMgcHJpbWVyYXMgZWRpY2lvbmVzIGRlIGxvcyBJbmRpY2Fkb3JlcyBkZSBkZXNhcnJvbGxvIG11bmRpYWwgdXRpbGl6YXJvbiBsYXMgUFBBIGRlIFBlbm4gV29ybGQgVGFibGVzIHBhcmEgY29udmVydGlyIGxvcyB2YWxvcmVzIGVuIG1vbmVkYSBsb2NhbCBhbCBwb2RlciBhZHF1aXNpdGl2byBlcXVpdmFsZW50ZSBtZWRpZG8gZW4gZMOzbGFyZXMgZXN0YWRvdW5pZGVuc2VzLiBMYXMgZWRpY2lvbmVzIHBvc3RlcmlvcmVzIHV0aWxpemFyb24gZXN0aW1hY2lvbmVzIGRlIFBQQSBkZSBjb25zdW1vIGRlIDE5OTMsIDIwMDUgeSAyMDE3IHByb2R1Y2lkYXMgcG9yIGVsIEJhbmNvIE11bmRpYWwuIExhIGzDrW5lYSBkZSBwb2JyZXphIGV4dHJlbWEgYWN0dWFsIGVzdMOhIGZpamFkYSBlbiAkMiwxNSBwb3IgZMOtYSBlbiB0w6lybWlub3MgZGUgUFBBIGRlIDIwMTcsIGxvIHF1ZSByZXByZXNlbnRhIGxhIG1lZGlhIGRlIGxhcyBsw61uZWFzIGRlIHBvYnJlemEgZW5jb250cmFkYXMgZW4gMTUgZGUgbG9zIHBhw61zZXMgbcOhcyBwb2JyZXMgY2xhc2lmaWNhZG9zIHBvciBjb25zdW1vIHBlciBjw6FwaXRhLiBMYSBudWV2YSBsw61uZWEgZGUgcG9icmV6YSBtYW50aWVuZSBlbCBtaXNtbyBlc3TDoW5kYXIgcGFyYSBsYSBwb2JyZXphIGV4dHJlbWEsIGxhIGzDrW5lYSBkZSBwb2JyZXphIHTDrXBpY2EgZGUgbG9zIHBhw61zZXMgbcOhcyBwb2JyZXMgZGVsIG11bmRvLCBwZXJvIGxhIGFjdHVhbGl6YSB1dGlsaXphbmRvIGxhIGluZm9ybWFjacOzbiBtw6FzIHJlY2llbnRlIHNvYnJlIGVsIGNvc3RvIGRlIHZpZGEgZW4gbG9zIHBhw61zZXMgZW4gZGVzYXJyb2xsby4gQ29tbyByZXN1bHRhZG8gZGUgbGFzIHJldmlzaW9uZXMgZGUgbG9zIHRpcG9zIGRlIGNhbWJpbyBQUEEsIGxhcyB0YXNhcyBkZSBwb2JyZXphIGRlIHBhw61zZXMgaW5kaXZpZHVhbGVzIG5vIHB1ZWRlbiBjb21wYXJhcnNlIGNvbiBsYXMgdGFzYXMgZGUgcG9icmV6YSBpbmZvcm1hZGFzIGVuIGVkaWNpb25lcyBhbnRlcmlvcmVzLgoKICAgICAgPkxhcyBlc3RhZMOtc3RpY2FzIHJlcG9ydGFkYXMgYXF1w60gc2UgYmFzYW4gZW4gZGF0b3MgZGUgY29uc3VtbyBvLCBjdWFuZG8gbm8gZXN0w6FuIGRpc3BvbmlibGVzLCBlbiBlbmN1ZXN0YXMgZGUgaW5ncmVzb3MuIgogICAgCj5Gb3JtYSBkZSBjw6FsY3VsbyBkZSBsYSB2YXJpYWJsZSA4OiBMYSBzYWx1ZCByZXByb2R1Y3RpdmEgZXMgdW4gZXN0YWRvIGRlIGJpZW5lc3RhciBmw61zaWNvIHkgbWVudGFsIGVuIHJlbGFjacOzbiBjb24gZWwgc2lzdGVtYSByZXByb2R1Y3Rpdm8geSBzdXMgZnVuY2lvbmVzIHkgcHJvY2Vzb3MuIExvcyBtZWRpb3MgcGFyYSBsb2dyYXIgbGEgc2FsdWQgcmVwcm9kdWN0aXZhIGluY2x1eWVuIGVkdWNhY2nDs24geSBzZXJ2aWNpb3MgZHVyYW50ZSBlbCBlbWJhcmF6byB5IGVsIHBhcnRvLCBhbnRpY29uY2VwY2nDs24gc2VndXJhIHkgZWZpY2F6LCB5IHByZXZlbmNpw7NuIHkgdHJhdGFtaWVudG8gZGUgbGEgc2V4dWFsaWRhZC4gTGFzIGNvbXBsaWNhY2lvbmVzIGRlbCBlbWJhcmF6byB5IGVsIHBhcnRvIHNvbiBsYSBwcmluY2lwYWwgY2F1c2EgZGUgbXVlcnRlIHkgZGlzY2FwYWNpZGFkIGVudHJlIGxhcyBtdWplcmVzIGVuIGVkYWQgcmVwcm9kdWN0aXZhIGVuIGxvcyBwYcOtc2VzIGVuIGRlc2Fycm9sbG8uCiAgICAKPkxhIG1vcnRhbGlkYWQgbWF0ZXJuYSBlcyBnZW5lcmFsbWVudGUgZGUgY29uZmlhYmlsaWRhZCBkZXNjb25vY2lkYSwgYWwgaWd1YWwgcXVlIG11Y2hvcyBvdHJvcyBpbmRpY2Fkb3JlcyBkZSBtb3J0YWxpZGFkIHBvciBjYXVzYXMgZXNwZWPDrWZpY2FzLiBMYXMgZW5jdWVzdGFzIGRlIGhvZ2FyZXMsIGNvbW8gbGFzIEVuY3Vlc3RhcyBkZW1vZ3LDoWZpY2FzIHkgZGUgc2FsdWQsIGludGVudGFuIG1lZGlyIGxhIG1vcnRhbGlkYWQgbWF0ZXJuYSBwcmVndW50YW5kbyBhIGxhcyBlbmN1ZXN0YWRhcyBzb2JyZSBsYSBzdXBlcnZpdmVuY2lhIGRlIGxhcyBoZXJtYW5hcy4gTGEgcHJpbmNpcGFsIGRlc3ZlbnRhamEgZGUgZXN0ZSBtw6l0b2RvIGVzIHF1ZSBsYXMgZXN0aW1hY2lvbmVzIGRlIG1vcnRhbGlkYWQgbWF0ZXJuYSBxdWUgcHJvZHVjZSBwZXJ0ZW5lY2VuIGEgY3VhbHF1aWVyIG1vbWVudG8gZGUgbG9zIMO6bHRpbW9zIGHDsW9zIGFudGVzIGRlIGxhIGVuY3Vlc3RhLCBsbyBxdWUgbGFzIGhhY2UgaW5hZGVjdWFkYXMgcGFyYSBtb25pdG9yZWFyIGNhbWJpb3MgcmVjaWVudGVzIHUgb2JzZXJ2YXIgZWwgaW1wYWN0byBkZSBsYXMgaW50ZXJ2ZW5jaW9uZXMuIEFkZW3DoXMsIGxhIG1lZGljacOzbiBkZSBsYSBtb3J0YWxpZGFkIG1hdGVybmEgZXN0w6Egc3VqZXRhIGEgbXVjaG9zIHRpcG9zIGRlIGVycm9yZXMuIEluY2x1c28gZW4gcGHDrXNlcyBkZSBhbHRvcyBpbmdyZXNvcyBjb24gc2lzdGVtYXMgZGUgcmVnaXN0cm8gY2l2aWwgY29uZmlhYmxlcywgc2UgaGEgZGVzY3ViaWVydG8gcXVlIGxhIGNsYXNpZmljYWNpw7NuIGVycsOzbmVhIGRlIGxhcyBtdWVydGVzIG1hdGVybmFzIGNvbmR1Y2UgYSB1bmEgc3ViZXN0aW1hY2nDs24gZ3JhdmUuCgo+TGFzIGVzdGltYWNpb25lcyBzZSBiYXNhbiBlbiB1biBlamVyY2ljaW8gcmVhbGl6YWRvIHBvciBlbCBHcnVwbyBJbnRlcmluc3RpdHVjaW9uYWwgZGUgRXN0aW1hY2nDs24gZGUgbGEgTW9ydGFsaWRhZCBNYXRlcm5hIChNTUVJRyksIHF1ZSBlc3TDoSBpbnRlZ3JhZG8gcG9yIGxhIE9yZ2FuaXphY2nDs24gTXVuZGlhbCBkZSBsYSBTYWx1ZCAoT01TKSwgZWwgRm9uZG8gZGUgbGFzIE5hY2lvbmVzIFVuaWRhcyBwYXJhIGxhIEluZmFuY2lhIChVTklDRUYpLCBlbCBCYW5jbyBNdW5kaWFsIHkgZWwgRm9uZG8gZGUgUG9ibGFjacOzbiBkZSBsYXMgTmFjaW9uZXMgVW5pZGFzIChVTkZQQSksIHkgaW5jbHVpciBkYXRvcyBkZSBzZXJpZXMgdGVtcG9yYWxlcyBhIG5pdmVsIGRlIHBhw61zLiBQYXJhIGxvcyBwYcOtc2VzIHNpbiBkYXRvcyBkZSByZWdpc3RybyBjb21wbGV0b3MgcGVybyBjb24gb3Ryb3MgdGlwb3MgZGUgZGF0b3MgeSBwYXJhIGxvcyBwYcOtc2VzIHNpbiBkYXRvcywgbGEgbW9ydGFsaWRhZCBtYXRlcm5hIHNlIGVzdGltYSBjb24gdW4gbW9kZWxvIGRlIHJlZ3Jlc2nDs24gdXRpbGl6YW5kbyBsb3MgZGF0b3MgbmFjaW9uYWxlcyBkZSBtb3J0YWxpZGFkIG1hdGVybmEgeSBsYSBpbmZvcm1hY2nDs24gc29jaW9lY29uw7NtaWNhIGRpc3BvbmlibGVzLgoKPkZvcm1hIGRlIGPDoWxjdWxvIGRlIGxhIHZhcmlhYmxlIDk6IExhcyBwcmluY2lwYWxlcyBmdWVudGVzIGRlIGRhdG9zIGRlIG1vcnRhbGlkYWQgc29uIGxvcyBzaXN0ZW1hcyBkZSByZWdpc3RybyBjaXZpbCB5IGxhcyBlc3RpbWFjaW9uZXMgZGlyZWN0YXMgbyBpbmRpcmVjdGFzIGJhc2FkYXMgZW4gZW5jdWVzdGFzIG8gY2Vuc29zIHBvciBtdWVzdHJlby4gZGF0b3MgZGUgbW9ydGFsaWRhZCBlc3BlY8OtZmljb3MgcG9yIGVkYWQuCgo+TGFzIGVzdGltYWNpb25lcyBkZSBtb3J0YWxpZGFkIG5lb25hdGFsLCBpbmZhbnRpbCB5IGVuIGxhIG5pw7FleiB0aWVuZGVuIGEgdmFyaWFyIHNlZ8O6biBsYSBmdWVudGUgeSBlbCBtw6l0b2RvIHBhcmEgdW4gbW9tZW50byB5IGx1Z2FyIGRldGVybWluYWRvcy4gTG9zIGHDsW9zIHBhcmEgbGFzIGVzdGltYWNpb25lcyBkaXNwb25pYmxlcyB0YW1iacOpbiB2YXLDrWFuIHNlZ8O6biBlbCBwYcOtcywgbG8gcXVlIGRpZmljdWx0YSBsYXMgY29tcGFyYWNpb25lcyBlbnRyZSBwYcOtc2VzIHkgYSBsbyBsYXJnbyBkZWwgdGllbXBvLiBQYXJhIHF1ZSBsYXMgZXN0aW1hY2lvbmVzIGRlIG1vcnRhbGlkYWQgbmVvbmF0YWwsIGluZmFudGlsIHkgZW4gbGEgbmnDsWV6IHNlYW4gY29tcGFyYWJsZXMgeSBnYXJhbnRpemFyIGxhIGNvbnNpc3RlbmNpYSBlbnRyZSBsYXMgZXN0aW1hY2lvbmVzIGRlIGRpZmVyZW50ZXMgYWdlbmNpYXMsIGVsIEdydXBvIEludGVyYWdlbmNpYWwgZGUgbGFzIE5hY2lvbmVzIFVuaWRhcyBwYXJhIGxhIEVzdGltYWNpw7NuIGRlIGxhIE1vcnRhbGlkYWQgSW5mYW50aWwgKFVOIElHTUUpLCBxdWUgY29tcHJlbmRlIGVsIEZvbmRvIGRlIGxhcyBOYWNpb25lcyBVbmlkYXMgcGFyYSBsYSBJbmZhbmNpYSAoVU5JQ0VGKSwgZWwgV29ybGQgT3JnYW5pemFjacOzbiBNdW5kaWFsIGRlIGxhIFNhbHVkIChPTVMpLCBlbCBCYW5jbyBNdW5kaWFsLCBsYSBEaXZpc2nDs24gZGUgUG9ibGFjacOzbiBkZSBsYXMgTmFjaW9uZXMgVW5pZGFzIHkgb3RyYXMgdW5pdmVyc2lkYWRlcyBlIGluc3RpdHV0b3MgZGUgaW52ZXN0aWdhY2nDs24sIGRlc2Fycm9sbGFyb24geSBhZG9wdGFyb24gdW4gbcOpdG9kbyBlc3RhZMOtc3RpY28gcXVlIHV0aWxpemEgdG9kYSBsYSBpbmZvcm1hY2nDs24gZGlzcG9uaWJsZSBwYXJhIHJlY29uY2lsaWFyIGxhcyBkaWZlcmVuY2lhcy4gRWwgbcOpdG9kbyB1dGlsaXphIG1vZGVsb3MgZXN0YWTDrXN0aWNvcyBwYXJhIG9idGVuZXIgdW5hIG1lam9yIGVzdGltYWNpw7NuIGRlIGxhIGzDrW5lYSBkZSB0ZW5kZW5jaWEgYWp1c3RhbmRvIHVuIG1vZGVsbyBkZSByZWdyZXNpw7NuIGRlIGxhcyB0YXNhcyBkZSBtb3J0YWxpZGFkIGVzcGVjw61maWNvIGRlbCBwYcOtcyBlbiBjb21wYXJhY2nDs24gY29uIHN1cyBmZWNoYXMgZGUgcmVmZXJlbmNpYS4KCj5Gb3JtYSBkZSBjw6FsY3VsbyBkZSBsYSB2YXJpYWJsZSAxMDogTGEgdGFzYSBkZSBzdXBlcnZpdmVuY2lhIGRlIGxhIGNvaG9ydGUgc2UgY2FsY3VsYSBkaXZpZGllbmRvIGVsIG7Dum1lcm8gdG90YWwgZGUgbmnDsW9zIHBlcnRlbmVjaWVudGVzIGEgdW5hIGNvaG9ydGUgcXVlIGFsY2FuemFyb24gY2FkYSBncmFkbyBzdWNlc2l2byBkZWwgbml2ZWwgZGUgZWR1Y2FjacOzbiBlc3BlY2lmaWNhZG8gcG9yIGVsIG7Dum1lcm8gZGUgbmnDsW9zIGVuIGxhIG1pc21hIGNvaG9ydGU7IGFxdWVsbG9zIG1hdHJpY3VsYWRvcyBvcmlnaW5hbG1lbnRlIGVuIGVsIHByaW1lciBncmFkbyBkZSBlZHVjYWNpw7NuIHByaW1hcmlhLCB5IG11bHRpcGxpY2FuZG8gcG9yIDEwMC4gUGFyYSByZWZsZWphciBsb3MgcGF0cm9uZXMgYWN0dWFsZXMgZGUgdHJhbnNpY2nDs24gZGUgZ3JhZG8sIHNlIGNhbGN1bGEgY29uIGJhc2UgZW4gZWwgbcOpdG9kbyBkZSBjb2hvcnRlcyByZWNvbnN0cnVpZGFzLCBxdWUgdXRpbGl6YSBkYXRvcyBzb2JyZSBtYXRyaWN1bGFjacOzbiBwb3IgZ3JhZG8gcGFyYSBsb3MgZG9zIGHDsW9zIG3DoXMgcmVjaWVudGVzIHkgZGF0b3Mgc29icmUgcmVwZXRpZG9yZXMgcG9yIGdyYWRvIHBhcmEgZWwgbcOhcyByZWNpZW50ZSBkZSBlc29zIGRvcyBhw7Fvcy4KCj5Mb3MgZGF0b3Mgc29icmUgZWR1Y2FjacOzbiBzb24gcmVjb3BpbGFkb3MgcG9yIGVsIEluc3RpdHV0byBkZSBFc3RhZMOtc3RpY2EgZGUgbGEgVU5FU0NPIGEgcGFydGlyIGRlIGxhcyByZXNwdWVzdGFzIG9maWNpYWxlcyBhIHN1IGVuY3Vlc3RhIGFudWFsIHNvYnJlIGVkdWNhY2nDs24uIFRvZG9zIGxvcyBkYXRvcyBzZSBhc2lnbmFuIGEgbGEgQ2xhc2lmaWNhY2nDs24gSW50ZXJuYWNpb25hbCBOb3JtYWxpemFkYSBkZSBsYSBFZHVjYWNpw7NuIChJU0NFRCkgcGFyYSBnYXJhbnRpemFyIGxhIGNvbXBhcmFiaWxpZGFkIGRlIGxvcyBwcm9ncmFtYXMgZWR1Y2F0aXZvcyBhIG5pdmVsIGludGVybmFjaW9uYWwuIExhIHZlcnNpw7NuIGFjdHVhbCBmdWUgYWRvcHRhZGEgZm9ybWFsbWVudGUgcG9yIGxvcyBFc3RhZG9zIE1pZW1icm9zIGRlIGxhIFVORVNDTyBlbiAyMDExLgoKPkxvcyBhw7FvcyBkZSByZWZlcmVuY2lhIHJlZmxlamFuIGVsIGHDsW8gZXNjb2xhciBwYXJhIGVsIHF1ZSBzZSBwcmVzZW50YW4gbG9zIGRhdG9zLiBFbiBhbGd1bm9zIHBhw61zZXMsIGVsIGHDsW8gZXNjb2xhciBhYmFyY2EgZG9zIGHDsW9zIGNhbGVuZGFyaW8gKHBvciBlamVtcGxvLCBkZSBzZXB0aWVtYnJlIGRlIDIwMTAgYSBqdW5pbyBkZSAyMDExKTsgZW4gZXN0b3MgY2Fzb3MgZWwgYcOxbyBkZSByZWZlcmVuY2lhIHNlIHJlZmllcmUgYWwgYcOxbyBlbiBxdWUgZmluYWxpesOzIGVsIGN1cnNvIGVzY29sYXIgKDIwMTEgZW4gZWwgZWplbXBsbykuCgo+Rm9ybWEgZGUgY8OhbGN1bG8gZGUgbGEgdmFyaWFibGUgMTE6IExhIHRhc2EgZGUgc3VwZXJ2aXZlbmNpYSBkZSBsYSBjb2hvcnRlIHNlIGNhbGN1bGEgZGl2aWRpZW5kbyBlbCBuw7ptZXJvIHRvdGFsIGRlIG5pw7FvcyBwZXJ0ZW5lY2llbnRlcyBhIHVuYSBjb2hvcnRlIHF1ZSBhbGNhbnphcm9uIGNhZGEgZ3JhZG8gc3VjZXNpdm8gZGVsIG5pdmVsIGRlIGVkdWNhY2nDs24gZXNwZWNpZmljYWRvIHBvciBlbCBuw7ptZXJvIGRlIG5pw7FvcyBlbiBsYSBtaXNtYSBjb2hvcnRlOyBhcXVlbGxvcyBtYXRyaWN1bGFkb3Mgb3JpZ2luYWxtZW50ZSBlbiBlbCBwcmltZXIgZ3JhZG8gZGUgZWR1Y2FjacOzbiBwcmltYXJpYSwgeSBtdWx0aXBsaWNhbmRvIHBvciAxMDAuIFBhcmEgcmVmbGVqYXIgbG9zIHBhdHJvbmVzIGFjdHVhbGVzIGRlIHRyYW5zaWNpw7NuIGRlIGdyYWRvLCBzZSBjYWxjdWxhIGNvbiBiYXNlIGVuIGVsIG3DqXRvZG8gZGUgY29ob3J0ZXMgcmVjb25zdHJ1aWRhcywgcXVlIHV0aWxpemEgZGF0b3Mgc29icmUgbWF0cmljdWxhY2nDs24gcG9yIGdyYWRvIHBhcmEgbG9zIGRvcyBhw7FvcyBtw6FzIHJlY2llbnRlcyB5IGRhdG9zIHNvYnJlIHJlcGV0aWRvcmVzIHBvciBncmFkbyBwYXJhIGVsIG3DoXMgcmVjaWVudGUgZGUgZXNvcyBkb3MgYcOxb3MuCgo+TG9zIGRhdG9zIHNvYnJlIGVkdWNhY2nDs24gc29uIHJlY29waWxhZG9zIHBvciBlbCBJbnN0aXR1dG8gZGUgRXN0YWTDrXN0aWNhIGRlIGxhIFVORVNDTyBhIHBhcnRpciBkZSBsYXMgcmVzcHVlc3RhcyBvZmljaWFsZXMgYSBzdSBlbmN1ZXN0YSBhbnVhbCBzb2JyZSBlZHVjYWNpw7NuLiBUb2RvcyBsb3MgZGF0b3Mgc2UgYXNpZ25hbiBhIGxhIENsYXNpZmljYWNpw7NuIEludGVybmFjaW9uYWwgTm9ybWFsaXphZGEgZGUgbGEgRWR1Y2FjacOzbiAoSVNDRUQpIHBhcmEgZ2FyYW50aXphciBsYSBjb21wYXJhYmlsaWRhZCBkZSBsb3MgcHJvZ3JhbWFzIGVkdWNhdGl2b3MgYSBuaXZlbCBpbnRlcm5hY2lvbmFsLiBMYSB2ZXJzacOzbiBhY3R1YWwgZnVlIGFkb3B0YWRhIGZvcm1hbG1lbnRlIHBvciBsb3MgRXN0YWRvcyBNaWVtYnJvcyBkZSBsYSBVTkVTQ08gZW4gMjAxMS4KCj5Mb3MgYcOxb3MgZGUgcmVmZXJlbmNpYSByZWZsZWphbiBlbCBhw7FvIGVzY29sYXIgcGFyYSBlbCBxdWUgc2UgcHJlc2VudGFuIGxvcyBkYXRvcy4gRW4gYWxndW5vcyBwYcOtc2VzLCBlbCBhw7FvIGVzY29sYXIgYWJhcmNhIGRvcyBhw7FvcyBjYWxlbmRhcmlvIChwb3IgZWplbXBsbywgZGUgc2VwdGllbWJyZSBkZSAyMDEwIGEganVuaW8gZGUgMjAxMSk7IGVuIGVzdG9zIGNhc29zIGVsIGHDsW8gZGUgcmVmZXJlbmNpYSBzZSByZWZpZXJlIGFsIGHDsW8gZW4gcXVlIGZpbmFsaXrDsyBlbCBjdXJzbyBlc2NvbGFyICgyMDExIGVuIGVsIGVqZW1wbG8pLgoKPkZvcm1hIGRlIGPDoWxjdWxvIGRlIGxhIHZhcmlhYmxlIDEyOiBObyBwb3NlZSB1bmEgbWV0b2RvbG9nw61hIGRlZmluaWRhIHBhcmEgc3UgY2FsY3VsbwoKPkZvcm1hIGRlIGPDoWxjdWxvIGRlIGxhIHZhcmlhYmxlIDEzOiBMYSB0YXNhIGRlIHN1cGVydml2ZW5jaWEgZGUgbGEgY29ob3J0ZSBzZSBjYWxjdWxhIGRpdmlkaWVuZG8gZWwgbsO6bWVybyB0b3RhbCBkZSBuacOxb3MgcGVydGVuZWNpZW50ZXMgYSB1bmEgY29ob3J0ZSBxdWUgYWxjYW56YXJvbiBjYWRhIGdyYWRvIHN1Y2VzaXZvIGRlbCBuaXZlbCBkZSBlZHVjYWNpw7NuIGVzcGVjaWZpY2FkbyBwb3IgZWwgbsO6bWVybyBkZSBuacOxb3MgZW4gbGEgbWlzbWEgY29ob3J0ZTsgYXF1ZWxsb3MgbWF0cmljdWxhZG9zIG9yaWdpbmFsbWVudGUgZW4gZWwgcHJpbWVyIGdyYWRvIGRlIGVkdWNhY2nDs24gcHJpbWFyaWEsIHkgbXVsdGlwbGljYW5kbyBwb3IgMTAwLiBQYXJhIHJlZmxlamFyIGxvcyBwYXRyb25lcyBhY3R1YWxlcyBkZSB0cmFuc2ljacOzbiBkZSBncmFkbywgc2UgY2FsY3VsYSBjb24gYmFzZSBlbiBlbCBtw6l0b2RvIGRlIGNvaG9ydGVzIHJlY29uc3RydWlkYXMsIHF1ZSB1dGlsaXphIGRhdG9zIHNvYnJlIG1hdHJpY3VsYWNpw7NuIHBvciBncmFkbyBwYXJhIGxvcyBkb3MgYcOxb3MgbcOhcyByZWNpZW50ZXMgeSBkYXRvcyBzb2JyZSByZXBldGlkb3JlcyBwb3IgZ3JhZG8gcGFyYSBlbCBtw6FzIHJlY2llbnRlIGRlIGVzb3MgZG9zIGHDsW9zLgoKPkxvcyBkYXRvcyBzb2JyZSBlZHVjYWNpw7NuIHNvbiByZWNvcGlsYWRvcyBwb3IgZWwgSW5zdGl0dXRvIGRlIEVzdGFkw61zdGljYSBkZSBsYSBVTkVTQ08gYSBwYXJ0aXIgZGUgbGFzIHJlc3B1ZXN0YXMgb2ZpY2lhbGVzIGEgc3UgZW5jdWVzdGEgYW51YWwgc29icmUgZWR1Y2FjacOzbi4gVG9kb3MgbG9zIGRhdG9zIHNlIGFzaWduYW4gYSBsYSBDbGFzaWZpY2FjacOzbiBJbnRlcm5hY2lvbmFsIE5vcm1hbGl6YWRhIGRlIGxhIEVkdWNhY2nDs24gKElTQ0VEKSBwYXJhIGdhcmFudGl6YXIgbGEgY29tcGFyYWJpbGlkYWQgZGUgbG9zIHByb2dyYW1hcyBlZHVjYXRpdm9zIGEgbml2ZWwgaW50ZXJuYWNpb25hbC4gTGEgdmVyc2nDs24gYWN0dWFsIGZ1ZSBhZG9wdGFkYSBmb3JtYWxtZW50ZSBwb3IgbG9zIEVzdGFkb3MgTWllbWJyb3MgZGUgbGEgVU5FU0NPIGVuIDIwMTEuCgo+TG9zIGHDsW9zIGRlIHJlZmVyZW5jaWEgcmVmbGVqYW4gZWwgYcOxbyBlc2NvbGFyIHBhcmEgZWwgcXVlIHNlIHByZXNlbnRhbiBsb3MgZGF0b3MuIEVuIGFsZ3Vub3MgcGHDrXNlcywgZWwgYcOxbyBlc2NvbGFyIGFiYXJjYSBkb3MgYcOxb3MgY2FsZW5kYXJpbyAocG9yIGVqZW1wbG8sIGRlIHNlcHRpZW1icmUgZGUgMjAxMCBhIGp1bmlvIGRlIDIwMTEpOyBlbiBlc3RvcyBjYXNvcyBlbCBhw7FvIGRlIHJlZmVyZW5jaWEgc2UgcmVmaWVyZSBhbCBhw7FvIGVuIHF1ZSBmaW5hbGl6w7MgZWwgY3Vyc28gZXNjb2xhciAoMjAxMSBlbiBlbCBlamVtcGxvKS4KCj5Gb3JtYSBkZSBjw6FsY3VsbyBkZSBsYSB2YXJpYWJsZSAxNDogTGFzIHByaW5jaXBhbGVzIGZ1ZW50ZXMgZGUgZGF0b3MgZGUgbW9ydGFsaWRhZCBzb24gbG9zIHNpc3RlbWFzIGRlIHJlZ2lzdHJvIGNpdmlsIHkgbGFzIGVzdGltYWNpb25lcyBkaXJlY3RhcyBvIGluZGlyZWN0YXMgYmFzYWRhcyBlbiBlbmN1ZXN0YXMgbyBjZW5zb3MgcG9yIG11ZXN0cmVvLiBkYXRvcyBkZSBtb3J0YWxpZGFkIGVzcGVjw61maWNvcyBwb3IgZWRhZC4KCj5MYXMgZXN0aW1hY2lvbmVzIGRlIG1vcnRhbGlkYWQgbmVvbmF0YWwsIGluZmFudGlsIHkgZW4gbGEgbmnDsWV6IHRpZW5kZW4gYSB2YXJpYXIgc2Vnw7puIGxhIGZ1ZW50ZSB5IGVsIG3DqXRvZG8gcGFyYSB1biBtb21lbnRvIHkgbHVnYXIgZGV0ZXJtaW5hZG9zLiBMb3MgYcOxb3MgcGFyYSBsYXMgZXN0aW1hY2lvbmVzIGRpc3BvbmlibGVzIHRhbWJpw6luIHZhcsOtYW4gc2Vnw7puIGVsIHBhw61zLCBsbyBxdWUgZGlmaWN1bHRhIGxhcyBjb21wYXJhY2lvbmVzIGVudHJlIHBhw61zZXMgeSBhIGxvIGxhcmdvIGRlbCB0aWVtcG8uIFBhcmEgcXVlIGxhcyBlc3RpbWFjaW9uZXMgZGUgbW9ydGFsaWRhZCBuZW9uYXRhbCwgaW5mYW50aWwgeSBlbiBsYSBuacOxZXogc2VhbiBjb21wYXJhYmxlcyB5IGdhcmFudGl6YXIgbGEgY29uc2lzdGVuY2lhIGVudHJlIGxhcyBlc3RpbWFjaW9uZXMgZGUgZGlmZXJlbnRlcyBhZ2VuY2lhcywgZWwgR3J1cG8gSW50ZXJpbnN0aXR1Y2lvbmFsIGRlIGxhcyBOYWNpb25lcyBVbmlkYXMgcGFyYSBsYSBFc3RpbWFjacOzbiBkZSBsYSBNb3J0YWxpZGFkIEluZmFudGlsIChVTiBJR01FKSwgcXVlIGNvbXByZW5kZSBlbCBGb25kbyBkZSBsYXMgTmFjaW9uZXMgVW5pZGFzIHBhcmEgbGEgSW5mYW5jaWEgKFVOSUNFRiksIGVsIEZvbmRvIE11bmRpYWwgT3JnYW5pemFjacOzbiBNdW5kaWFsIGRlIGxhIFNhbHVkIChPTVMpLCBlbCBCYW5jbyBNdW5kaWFsLCBsYSBEaXZpc2nDs24gZGUgUG9ibGFjacOzbiBkZSBsYXMgTmFjaW9uZXMgVW5pZGFzIHkgb3RyYXMgdW5pdmVyc2lkYWRlcyBlIGluc3RpdHV0b3MgZGUgaW52ZXN0aWdhY2nDs24sIGRlc2Fycm9sbGFyb24geSBhZG9wdGFyb24gdW4gbcOpdG9kbyBlc3RhZMOtc3RpY28gcXVlIHV0aWxpemEgdG9kYSBsYSBpbmZvcm1hY2nDs24gZGlzcG9uaWJsZSBwYXJhIHJlY29uY2lsaWFyIGxhcyBkaWZlcmVuY2lhcy4gRWwgbcOpdG9kbyB1dGlsaXphIG1vZGVsb3MgZXN0YWTDrXN0aWNvcyBwYXJhIG9idGVuZXIgdW5hIG1lam9yIGVzdGltYWNpw7NuIGRlIGxhIGzDrW5lYSBkZSB0ZW5kZW5jaWEgYWp1c3RhbmRvIHVuIG1vZGVsbyBkZSByZWdyZXNpw7NuIGRlIHRhc2FzIGRlIG1vcnRhbGlkYWQgZXNwZWPDrWZpY28gZGVsIHBhw61zIGVuIGNvbXBhcmFjacOzbiBjb24gc3VzIGZlY2hhcyBkZSByZWZlcmVuY2lhLgoKPioqRm9ybWEgZGUgY8OhbGN1bG8gZGUgbGEgdmFyaWFibGUgMTU6KiogRXN0ZSBpbmRpY2Fkb3Igc2UgY2FsY3VsYSBkaXZpZGllbmRvIGxhIHRhc2EgYnJ1dGEgZGUgbWF0csOtY3VsYSBmZW1lbmluYSBlbiBlZHVjYWNpw7NuIHByaW1hcmlhIHBvciBsYSB0YXNhIGJydXRhIGRlIG1hdHLDrWN1bGEgbWFzY3VsaW5hIGVuIGVkdWNhY2nDs24gcHJpbWFyaWEuCgo+TG9zIGRhdG9zIHNvYnJlIGVkdWNhY2nDs24gc29uIHJlY29waWxhZG9zIHBvciBlbCBJbnN0aXR1dG8gZGUgRXN0YWTDrXN0aWNhIGRlIGxhIFVORVNDTyBhIHBhcnRpciBkZSBsYXMgcmVzcHVlc3RhcyBvZmljaWFsZXMgYSBzdSBlbmN1ZXN0YSBhbnVhbCBzb2JyZSBlZHVjYWNpw7NuLiBUb2RvcyBsb3MgZGF0b3Mgc2UgYXNpZ25hbiBhIGxhIENsYXNpZmljYWNpw7NuIEludGVybmFjaW9uYWwgTm9ybWFsaXphZGEgZGUgbGEgRWR1Y2FjacOzbiAoSVNDRUQpIHBhcmEgZ2FyYW50aXphciBsYSBjb21wYXJhYmlsaWRhZCBkZSBsb3MgcHJvZ3JhbWFzIGVkdWNhdGl2b3MgYSBuaXZlbCBpbnRlcm5hY2lvbmFsLiBMYSB2ZXJzacOzbiBhY3R1YWwgZnVlIGFkb3B0YWRhIGZvcm1hbG1lbnRlIHBvciBsb3MgRXN0YWRvcyBNaWVtYnJvcyBkZSBsYSBVTkVTQ08gZW4gMjAxMS4KCj5Mb3MgYcOxb3MgZGUgcmVmZXJlbmNpYSByZWZsZWphbiBlbCBhw7FvIGVzY29sYXIgcGFyYSBlbCBxdWUgc2UgcHJlc2VudGFuIGxvcyBkYXRvcy4gRW4gYWxndW5vcyBwYcOtc2VzLCBlbCBhw7FvIGVzY29sYXIgYWJhcmNhIGRvcyBhw7FvcyBjYWxlbmRhcmlvIChwb3IgZWplbXBsbywgZGUgc2VwdGllbWJyZSBkZSAyMDEwIGEganVuaW8gZGUgMjAxMSk7IGVuIGVzdG9zIGNhc29zIGVsIGHDsW8gZGUgcmVmZXJlbmNpYSBzZSByZWZpZXJlIGFsIGHDsW8gZW4gcXVlIGZpbmFsaXrDsyBlbCBjdXJzbyBlc2NvbGFyICgyMDExIGVuIGVsIGVqZW1wbG8pLgoKPkZvcm1hIGRlIGPDoWxjdWxvIGRlIGxhIHZhcmlhYmxlIDE2OiBFc3RlIGluZGljYWRvciBzZSBjYWxjdWxhIGRpdmlkaWVuZG8gbGEgdGFzYSBicnV0YSBkZSBtYXRyw61jdWxhIGZlbWVuaW5hIGVuIGVkdWNhY2nDs24gdGVyY2lhcmlhIHBvciBsYSB0YXNhIGJydXRhIGRlIG1hdHLDrWN1bGEgbWFzY3VsaW5hIGVuIGVkdWNhY2nDs24gdGVyY2lhcmlhLgoKPkxvcyBkYXRvcyBzb2JyZSBlZHVjYWNpw7NuIHNvbiByZWNvcGlsYWRvcyBwb3IgZWwgSW5zdGl0dXRvIGRlIEVzdGFkw61zdGljYSBkZSBsYSBVTkVTQ08gYSBwYXJ0aXIgZGUgbGFzIHJlc3B1ZXN0YXMgb2ZpY2lhbGVzIGEgc3UgZW5jdWVzdGEgYW51YWwgc29icmUgZWR1Y2FjacOzbi4gVG9kb3MgbG9zIGRhdG9zIHNlIGFzaWduYW4gYSBsYSBDbGFzaWZpY2FjacOzbiBJbnRlcm5hY2lvbmFsIE5vcm1hbGl6YWRhIGRlIGxhIEVkdWNhY2nDs24gKElTQ0VEKSBwYXJhIGdhcmFudGl6YXIgbGEgY29tcGFyYWJpbGlkYWQgZGUgbG9zIHByb2dyYW1hcyBlZHVjYXRpdm9zIGEgbml2ZWwgaW50ZXJuYWNpb25hbC4gTGEgdmVyc2nDs24gYWN0dWFsIGZ1ZSBhZG9wdGFkYSBmb3JtYWxtZW50ZSBwb3IgbG9zIEVzdGFkb3MgTWllbWJyb3MgZGUgbGEgVU5FU0NPIGVuIDIwMTEuCgo+TG9zIGHDsW9zIGRlIHJlZmVyZW5jaWEgcmVmbGVqYW4gZWwgYcOxbyBlc2NvbGFyIHBhcmEgZWwgcXVlIHNlIHByZXNlbnRhbiBsb3MgZGF0b3MuIEVuIGFsZ3Vub3MgcGHDrXNlcywgZWwgYcOxbyBlc2NvbGFyIGFiYXJjYSBkb3MgYcOxb3MgY2FsZW5kYXJpbyAocG9yIGVqZW1wbG8sIGRlIHNlcHRpZW1icmUgZGUgMjAxMCBhIGp1bmlvIGRlIDIwMTEpOyBlbiBlc3RvcyBjYXNvcyBlbCBhw7FvIGRlIHJlZmVyZW5jaWEgc2UgcmVmaWVyZSBhbCBhw7FvIGVuIHF1ZSBmaW5hbGl6w7MgZWwgY3Vyc28gZXNjb2xhciAoMjAxMSBlbiBlbCBlamVtcGxvKS4KCj4qKkZvcm1hIGRlIGPDoWxjdWxvIGRlIGxhIHZhcmlhYmxlIDE3OioqIEVzdGUgaW5kaWNhZG9yIHNlIGNhbGN1bGEgZGl2aWRpZW5kbyBsYSB0YXNhIGJydXRhIGRlIG1hdHLDrWN1bGEgZmVtZW5pbmEgZW4gZWR1Y2FjacOzbiBwcmltYXJpYSB5IHNlY3VuZGFyaWEgcG9yIGxhIHRhc2EgYnJ1dGEgZGUgbWF0csOtY3VsYSBtYXNjdWxpbmEgZW4gZWR1Y2FjacOzbiBwcmltYXJpYSB5IHNlY3VuZGFyaWEuCgo+TG9zIGRhdG9zIHNvYnJlIGVkdWNhY2nDs24gc29uIHJlY29waWxhZG9zIHBvciBlbCBJbnN0aXR1dG8gZGUgRXN0YWTDrXN0aWNhIGRlIGxhIFVORVNDTyBhIHBhcnRpciBkZSBsYXMgcmVzcHVlc3RhcyBvZmljaWFsZXMgYSBzdSBlbmN1ZXN0YSBhbnVhbCBzb2JyZSBlZHVjYWNpw7NuLiBUb2RvcyBsb3MgZGF0b3Mgc2UgYXNpZ25hbiBhIGxhIENsYXNpZmljYWNpw7NuIEludGVybmFjaW9uYWwgTm9ybWFsaXphZGEgZGUgbGEgRWR1Y2FjacOzbiAoSVNDRUQpIHBhcmEgZ2FyYW50aXphciBsYSBjb21wYXJhYmlsaWRhZCBkZSBsb3MgcHJvZ3JhbWFzIGVkdWNhdGl2b3MgYSBuaXZlbCBpbnRlcm5hY2lvbmFsLiBMYSB2ZXJzacOzbiBhY3R1YWwgZnVlIGFkb3B0YWRhIGZvcm1hbG1lbnRlIHBvciBsb3MgRXN0YWRvcyBNaWVtYnJvcyBkZSBsYSBVTkVTQ08gZW4gMjAxMS4KCj5Mb3MgYcOxb3MgZGUgcmVmZXJlbmNpYSByZWZsZWphbiBlbCBhw7FvIGVzY29sYXIgcGFyYSBlbCBxdWUgc2UgcHJlc2VudGFuIGxvcyBkYXRvcy4gRW4gYWxndW5vcyBwYcOtc2VzLCBlbCBhw7FvIGVzY29sYXIgYWJhcmNhIGRvcyBhw7FvcyBjYWxlbmRhcmlvIChwb3IgZWplbXBsbywgZGUgc2VwdGllbWJyZSBkZSAyMDEwIGEganVuaW8gZGUgMjAxMSk7IGVuIGVzdG9zIGNhc29zIGVsIGHDsW8gZGUgcmVmZXJlbmNpYSBzZSByZWZpZXJlIGFsIGHDsW8gZW4gcXVlIGZpbmFsaXrDsyBlbCBjdXJzbyBlc2NvbGFyICgyMDExIGVuIGVsIGVqZW1wbG8pLgoKPioqRm9ybWEgZGUgY8OhbGN1bG8gZGUgbGEgdmFyaWFibGUgMTg6KiogTGEgcmVsYWNpw7NuIGVtcGxlby1wb2JsYWNpw7NuIGluZGljYSBjdcOhbiBlZmljaWVudGVtZW50ZSB1bmEgZWNvbm9tw61hIHByb3BvcmNpb25hIHB1ZXN0b3MgZGUgdHJhYmFqbyBwYXJhIGxhcyBwZXJzb25hcyBxdWUgcXVpZXJlbiB0cmFiYWphci4gVW5hIHJlbGFjacOzbiBhbHRhIHNpZ25pZmljYSBxdWUgdW5hIGdyYW4gcHJvcG9yY2nDs24gZGUgbGEgcG9ibGFjacOzbiBlc3TDoSBlbXBsZWFkYS4gUGVybyB1bmEgcmVsYWNpw7NuIGVtcGxlby1wb2JsYWNpw7NuIG3DoXMgYmFqYSBwdWVkZSB2ZXJzZSBjb21vIHVuYSBzaWdubyBwb3NpdGl2bywgZXNwZWNpYWxtZW50ZSBwYXJhIGxvcyBqw7N2ZW5lcywgc2kgdW4gYXVtZW50byBlbiBzdSBlZHVjYWNpw7NuIGxvIHByb3ZvY2EuCgo+TGEgc2VyaWUgZXMgcGFydGUgZGUgbGEgYmFzZSBkZSBkYXRvcyBkZSBlc3RpbWFjaW9uZXMgbW9kZWxhZGFzIGRlIGxhIE9JVCwgcXVlIGluY2x1eWUgb2JzZXJ2YWNpb25lcyBpbmZvcm1hZGFzIGEgbml2ZWwgbmFjaW9uYWwgeSBkYXRvcyBpbXB1dGFkb3MgcGFyYSBwYcOtc2VzIGNvbiBkYXRvcyBmYWx0YW50ZXMsIHByaW5jaXBhbG1lbnRlIHBhcmEgY2FwdHVyYXIgdGVuZGVuY2lhcyByZWdpb25hbGVzIHkgZ2xvYmFsZXMgY29uIHVuYSBjb2JlcnR1cmEgZGUgcGHDrXMgY29uc2lzdGVudGUuIExvcyBtaWNyb2RhdG9zIGluZm9ybWFkb3MgcG9yIGxvcyBwYcOtc2VzIHNlIGJhc2FuIHByaW5jaXBhbG1lbnRlIGVuIGVuY3Vlc3RhcyBkZSBmdWVyemEgbGFib3JhbCByZXByZXNlbnRhdGl2YXMgYSBuaXZlbCBuYWNpb25hbCwgY29uIG90cmFzIGZ1ZW50ZXMgKHBvciBlamVtcGxvLCBlbmN1ZXN0YXMgZGUgaG9nYXJlcyB5IGNlbnNvcyBkZSBwb2JsYWNpw7NuKSBxdWUgY29uc2lkZXJhbiBsYXMgZGlmZXJlbmNpYXMgZW4gbGEgZnVlbnRlIGRlIGRhdG9zLCBlbCBhbGNhbmNlIGRlIGxhIGNvYmVydHVyYSwgbGEgbWV0b2RvbG9nw61hIHkgb3Ryb3MgZmFjdG9yZXMgZXNwZWPDrWZpY29zIGRlbCBwYcOtcy4gRWwgYW7DoWxpc2lzIGRlIHBhw61zIHJlcXVpZXJlIHByZWNhdWNpw7NuIGN1YW5kbyBzZSBkaXNwb25lIGRlIGRhdG9zIGxpbWl0YWRvcyBpbmZvcm1hZG9zIGEgbml2ZWwgbmFjaW9uYWwuIFRhbWJpw6luIHNlIGFwbGljYW4gdW5hIHNlcmllIGRlIG1vZGVsb3MgcGFyYSBpbXB1dGFyIGxhcyBvYnNlcnZhY2lvbmVzIGZhbHRhbnRlcyB5IGhhY2VyIHByb3llY2Npb25lcy4gU2luIGVtYmFyZ28sIGxhcyBvYnNlcnZhY2lvbmVzIGltcHV0YWRhcyBubyBzZSBiYXNhbiBlbiBkYXRvcyBuYWNpb25hbGVzLCBlc3TDoW4gc3VqZXRhcyBhIHVuYSBncmFuIGluY2VydGlkdW1icmUgeSBubyBkZWJlbiB1dGlsaXphcnNlIHBhcmEgY29tcGFyYWNpb25lcyBvIGNsYXNpZmljYWNpb25lcyBkZSBwYcOtc2VzLgoKPkZvcm1hIGRlIGPDoWxjdWxvIGRlIGxhIHZhcmlhYmxlIDE5OiBMYSBlc3BlcmFuemEgZGUgdmlkYSBhbCBuYWNlciB1dGlsaXphZGEgYXF1w60gZXMgZWwgbsO6bWVybyBwcm9tZWRpbyBkZSBhw7FvcyBxdWUgc2UgZXNwZXJhIHF1ZSB2aXZhIHVuIHJlY2nDqW4gbmFjaWRvIHNpIGxvcyBwYXRyb25lcyBkZSBtb3J0YWxpZGFkIGVuIGVsIG1vbWVudG8gZGUgc3UgbmFjaW1pZW50byBwZXJtYW5lY2VuIGNvbnN0YW50ZXMgZW4gZWwgZnV0dXJvLiBSZWZsZWphIGVsIG5pdmVsIGRlIG1vcnRhbGlkYWQgZ2VuZXJhbCBkZSB1bmEgcG9ibGFjacOzbiB5IHJlc3VtZSBlbCBwYXRyw7NuIGRlIG1vcnRhbGlkYWQgcXVlIHByZXZhbGVjZSBlbiB0b2RvcyBsb3MgZ3J1cG9zIGRlIGVkYWQgZW4gdW4gYcOxbyBkYWRvLiBTZSBjYWxjdWxhIGVuIHVuYSB0YWJsYSBkZSB2aWRhIHBvciBwZXLDrW9kb3MgcXVlIHByb3BvcmNpb25hIHVuYSBpbnN0YW50w6FuZWEgZGVsIHBhdHLDs24gZGUgbW9ydGFsaWRhZCBkZSB1bmEgcG9ibGFjacOzbiBlbiB1biBtb21lbnRvIGRhZG8uIFBvciBsbyB0YW50bywgbm8gcmVmbGVqYSBlbCBwYXRyw7NuIGRlIG1vcnRhbGlkYWQgcXVlIHVuYSBwZXJzb25hIHJlYWxtZW50ZSBleHBlcmltZW50YSBkdXJhbnRlIHN1IHZpZGEgLCBxdWUgc2UgcHVlZGUgY2FsY3VsYXIgZW4gdW5hIHRhYmxhIGRlIHZpZGEgZGUgY29ob3J0ZXMuCgo+TGEgYWx0YSBtb3J0YWxpZGFkIGVuIGxvcyBncnVwb3MgZGUgZWRhZCBqw7N2ZW5lcyByZWR1Y2Ugc2lnbmlmaWNhdGl2YW1lbnRlIGxhIGVzcGVyYW56YSBkZSB2aWRhIGFsIG5hY2VyLiBQZXJvIHNpIHVuYSBwZXJzb25hIHNvYnJldml2ZSBhIHN1IGluZmFuY2lhIGRlIGFsdGEgbW9ydGFsaWRhZCwgcHVlZGUgdml2aXIgbXVjaG8gbcOhcyB0aWVtcG8uIFBvciBlamVtcGxvLCBlbiB1bmEgcG9ibGFjacOzbiBjb24gdW5hIGVzcGVyYW56YSBkZSB2aWRhIGFsIG5hY2VyIGRlIDUwIGHDsW9zLCBwdWVkZSBoYWJlciBwb2NhcyBwZXJzb25hcyBxdWUgbXVlcmFuIGEgbG9zIDUwIGHDsW9zLiBMYSBlc3BlcmFuemEgZGUgdmlkYSBhbCBuYWNlciBwdWVkZSBzZXIgYmFqYSBkZWJpZG8gYSBsYSBhbHRhIG1vcnRhbGlkYWQgaW5mYW50aWwsIGRlIG1vZG8gcXVlIHVuYSB2ZXogcXVlIHVuYSBwZXJzb25hIHNvYnJldml2ZSBhIHN1IGluZmFuY2lhLCDDqWwgLyBlbGxhIHB1ZWRlIHZpdmlyIG11Y2hvIG3DoXMgZGUgNTAgYcOxb3MuCgo+KipGb3JtYSBkZSBjw6FsY3VsbyBkZSBsYSB2YXJpYWJsZSAyMDoqKiBMYXMgZXN0aW1hY2lvbmVzIGRlIHBvYmxhY2nDs24gZ2VuZXJhbG1lbnRlIHNlIGJhc2FuIGVuIGNlbnNvcyBuYWNpb25hbGVzIGRlIHBvYmxhY2nDs24uIExhcyBlc3RpbWFjaW9uZXMgZGUgbG9zIGHDsW9zIGFudGVyaW9yZXMgeSBwb3N0ZXJpb3JlcyBhbCBjZW5zbyBzb24gaW50ZXJwb2xhY2lvbmVzIG8gZXh0cmFwb2xhY2lvbmVzIGJhc2FkYXMgZW4gbW9kZWxvcyBkZW1vZ3LDoWZpY29zLgoKPkxvcyBlcnJvcmVzIHkgZWwgY29udGVvIGluc3VmaWNpZW50ZSBvY3VycmVuIGluY2x1c28gZW4gcGHDrXNlcyBkZSBhbHRvcyBpbmdyZXNvcy4gRW4gbG9zIHBhw61zZXMgZW4gZGVzYXJyb2xsbywgbG9zIGVycm9yZXMgcHVlZGVuIHNlciBzdXN0YW5jaWFsZXMgZGViaWRvIGEgbG9zIGzDrW1pdGVzIGVuIGVsIHRyYW5zcG9ydGUsIGxhcyBjb211bmljYWNpb25lcyB5IG90cm9zIHJlY3Vyc29zIG5lY2VzYXJpb3MgcGFyYSByZWFsaXphciB5IGFuYWxpemFyIHVuIGNlbnNvIGNvbXBsZXRvLgoKPkxhIGNhbGlkYWQgeSBjb25maWFiaWxpZGFkIGRlIGxvcyBkYXRvcyBkZW1vZ3LDoWZpY29zIG9maWNpYWxlcyB0YW1iacOpbiBzZSB2ZW4gYWZlY3RhZGFzIHBvciBsYSBjb25maWFuemEgcMO6YmxpY2EgZW4gZWwgZ29iaWVybm8sIGVsIGNvbXByb21pc28gZGVsIGdvYmllcm5vIGNvbiBsYSBlbnVtZXJhY2nDs24gY29tcGxldGEgeSBwcmVjaXNhLCBsYSBjb25maWRlbmNpYWxpZGFkIHkgbGEgcHJvdGVjY2nDs24gY29udHJhIGVsIHVzbyBpbmRlYmlkbyBkZSBsb3MgZGF0b3MgZGVsIGNlbnNvIHkgbGEgaW5kZXBlbmRlbmNpYSBkZSBsYXMgYWdlbmNpYXMgZGVsIGNlbnNvIGRlIGxhIGluZmx1ZW5jaWEgcG9sw610aWNhLiBBZGVtw6FzLCBsYSBjb21wYXJhYmlsaWRhZCBkZSBsb3MgaW5kaWNhZG9yZXMgZGUgcG9ibGFjacOzbiBlc3TDoSBsaW1pdGFkYSBwb3IgbGFzIGRpZmVyZW5jaWFzIGVuIGxvcyBjb25jZXB0b3MsIGRlZmluaWNpb25lcywgcHJvY2VkaW1pZW50b3MgZGUgcmVjb3BpbGFjacOzbiB5IG3DqXRvZG9zIGRlIGVzdGltYWNpw7NuIHV0aWxpemFkb3MgcG9yIGxhcyBhZ2VuY2lhcyBuYWNpb25hbGVzIGRlIGVzdGFkw61zdGljYSB5IG90cmFzIG9yZ2FuaXphY2lvbmVzIHF1ZSByZWNvcGlsYW4gbG9zIGRhdG9zLgoKPkxhIGFjdHVhbGlkYWQgZGUgdW4gY2Vuc28geSBsYSBkaXNwb25pYmlsaWRhZCBkZSBkYXRvcyBjb21wbGVtZW50YXJpb3MgZGUgZW5jdWVzdGFzIG8gc2lzdGVtYXMgZGUgcmVnaXN0cm8gc29uIGZvcm1hcyBvYmpldGl2YXMgZGUganV6Z2FyIGxhIGNhbGlkYWQgZGUgbG9zIGRhdG9zIGRlbW9ncsOhZmljb3MuIExvcyBzaXN0ZW1hcyBkZSByZWdpc3RybyBkZSBhbGd1bm9zIHBhw61zZXMgZXVyb3Blb3Mgb2ZyZWNlbiBpbmZvcm1hY2nDs24gY29tcGxldGEgc29icmUgbGEgcG9ibGFjacOzbiBlbiBhdXNlbmNpYSBkZSB1biBjZW5zby4KCj5MYSBEaXZpc2nDs24gZGUgRXN0YWTDrXN0aWNhIGRlIGxhcyBOYWNpb25lcyBVbmlkYXMgc3VwZXJ2aXNhIGxhIGludGVncmlkYWQgZGUgbG9zIHNpc3RlbWFzIGRlIHJlZ2lzdHJvIGNpdmlsLiBBbGd1bm9zIHBhw61zZXMgZW4gZGVzYXJyb2xsbyBoYW4gcHJvZ3Jlc2FkbyBlbiBsb3Mgw7psdGltb3MgNjAgYcOxb3MsIHBlcm8gb3Ryb3MgdG9kYXbDrWEgdGllbmVuIGRlZmljaWVuY2lhcyBlbiBsb3Mgc2lzdGVtYXMgZGUgcmVnaXN0cm8gY2l2aWwuCgo+TGEgbWlncmFjacOzbiBpbnRlcm5hY2lvbmFsIGVzIGVsIMO6bmljbyBvdHJvIGZhY3RvciwgYWRlbcOhcyBkZSBsYXMgdGFzYXMgZGUgbmF0YWxpZGFkIHkgbW9ydGFsaWRhZCwgcXVlIGRldGVybWluYSBkaXJlY3RhbWVudGUgZWwgY3JlY2ltaWVudG8gZGUgbGEgcG9ibGFjacOzbiBkZSB1biBwYcOtcy4gRXN0aW1hciBsYSBtaWdyYWNpw7NuIGVzIGRpZsOtY2lsLiBFbiBjdWFscXVpZXIgbW9tZW50bywgbXVjaGFzIHBlcnNvbmFzIHNlIGVuY3VlbnRyYW4gZnVlcmEgZGUgc3UgcGHDrXMgZGUgb3JpZ2VuIGNvbW8gdHVyaXN0YXMsIHRyYWJhamFkb3JlcywgcmVmdWdpYWRvcyBvIHBvciBvdHJhcyByYXpvbmVzLiBMb3MgZXN0w6FuZGFyZXMgcGFyYSBsYSBkdXJhY2nDs24geSBlbCBwcm9ww7NzaXRvIGRlIGxvcyBtb3ZpbWllbnRvcyBpbnRlcm5hY2lvbmFsZXMgcXVlIGNhbGlmaWNhbiBjb21vIG1pZ3JhY2nDs24gdmFyw61hbiwgeSBsYXMgZXN0aW1hY2lvbmVzIHJlcXVpZXJlbiBpbmZvcm1hY2nDs24gc29icmUgZmx1am9zIGhhY2lhIHkgZGVzZGUgcGHDrXNlcyBxdWUgZXMgZGlmw61jaWwgZGUgcmVjb3BpbGFyLgoKPkxhcyBwcm95ZWNjaW9uZXMgZGUgcG9ibGFjacOzbiwgYSBwYXJ0aXIgZGUgdW4gYcOxbyBiYXNlLCBzZSBwcm95ZWN0YW4gaGFjaWEgYWRlbGFudGUgdXRpbGl6YW5kbyBzdXBvc2ljaW9uZXMgZGUgbW9ydGFsaWRhZCwgZmVydGlsaWRhZCB5IG1pZ3JhY2nDs24gcG9yIGVkYWQgeSBzZXhvIGhhc3RhIDIwNTAsIHNlZ8O6biBsYSB2YXJpYW50ZSBtZWRpYSBkZSBsYSBiYXNlIGRlIGRhdG9zIFdvcmxkIFBvcHVsYXRpb24gUHJvc3BlY3RzIGRlIGxhIERpdmlzacOzbiBkZSBQb2JsYWNpw7NuIGRlIGxhcyBOYWNpb25lcyBVbmlkYXMuCgo+KipGb3JtYSBkZSBjw6FsY3VsbyBkZSBsYSB2YXJpYWJsZSAyMToqKiBObyBwb3NlZSBtZXRvZG9sb2fDrWEgZXN0YWJsZWNpZGEgcGFyYSBzdSBjYWxjdWxvLiIsCgo+KipGb3JtYSBkZSBjw6FsY3VsbyBkZSBsYSB2YXJpYWJsZSAyMjoqKiBFbCBib3NxdWUgZXN0w6EgZGV0ZXJtaW5hZG8gdGFudG8gcG9yIGxhIHByZXNlbmNpYSBkZSDDoXJib2xlcyBjb21vIHBvciBsYSBhdXNlbmNpYSBkZSBvdHJvcyB1c29zIHByZWRvbWluYW50ZXMgZGUgbGEgdGllcnJhLiBMb3Mgw6FyYm9sZXMgZGViZW4gYWxjYW56YXIgdW5hIGFsdHVyYSBtw61uaW1hIGRlIDUgbWV0cm9zIGluIHNpdHUuIMOBcmVhcyBiYWpvIHJlZm9yZXN0YWNpw7NuIHF1ZSBhw7puIG5vIGhhbiBhbGNhbnphZG8gcGVybyBzZSBlc3BlcmEgcXVlIGFsY2FuY2VuIHVuYSBjdWJpZXJ0YSBkZSBkb3NlbCBkZSAxMCBwb3IgY2llbnRvIHkgdW5hIGFsdHVyYSBkZSBhcmJvbGFkbyBkZSA1IG1ldHJvcywgYXPDrSBjb21vIMOhcmVhcyB0ZW1wb3JhbG1lbnRlIGRlc3BvYmxhZGFzLCBwcm9kdWN0byBkZSBsYSBpbnRlcnZlbmNpw7NuIGh1bWFuYSBvIGNhdXNhcyBuYXR1cmFsZXMsIHF1ZSBzZSBlc3BlcmEgcXVlIHNlIHJlZ2VuZXJlbi4KCj5MYSBPcmdhbml6YWNpw7NuIHBhcmEgbGEgQWdyaWN1bHR1cmEgeSBsYSBBbGltZW50YWNpw7NuIChGQU8pIHByb3BvcmNpb25hIGluZm9ybWFjacOzbiBkZXRhbGxhZGEgc29icmUgbGEgY3ViaWVydGEgZm9yZXN0YWwgeSBlc3RpbWFjaW9uZXMgYWp1c3RhZGFzIGRlIGxhIGN1YmllcnRhIGZvcmVzdGFsLiBMYSBlbmN1ZXN0YSB1dGlsaXphIHVuYSBkZWZpbmljacOzbiB1bmlmb3JtZSBkZSBib3NxdWUuIEF1bnF1ZSBsYSBGQU8gcHJvcG9yY2lvbmEgdW4gZGVzZ2xvc2UgZGUgbGEgY3ViaWVydGEgZm9yZXN0YWwgZW50cmUgYm9zcXVlcyBuYXR1cmFsZXMgeSBwbGFudGFjaW9uZXMgcGFyYSBsb3MgcGHDrXNlcyBlbiBkZXNhcnJvbGxvLCBsb3MgZGF0b3MgZm9yZXN0YWxlcyB1dGlsaXphZG9zIHBhcmEgZGVyaXZhciBlc3RvcyBkYXRvcyBpbmRpY2Fkb3JlcyBubyByZWZsZWphbiBlc2UgZGVzZ2xvc2UuIExhIHN1cGVyZmljaWUgdGVycmVzdHJlIHRvdGFsIG5vIGluY2x1eWUgbGFzIG1hc2FzIGRlIGFndWEgY29udGluZW50YWxlcywgY29tbyBsb3MgcHJpbmNpcGFsZXMgcsOtb3MgeSBsYWdvcy4gTGFzIHZhcmlhY2lvbmVzIGRlIHVuIGHDsW8gYSBvdHJvIHB1ZWRlbiBkZWJlcnNlIGEgZGF0b3MgYWN0dWFsaXphZG9zIG8gcmV2aXNhZG9zIG1hcyBxdWUgYSBjYW1iaW9zIGVuIGVsIMOhcmVhLiBFbCBpbmRpY2Fkb3Igc2Ugb2J0aWVuZSBkaXZpZGllbmRvIGVsIMOhcmVhIHRvdGFsIGN1YmllcnRhIHBvciBib3NxdWVzIGRlIHVuIHBhw61zIHBvciBlbCDDoXJlYSB0b3RhbCBkZSB0aWVycmEgZGVsIHBhw61zLCB5IG11bHRpcGxpY8OhbmRvbG8gcG9yIDEwMC4KCj4qKkZvcm1hIGRlIGPDoWxjdWxvIGRlIGxhIHZhcmlhYmxlIDIzOioqIE5vIHBvc2VlIG1ldG9kb2xvZ8OtYSBkZWZpbmlkYSBwYXJhIGVsIGNhbGN1bG8uCgo+KipGb3JtYSBkZSBjw6FsY3VsbyBkZSBsYSB2YXJpYWJsZSAyNDoqKiBMYXMgZW1pc2lvbmVzIGRlIGRpw7N4aWRvIGRlIGNhcmJvbm8sIGVuIGdyYW4gcGFydGUgc3VicHJvZHVjdG9zIGRlIGxhIHByb2R1Y2Npw7NuIHkgZWwgdXNvIGRlIGVuZXJnw61hLCByZXByZXNlbnRhbiBsYSBtYXlvciBwYXJ0ZSBkZSBsb3MgZ2FzZXMgZGUgZWZlY3RvIGludmVybmFkZXJvLCBxdWUgZXN0w6FuIGFzb2NpYWRvcyBjb24gZWwgY2FsZW50YW1pZW50byBnbG9iYWwuIExhcyBlbWlzaW9uZXMgYW50cm9wb2fDqW5pY2FzIGRlIGRpw7N4aWRvIGRlIGNhcmJvbm8gcmVzdWx0YW4gcHJpbmNpcGFsbWVudGUgZGUgbGEgcXVlbWEgZGUgY29tYnVzdGlibGVzIGbDs3NpbGVzIHkgbGEgZmFicmljYWNpw7NuIGRlIGNlbWVudG8uIEVuIGxhIGNvbWJ1c3Rpw7NuLCBkaWZlcmVudGVzIGNvbWJ1c3RpYmxlcyBmw7NzaWxlcyBsaWJlcmFuIGRpZmVyZW50ZXMgY2FudGlkYWRlcyBkZSBkacOzeGlkbyBkZSBjYXJib25vIHBhcmEgZWwgbWlzbW8gbml2ZWwgZGUgdXNvIGRlIGVuZXJnw61hOiBlbCBwZXRyw7NsZW8gbGliZXJhIGFwcm94aW1hZGFtZW50ZSB1biA1MCBwb3IgY2llbnRvIG3DoXMgZGUgZGnDs3hpZG8gZGUgY2FyYm9ubyBxdWUgZWwgZ2FzIG5hdHVyYWwgeSBlbCBjYXJiw7NuIGxpYmVyYSBhcHJveGltYWRhbWVudGUgZWwgZG9ibGUuIExhIGZhYnJpY2FjacOzbiBkZSBjZW1lbnRvIGxpYmVyYSBhbHJlZGVkb3IgZGUgbWVkaWEgdG9uZWxhZGEgbcOpdHJpY2EgZGUgZGnDs3hpZG8gZGUgY2FyYm9ubyBwb3IgY2FkYSB0b25lbGFkYSBtw6l0cmljYSBkZSBjZW1lbnRvIHByb2R1Y2lkby4gTG9zIGRhdG9zIGRlIGxhcyBlbWlzaW9uZXMgZGUgZGnDs3hpZG8gZGUgY2FyYm9ubyBpbmNsdXllbiBsb3MgZ2FzZXMgZGUgbGEgcXVlbWEgZGUgY29tYnVzdGlibGVzIGbDs3NpbGVzIHkgbGEgZmFicmljYWNpw7NuIGRlIGNlbWVudG8sIHBlcm8gZXhjbHV5ZW4gbGFzIGVtaXNpb25lcyBkZWwgdXNvIGRlIGxhIHRpZXJyYSwgY29tbyBsYSBkZWZvcmVzdGFjacOzbi4KCj4qKkZvcm1hIGRlIGPDoWxjdWxvIGRlIGxhIHZhcmlhYmxlIDI1OioqIExvcyBkYXRvcyBwcm92aWVuZW4gZGVsIFByb2dyYW1hIGRlIE1vbml0b3JlbyBDb25qdW50byBkZSBsYSBPcmdhbml6YWNpw7NuIE11bmRpYWwgZGUgbGEgU2FsdWQgKE9NUykgeSBlbCBGb25kbyBkZSBsYXMgTmFjaW9uZXMgVW5pZGFzIHBhcmEgbGEgSW5mYW5jaWEgKFVOSUNFRikgY29uIGJhc2UgZW4gY2Vuc29zIG5hY2lvbmFsZXMgeSBlbmN1ZXN0YXMgZGUgaG9nYXJlcyByZXByZXNlbnRhdGl2YXMgYSBuaXZlbCBuYWNpb25hbC4gTGFzIHRhc2FzIGRlIGNvYmVydHVyYSBkZSBhZ3VhIHkgc2FuZWFtaWVudG8gc2UgYmFzYW4gZW4gaW5mb3JtYWNpw7NuIGRlIGxvcyB1c3VhcmlvcyBkZWwgc2VydmljaW8uIGVuIGxhcyBpbnN0YWxhY2lvbmVzIHF1ZSBzdXMgaG9nYXJlcyByZWFsbWVudGUgdXNhbiBlbiBsdWdhciBkZSBlbiBsYSBpbmZvcm1hY2nDs24gZGUgbG9zIHByb3ZlZWRvcmVzIGRlIHNlcnZpY2lvcywgcXVlIHB1ZWRlbiBpbmNsdWlyIHNpc3RlbWFzIHF1ZSBubyBmdW5jaW9uYW4uCgo+TGEgT01TL1VOSUNFRiBkZWZpbmUgdW5hIGZ1ZW50ZSBkZSBhZ3VhIHBvdGFibGUgbWVqb3JhZGEgY29tbyBhcXVlbGxhIHF1ZSwgcG9yIGxhIG5hdHVyYWxlemEgZGUgc3UgY29uc3RydWNjacOzbiBvIG1lZGlhbnRlIHVuYSBpbnRlcnZlbmNpw7NuIGFjdGl2YSwgZXN0w6EgcHJvdGVnaWRhIGRlIGxhIGNvbnRhbWluYWNpw7NuIGV4dGVyaW9yLCBlbiBwYXJ0aWN1bGFyIGRlIGxhIGNvbnRhbWluYWNpw7NuIGNvbiBtYXRlcmlhIGZlY2FsLiBMYXMgZnVlbnRlcyBkZSBhZ3VhIG1lam9yYWRhcyBpbmNsdXllbiBhZ3VhIGNvcnJpZW50ZSBlbiBsYSB2aXZpZW5kYSwgcGFyY2VsYSBvIHBhdGlvOyBhZ3VhIGNvcnJpZW50ZSBlbiBsYSBwYXJjZWxhIGRlbCB2ZWNpbm87IGdyaWZvL3R1YmVyw61hIHDDumJsaWNhOyBwb3pvIGVudHViYWRvL3BlcmZvcmFjacOzbjsgcG96byBleGNhdmFkbyBwcm90ZWdpZG87IG1hbmFudGlhbCBwcm90ZWdpZG87IHkgYWd1YSBkZSBsbHV2aWEuIiwKCj5Gb3JtYSBkZSBjw6FsY3VsbyBkZSBsYSB2YXJpYWJsZSAyNjogSW50ZXJuZXQgZXMgdW5hIHJlZCBpbmZvcm3DoXRpY2EgcMO6YmxpY2EgbXVuZGlhbC4gQnJpbmRhIGFjY2VzbyBhIHVuYSBzZXJpZSBkZSBzZXJ2aWNpb3MgZGUgY29tdW5pY2FjacOzbiwgaW5jbHVpZGEgbGEgV29ybGQgV2lkZSBXZWIsIHkgdHJhbnNwb3J0YSBhcmNoaXZvcyBkZSBjb3JyZW8gZWxlY3Ryw7NuaWNvLCBub3RpY2lhcywgZW50cmV0ZW5pbWllbnRvIHkgZGF0b3MsIGluZGVwZW5kaWVudGVtZW50ZSBkZWwgZGlzcG9zaXRpdm8gdXRpbGl6YWRvIChubyBzZSBzdXBvbmUgcXVlIHNlYSBzb2xvIGEgdHJhdsOpcyBkZSB1bmEgY29tcHV0YWRvcmE7IHRhbWJpw6luIHB1ZWRlIHNlciBwb3IgdGVsw6lmb25vIG3Ds3ZpbCwgUERBLCBtw6FxdWluYSBkZSBqdWVnb3MsIFRWIGRpZ2l0YWwsIGV0Yy4pLiBFbCBhY2Nlc28gcHVlZGUgc2VyIGEgdHJhdsOpcyBkZSB1bmEgcmVkIGZpamEgbyBtw7N2aWwuCgo+Rm9ybWEgZGUgY8OhbGN1bG8gZGUgbGEgdmFyaWFibGUgMjc6IFVuYSBsw61uZWEgdGVsZWbDs25pY2EgZmlqYSAoYW50ZXJpb3JtZW50ZSBkZW5vbWluYWRhIGzDrW5lYSB0ZWxlZsOzbmljYSBwcmluY2lwYWwgZW4gZnVuY2lvbmFtaWVudG8pIGVzIHVuYSBsw61uZWEgYWN0aXZhIHF1ZSBjb25lY3RhIGVsIGVxdWlwbyB0ZXJtaW5hbCBkZWwgYWJvbmFkbyBhIGxhIHJlZCB0ZWxlZsOzbmljYSBww7pibGljYSBjb25tdXRhZGEgKFBTVE4pIHkgcXVlIHRpZW5lIHVuIHB1ZXJ0byBkZWRpY2FkbyBlbiBlbCBlcXVpcG8gZGUgbGEgY2VudHJhbCB0ZWxlZsOzbmljYS4gRXN0ZSB0w6lybWlubyBlcyBzaW7Ds25pbW8gZGUgbGEgdMOpcm1pbm9zIGVzdGFjacOzbiBwcmluY2lwYWwgbyBsw61uZWEgZGUgaW50ZXJjYW1iaW8gZGlyZWN0byAoREVMKSBxdWUgc2UgdXNhbiBjb23Dum5tZW50ZSBlbiBsb3MgZG9jdW1lbnRvcyBkZSB0ZWxlY29tdW5pY2FjaW9uZXMuIFB1ZWRlIHF1ZSBubyBzZWEgbG8gbWlzbW8gcXVlIHVuYSBsw61uZWEgZGUgYWNjZXNvIG8gdW4gc3VzY3JpcHRvci4gRXN0byBkZWJlIGluY2x1aXIgZWwgbsO6bWVybyBhY3Rpdm8gZGUgbMOtbmVhcyB0ZWxlZsOzbmljYXMgZmlqYXMgYW5hbMOzZ2ljYXMsIGNhbmFsZXMgSVNETiwgaW5hbMOhbWJyaWNvIGZpam8sIHRlbMOpZm9ub3MgcMO6YmxpY29zIHkgc3VzY3JpcGNpb25lcyBWb0lQIExhcyBsw61uZWFzIGFjdGl2YXMgc29uIGFxdWVsbGFzIHF1ZSBoYW4gcmVnaXN0cmFkbyBhY3RpdmlkYWQgZW4gbG9zIMO6bHRpbW9zIHRyZXMgbWVzZXMuCgo+TG9zIGRhdG9zIHNvYnJlIGxhcyBsw61uZWFzIHRlbGVmw7NuaWNhcyBmaWphcyBzZSBkZXJpdmFuIGRlIGxvcyBkYXRvcyBhZG1pbmlzdHJhdGl2b3MgcXVlIGxvcyBwYcOtc2VzIChwb3IgbG8gZ2VuZXJhbCwgbGEgYXV0b3JpZGFkIHJlZ3VsYWRvcmEgZGUgbGFzIHRlbGVjb211bmljYWNpb25lcyBvIGVsIE1pbmlzdGVyaW8gYSBjYXJnbyBkZSBsYXMgdGVsZWNvbXVuaWNhY2lvbmVzKSByZWNvcGlsYW4gcmVndWxhcm1lbnRlLCB5IGFsIG1lbm9zIGFudWFsbWVudGUsIGRlIGxvcyBvcGVyYWRvcmVzIGRlIHRlbGVjb211bmljYWNpb25lcy4gTG9zIGRhdG9zIHNlIGNvbnNpZGVyYW4gbXV5IGNvbmZpYWJsZXMsIG9wb3J0dW5vcyB5IGNvbXBsZXRvcy4KCj5Mb3MgZGF0b3MgcGFyYSBlc3RlIGluZGljYWRvciBlc3TDoW4gZsOhY2lsbWVudGUgZGlzcG9uaWJsZXMgcGFyYSBhcHJveGltYWRhbWVudGUgZWwgOTAgcG9yIGNpZW50byBkZSBsb3MgcGHDrXNlcywgeWEgc2VhIGEgdHJhdsOpcyBkZSBsb3MgY3Vlc3Rpb25hcmlvcyBkZSBJbmRpY2Fkb3JlcyBNdW5kaWFsZXMgZGUgVGVsZWNvbXVuaWNhY2lvbmVzIGRlIGxhIFVJVCBvIGRlIGxhIGluZm9ybWFjacOzbiBvZmljaWFsIGRpc3BvbmlibGUgZW4gZWwgc2l0aW8gd2ViIGRlbCBNaW5pc3RlcmlvIG8gZGVsIFJlZ3VsYWRvci4gUG9yIGxvIGRlbcOhcywgbGEgaW5mb3JtYWNpw7NuIHB1ZWRlIGFncmVnYXJzZSBhIHRyYXbDqXMgZGUgbG9zIGRhdG9zIGRlIGxvcyBvcGVyYWRvcmVzIChwcmluY2lwYWxtZW50ZSBhIHRyYXbDqXMgZGUgaW5mb3JtZXMgYW51YWxlcykgeSBjb21wbGVtZW50YXJzZSBjb24gaW5mb3JtZXMgZGUgaW52ZXN0aWdhY2nDs24gZGUgbWVyY2Fkby4KCj5FbCBpbmRpY2Fkb3IgZGUgbMOtbmVhcyB0ZWxlZsOzbmljYXMgKHBvciBjYWRhIDEwMCBwZXJzb25hcykgc2Ugb2J0aWVuZSBkaXZpZGllbmRvIHRvZGFzIGxhcyBsw61uZWFzIHRlbGVmw7NuaWNhcyBwb3IgbGEgcG9ibGFjacOzbiBkZWwgcGHDrXMgeSBtdWx0aXBsaWNhbmRvIHBvciAxMDAiCiAgICAgIApgYGB7ciwgZWNobz1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSkKICAgICAgICAgICAgICAgICAgICAgIApsaWJyYXJ5KHJlYWR4bCkKbGlicmFyeShkcGx5cikKCgpCYXRlcmlhIDwtCiAgcmVhZF9leGNlbCggCiAgICAoIn4vRGVza3RvcC91ZXNfMjAyMy9kZXNhcnJvbGxvIEkvSW5kaWNhZG9yZXNFREQueGxzeCIpLAogICAgY29sX3R5cGVzID0gYygKICAgICAgInRleHQiLCAidGV4dCIsICJ0ZXh0IiwgInRleHQiLCJudW1lcmljIiwibnVtZXJpYyIsIm51bWVyaWMiLCJudW1lcmljIiwKICAgICAgIm51bWVyaWMiLCJudW1lcmljIiwibnVtZXJpYyIsIm51bWVyaWMiLCJudW1lcmljIiwibnVtZXJpYyIsIm51bWVyaWMiCiAgICApCiAgKQoKYGBgCgoKYGBge3J9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UpCgpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeSh0aWR5cikKCmJhdGVyaWEgPC0gQmF0ZXJpYVssIC0yXQoKYmF0ZXJpYV8xIDwtCiAgYmF0ZXJpYSAlPiUgcGl2b3RfbG9uZ2VyKDQ6MTQsIG5hbWVzX3RvID0gIlllYXJzIiwgdmFsdWVzX3RvID0gIkluZGljYWRvcmVzIikKdmlldyhiYXRlcmlhXzEpCgpCYXRlcmlhX09yZGVuYWRhIDwtCiAgYmF0ZXJpYV8xICU+JSBwaXZvdF93aWRlcigxOjMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc19mcm9tID0gYFNlcmllcyBOYW1lYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc19mcm9tID0gYygiSW5kaWNhZG9yZXMiKSkKCkJhdGVyaWFfT3JkZW5hZGEgJT4lIGFycmFuZ2UoYENvdW50cnkgTmFtZWApIC0+IEJhdGVyaWFfT3JkZW5hZGEKdmlldyhCYXRlcmlhX09yZGVuYWRhKQoKbGlicmFyeShEVCkKQmF0ZXJpYV9PcmRlbmFkYV8xIDwtIGFzLmRhdGEuZnJhbWUoQmF0ZXJpYV9PcmRlbmFkYSkKYGBgCgoKYGBge3J9CgpCYXRlcmlhX09yZGVuYWRhXzFbaXMubmEoQmF0ZXJpYV9PcmRlbmFkYV8xKV0gPC0gMApsaWJyYXJ5KGRwbHlyKQpuYW1lcyhCYXRlcmlhX09yZGVuYWRhXzEpID0gYygiQ291bnRyeSBOYW1lIiwiQ291bnRyeSBDb2RlIiwiWWVhcnMiLCJYMSIsICJYMiIsICJYMyIsICJYNCIsICJYNSIsICJYNiIsICJYNyIsICJYOCIsIlg5IiwgIlgxMCIsICJYMTEiLCAiWDEyIiwgIlgxMyIsICJYMTQiLCAiWDE1IiwgIlgxNiIsIlgxNyIsICJYMTgiLCAiWDE5IiwgIlgyMCIsICJYMjEiLCAiWDIyIiwgIlgyMyIsICJYMjQiLCJYMjUiLCAiWDI2IiwgIlgyNyIpCnZpZXcoQmF0ZXJpYV9PcmRlbmFkYV8xKQpgYGAKCiMjICpJbmRpY2Fkb3IgZWNvbm9taWNvKgpgYGB7cn0KQmF0ZXJpYV9PcmRlbmFkYV8xW2lzLm5hKEJhdGVyaWFfT3JkZW5hZGFfMSldIDwtIDAKbGlicmFyeShQZXJmb3JtYW5jZUFuYWx5dGljcykKbGlicmFyeShkcGx5cikgIApJbmRpY2Fkb3JfRWNvbm9taWNvPC1zZWxlY3QoQmF0ZXJpYV9PcmRlbmFkYV8xLCJYMSIsIlgzIiwiWDUiLCJYNiIsIlgxNiIsIlgyNCIsIlgyNiIpCgpjaGFydC5Db3JyZWxhdGlvbihJbmRpY2Fkb3JfRWNvbm9taWNvKQpgYGAKCiMjICpJbmRpY2Fkb3IgYW1iaWVudGFsKgpgYGB7cn0KQmF0ZXJpYV9PcmRlbmFkYV8xW2lzLm5hKEJhdGVyaWFfT3JkZW5hZGFfMSldIDwtIDAKbGlicmFyeShQZXJmb3JtYW5jZUFuYWx5dGljcykKbGlicmFyeShkcGx5cikgIApJbmRpY2Fkb3JfQW1iaWVudGFsPC1zZWxlY3QoQmF0ZXJpYV9PcmRlbmFkYV8xLCJYMiIsIlg0IiwiWDE1IiwiWDIzIikKCmNoYXJ0LkNvcnJlbGF0aW9uKEluZGljYWRvcl9BbWJpZW50YWwpCmBgYAoKIyMgKkluZGljYWRvciBodW1hbm8qCmBgYHtyfQpCYXRlcmlhX09yZGVuYWRhXzFbaXMubmEoQmF0ZXJpYV9PcmRlbmFkYV8xKV0gPC0gMApsaWJyYXJ5KFBlcmZvcm1hbmNlQW5hbHl0aWNzKQpsaWJyYXJ5KGRwbHlyKSAgCkluZGljYWRvcl9IdW1hbm88LXNlbGVjdChCYXRlcmlhX09yZGVuYWRhXzEsIlg4IiwiWDkiLCJYMTAiLCJYMTEiLCJYMTIiLCJYMTMiLCJYMTciLCJYMTgiLCJYMTkiLCJYMjEiLCJYMjIiLCJYMjUiLCJYMjciKQoKY2hhcnQuQ29ycmVsYXRpb24oSW5kaWNhZG9yX0h1bWFubykKYGBgCgojIyAqSW5kaWNhZG9yIFRlY25vbG9naWNvKgpgYGB7cn0KQmF0ZXJpYV9PcmRlbmFkYV8xW2lzLm5hKEJhdGVyaWFfT3JkZW5hZGFfMSldIDwtIDAKbGlicmFyeShQZXJmb3JtYW5jZUFuYWx5dGljcykKbGlicmFyeShkcGx5cikgIApJbmRpY2Fkb3JfVGVjbm9sb2dpY288LXNlbGVjdChCYXRlcmlhX09yZGVuYWRhXzEsIlgxNCIsIlgyMCIpCgpjaGFydC5Db3JyZWxhdGlvbihJbmRpY2Fkb3JfVGVjbm9sb2dpY28pCmBgYAoKIyAqKjMuIEFuw6FsaXNpcyBjcsOtdGljbyBkZSBsb3MgaW5kaWNhZG9yZXMgcHJvcHVlc3RvcywgZGVzZGUgbGEgcGVyc3BlY3RpdmEgb3J0b2RveGEgeSBzdSBkZWNvbnN0cnVjY2nDs24qKgojIyBEaW1lbnNpb24gZWNvbsOzbWljYQogICAgCj5FbCBhbsOhbGlzaXMgY3LDrXRpY28gZGVsIGluZGljYWRvciBlY29uw7NtaWNvIGRlc2RlIHVuYSBwZXJzcGVjdGl2YSBvcnRvZG94YSBlcyBhcXVlbCBxdWUgc2UgYmFzYSBlbiBsYSBpZGVhIGRlIHF1ZSBlbCBpbmRpY2Fkb3IgZWNvbsOzbWljbyBlcyB1bmEgbWVkaWRhIG9iamV0aXZhIHkgY3VhbnRpZmljYWJsZSBkZWwgY3JlY2ltaWVudG8gZWNvbsOzbWljbyBkZSB1biBwYcOtcy4gCgo+RXN0YSBwZXJzcGVjdGl2YSBvcnRvZG94YSBzZSBlbmZvY2EgZW4gZWwgYW7DoWxpc2lzIGRlIGluZGljYWRvcmVzIGNvbW8gZWwgUElCLCBsYSBpbmZsYWNpw7NuLCBsYSB0YXNhIGRlIGRlc2VtcGxlbyB5IG90cm9zIGluZGljYWRvcmVzIHNpbWlsYXJlcy4gU2luIGVtYmFyZ28sIGFsZ3VuYXMgY3LDrXRpY2FzIHF1ZSBzZSBsZSBoYWNlbiBhIGVzdGUgZW5mb3F1ZSBlcyBxdWUgZXN0b3MgaW5kaWNhZG9yZXMgbm8gc2llbXByZSByZWZsZWphbiBlbCBiaWVuZXN0YXIgZWNvbsOzbWljbyBkZSBsYSBwb2JsYWNpw7NuIGVuIGdlbmVyYWwuIFBvciBlamVtcGxvLCBlbCBhdW1lbnRvIGRlbCBQSUIgbm8gbmVjZXNhcmlhbWVudGUgc2lnbmlmaWNhIHVuYSBtZWpvcmEgZW4gbGEgY2FsaWRhZCBkZSB2aWRhIGRlIGxvcyBjaXVkYWRhbm9zLCB5YSBxdWUgbm8gbWlkZSBsYSBkaXN0cmlidWNpw7NuIGRlbCBpbmdyZXNvIG8gbGEgY2FsaWRhZCBkZSBsb3Mgc2VydmljaW9zIHDDumJsaWNvcy4gUG9yIGxvIHRhbnRvLCBsYSBkZWNvbnN0cnVjY2nDs24gZGUgZXN0ZSBlbmZvcXVlIG9ydG9kb3hvIGltcGxpY2EgdW5hIHJldmlzacOzbiBjcsOtdGljYSBkZSBlc3RvcyBpbmRpY2Fkb3JlcyBlY29uw7NtaWNvcyBwYXJhIGVudGVuZGVyIHN1cyBsaW1pdGFjaW9uZXMgeSBwYXJhIGlkZW50aWZpY2FyIG90cmFzIGZvcm1hcyBkZSBtZWRpciBlbCBkZXNhcnJvbGxvIGVjb27Ds21pY28gcXVlIHRlbmdhbiBlbiBjdWVudGEgb3Ryb3MgZmFjdG9yZXMgaW1wb3J0YW50ZXMsIGNvbW8gbGEgc29zdGVuaWJpbGlkYWQgYW1iaWVudGFsIHkgc29jaWFsLiAKCiMjIyBOb3JtYWxpemFjacOzbiBkZSBsYSBEYXRhCmBgYHtyfQpsaWJyYXJ5KGRwbHlyKQpub3JtX2RpcmVjdGE8LWZ1bmN0aW9uKHgpeyh4LW1pbih4KSkvKG1heCh4KS1taW4oeCkpfQpub3JtX2ludmVyc2E8LWZ1bmN0aW9uKHgpeyhtYXgoeCkteCkvKG1heCh4KS1taW4oeCkpfQoKQmF0ZXJpYV9PcmRlbmFkYV8xICU+JSAKICBzZWxlY3QoWDYpICU+JSAKICBhcHBseShNQVJHSU4gPSAyLEZVTiA9IG5vcm1fZGlyZWN0YSkgJT4lIGFzLmRhdGEuZnJhbWUoKS0+dmFyaWFibGVzX2NvcnJfcG9zaXRpdmFfRWNvbm9taWNhCgpCYXRlcmlhX09yZGVuYWRhXzEgJT4lIAogIHNlbGVjdChYMSxYMyxYNSxYMTYsWDI0LFgyNikgJT4lIAogIGFwcGx5KE1BUkdJTiA9IDIsRlVOID0gbm9ybV9pbnZlcnNhKSAlPiUgYXMuZGF0YS5mcmFtZSgpLT52YXJpYWJsZXNfY29ycl9uZWdhdGl2YV9FY29ub21pY2EKCnZhcmlhYmxlc19jb3JyX3Bvc2l0aXZhX0Vjb25vbWljYSAlPiUgCiAgYmluZF9jb2xzKHZhcmlhYmxlc19jb3JyX25lZ2F0aXZhX0Vjb25vbWljYSkgJT4lIAogIHNlbGVjdChYMSxYMyxYNSxYNixYMTYsWDI0LFgyNiktPmRhdG9zX2Vjb25vbWljYV9ub3JtYWxpemFkb3MKCmhlYWQoZGF0b3NfZWNvbm9taWNhX25vcm1hbGl6YWRvcykKcHJpbnQobm9ybV9kaXJlY3RhKQpgYGAKCj5BbCByZWFsaXphciBlbCBwcm9jZWRpbWllbnRvIGRlIHBvbmRlcmFjaW9uIHBvciBtZWRpbyBkZWwgbWV0b2RvIGplcmFycXVpY28gc2Ugb2J0dXZvIHF1ZToKICAKPkxhIHZhcmlhYmxlIHF1ZSBtYXMgcGVzbyB0aWVuZSBlbiBlbCBpbmRpY2Fkb3IgZGUgY3JlY2ltaWVudG8gZXMgbGEgRm9ybWFjaW9uIEJydXRhIGRlIENhcGl0YWwgKFgxKSBjb24gZWwgMzguNiUuIExhIHNlZ3VuZGEgdmFyaWFibGUgY29tbyBtYXlvciBwb25kZXJhY2lvbiBvYnRlbmlkYSBmdWUgbGEgUElCIChYMikgY29uIGVsIDE5LjMlLiBMYSB0ZXJjZXIgdmFyaWFibGUgY29tbyBtYXMgcG9uZGVyYWNpb24gZnVlIGVsIFBJQiBwb3IgcGVyc29uYSBlbXBsZWFkYSAoWDMpIGNvbiBlbCAxMi45JS4KICAgIAo+U2Vnw7puIGxvIGFudGVyaW9yLCBlbCBpbmRpY2Fkb3IgZGUgY3JlY2ltaWVudG8sIGVzIGV4cGxpY2FkbyBlbiB1bmEgNzAuOCUgcG9yIGxhIGZvcm1hY2lvbiBicnV0YSBkZSBjYXBpdGFsLCBlbCBQSUIgeSBlbCBQaWIgcG9yIHBlcnNvbmEgZW1wbGVhZGEuCgo+UG9yIGVsIGNvbnRyYXJpbyBsYXMgb3RyYXMgdmFyaWJsZXMgcXVlIHJlcHJlc2VudGEgZWwgMjkuMiUgZGUgZXhwbGljYWNpb24gZGVsIGluZGljYWRvci4KCiMjIFBPTkRFUkFDSU9OIERJTUVOU0lPTiBFQ09OT01JQ0EKPkFuYWxpc2lzIGRlIGxhcyB2YXJpYWJsZXMgbWF5b3IgcG9uZGVyYWRhcwpQYXJhIGFuYWxpemFyIGVzdGUgaW5kaWNhZG9yIHByaW1lcm8gc2UgYW5hbGl6YXJhbiBlbCBjb21wb3J0YW1pZW50byBkZSBsYXMgMyB2YXJpYWJsZXMgcXVlIG1heW9yIHBvbmRlcmFjaW9uIG9idHV2aWVyb24uCgoqKkplcmFycXVpYSBSZWNpcHJvY2EqKgpgYGB7cn0KbGlicmFyeShtYWdyaXR0cikKI1ZlY3RvciBkZSBKZXJhcnF1w61hcwpyal9FY29ub21pY2E8LWMoMSwyLDMsNCw1LDYsNykKbmFtZXMocmpfRWNvbm9taWNhKTwtYygiWDEiLCJYMyIsIlg1IiwiWDYiLCJYMTYiLCJYMjQiLCJYMjYiKQoKI0Z1bmNpw7NuIHBhcmEgZ2VuZXJhciBsb3MgcGVzb3MKcG9uZGVyYWRvcmVzX3N1YmpldGl2b3NfcmFua19yZWNpcHJvY29fRWNvbm9taWNhPC1mdW5jdGlvbih2ZWN0b3JfamVyYXJxdWlhcyl7CiAgdmVjdG9yX3Blc29zX0Vjb25vbWljYTwtMS92ZWN0b3JfamVyYXJxdWlhcwogIGxpc3Qod19icnV0b3M9dmVjdG9yX3Blc29zX0Vjb25vbWljYSx3X25vcm1hbGl6YWRvcz12ZWN0b3JfcGVzb3NfRWNvbm9taWNhL3N1bSh2ZWN0b3JfcGVzb3NfRWNvbm9taWNhKSkKfQoKI0FwbGljYW5kbyBsYSBmdW5jacOzbjoKcGVzb3NfcmFua2luZ19yZWNpcHJvY29fRWNvbm9taWNhPC1wb25kZXJhZG9yZXNfc3ViamV0aXZvc19yYW5rX3JlY2lwcm9jb19FY29ub21pY2EocmpfRWNvbm9taWNhKQoKI1Blc29zIGJydXRvcwpwZXNvc19yYW5raW5nX3JlY2lwcm9jb19FY29ub21pY2Ekd19icnV0b3MKYGBgCgoKYGBge3J9CiNQZXNvcyBub3JtYWxpemFkb3MKcGVzb3NfcmFua2luZ19yZWNpcHJvY29fRWNvbm9taWNhJHdfbm9ybWFsaXphZG9zICU+JSByb3VuZChkaWdpdHMgPSAzKQojR3LDoWZpY28gZGUgbG9zIHBlc29zIG5vcm1hbGl6YWRvcwpiYXJwbG90KHBlc29zX3JhbmtpbmdfcmVjaXByb2NvX0Vjb25vbWljYSR3X25vcm1hbGl6YWRvcywKICAgICAgICBtYWluID0gIlBvbmRlcmFkb3JlcyBSYW5raW5nIFJlY8OtcHJvY28iLAogICAgICAgIHlsaW0gPSBjKDAsMC40KSxjb2wgPSAieWVsbG93IikKYGBgCgojIyBESU1FTlNJT04gQU1CSUVOVEFMCgo+RWwgYW7DoWxpc2lzIGNyw610aWNvIGRlbCBpbmRpY2Fkb3IgYW1iaWVudGFsIGRlc2RlIHVuYSBwZXJzcGVjdGl2YSBvcnRvZG94YSBlcyBhcXVlbCBxdWUgc2UgYmFzYSBlbiBsYSBpZGVhIGRlIHF1ZSBsb3MgaW5kaWNhZG9yZXMgYW1iaWVudGFsZXMsIGNvbW8gbGFzIGVtaXNpb25lcyBkZSBnYXNlcyBkZSBlZmVjdG8gaW52ZXJuYWRlcm8sIGxhIGNhbGlkYWQgZGVsIGFpcmUgbyBsYSBkaXNwb25pYmlsaWRhZCBkZSBhZ3VhLCBzb24gbWVkaWRhcyBvYmpldGl2YXMgeSBjdWFudGlmaWNhYmxlcyBkZWwgZXN0YWRvIGRlbCBtZWRpbyBhbWJpZW50ZSBlbiB1biDDoXJlYSBkZXRlcm1pbmFkYS4gRXN0YSBwZXJzcGVjdGl2YSBvcnRvZG94YSBzZSBjZW50cmEgZW4gZWwgYW7DoWxpc2lzIGRlIGVzdG9zIGluZGljYWRvcmVzIGNvbW8gdW5hIGZvcm1hIGRlIG1lZGlyIGxhIHNvc3RlbmliaWxpZGFkIGFtYmllbnRhbC4gCiAgCj5TaW4gZW1iYXJnbywgYWxndW5hcyBjcsOtdGljYXMgcXVlIHNlIGxlIGhhY2VuIGEgZXN0ZSBlbmZvcXVlIGVzIHF1ZSBlc3RvcyBpbmRpY2Fkb3JlcyBubyBzaWVtcHJlIHJlZmxlamFuIGVsIGJpZW5lc3RhciBhbWJpZW50YWwgZGUgbGEgcG9ibGFjacOzbiBlbiBnZW5lcmFsLiBlbCBjYXNvIGVzIHVuYSByZWR1Y2Npw7NuIGRlIGVtaXNpb25lcyBkZSBnYXNlcyBkZSBlZmVjdG8gaW52ZXJuYWRlcm8gbm8gbmVjZXNhcmlhbWVudGUgc2lnbmlmaWNhIHVuYSBtZWpvcmEgZW4gbGEgY2FsaWRhZCBkZWwgYWlyZSBvIGVsIGFndWEsIHlhIHF1ZSBubyBtaWRlIGxhIGNvbnRhbWluYWNpw7NuIGdlbmVyYWRhIHBvciBvdHJhcyBmdWVudGVzLiBQb3IgbG8gdGFudG8sIGxhIGRlY29uc3RydWNjacOzbiBkZSBlc3RlIGVuZm9xdWUgb3J0b2RveG8gaW1wbGljYSB1bmEgcmV2aXNpw7NuIGNyw610aWNhIGRlIGVzdG9zIGluZGljYWRvcmVzIGFtYmllbnRhbGVzIHBhcmEgZW50ZW5kZXIgc3VzIGxpbWl0YWNpb25lcyB5IHBhcmEgaWRlbnRpZmljYXIgb3RyYXMgZm9ybWFzIGRlIG1lZGljacOzbiBxdWUgdGVuZ2FuIGVuIGN1ZW50YSBvdHJvcyBmYWN0b3JlcyBpbXBvcnRhbnRlcywgY29tbyBsYSBiaW9kaXZlcnNpZGFkIG8gbGEgZXF1aWRhZCBhbWJpZW50YWwuCgojIyBOT1JNQUxJWkFDSU9OIERFIExBIERBVEEKYGBge3J9CmxpYnJhcnkoZHBseXIpCm5vcm1fZGlyZWN0YTwtZnVuY3Rpb24oeCl7KHgtbWluKHgpKS8obWF4KHgpLW1pbih4KSl9Cm5vcm1faW52ZXJzYTwtZnVuY3Rpb24oeCl7KG1heCh4KS14KS8obWF4KHgpLW1pbih4KSl9CgpCYXRlcmlhX09yZGVuYWRhXzEgJT4lIAogIHNlbGVjdChYMTUpICU+JSAKICBhcHBseShNQVJHSU4gPSAyLEZVTiA9IG5vcm1fZGlyZWN0YSkgJT4lIGFzLmRhdGEuZnJhbWUoKS0+dmFyaWFibGVzX2NvcnJfcG9zaXRpdmFfQW1iaWVudGFsCgpCYXRlcmlhX09yZGVuYWRhXzEgJT4lIAogIHNlbGVjdChYMixYNCxYMjMpICU+JSAKICBhcHBseShNQVJHSU4gPSAyLEZVTiA9IG5vcm1faW52ZXJzYSkgJT4lIGFzLmRhdGEuZnJhbWUoKS0+dmFyaWFibGVzX2NvcnJfbmVnYXRpdmFfQW1iaWVudGFsCgp2YXJpYWJsZXNfY29ycl9wb3NpdGl2YV9BbWJpZW50YWwgJT4lIAogIGJpbmRfY29scyh2YXJpYWJsZXNfY29ycl9uZWdhdGl2YV9BbWJpZW50YWwpICU+JSAKICBzZWxlY3QoWDIsWDQsWDE1LFgyMyktPmRhdG9zX2FtYmllbnRhbF9ub3JtYWxpemFkb3MKCmhlYWQoZGF0b3NfYW1iaWVudGFsX25vcm1hbGl6YWRvcykKCmBgYAogCiMjICAgIFBPTkRFUkFDSU9OIERJTUVOU0lPTiBBTUJJRU5UQUwKKipKZXJhcnF1aWEgUmVjaXByb2NhKioKYGBge3J9CmxpYnJhcnkobWFncml0dHIpCiNWZWN0b3IgZGUgSmVyYXJxdcOtYXMKcmpfQW1iaWVudGFsPC1jKDEsMiwzLDQpCm5hbWVzKHJqX0FtYmllbnRhbCk8LWMoIlgyIiwiWDQiLCJYMTUiLCJYMjMiKQoKI0Z1bmNpw7NuIHBhcmEgZ2VuZXJhciBsb3MgcGVzb3MKcG9uZGVyYWRvcmVzX3N1YmpldGl2b3NfcmFua19yZWNpcHJvY29fQW1iaWVudGFsPC1mdW5jdGlvbih2ZWN0b3JfamVyYXJxdWlhcyl7CiAgdmVjdG9yX3Blc29zX0FtYmllbnRhbDwtMS92ZWN0b3JfamVyYXJxdWlhcwogIGxpc3Qod19icnV0b3M9dmVjdG9yX3Blc29zX0FtYmllbnRhbCx3X25vcm1hbGl6YWRvcz12ZWN0b3JfcGVzb3NfQW1iaWVudGFsL3N1bSh2ZWN0b3JfcGVzb3NfQW1iaWVudGFsKSkKfQojQXBsaWNhbmRvIGxhIGZ1bmNpw7NuOgpwZXNvc19yYW5raW5nX3JlY2lwcm9jb19BbWJpZW50YWw8LXBvbmRlcmFkb3Jlc19zdWJqZXRpdm9zX3JhbmtfcmVjaXByb2NvX0FtYmllbnRhbChyal9BbWJpZW50YWwpCgojUGVzb3MgYnJ1dG9zCnBlc29zX3JhbmtpbmdfcmVjaXByb2NvX0FtYmllbnRhbCR3X2JydXRvcwoKYGBgCgoKYGBge3J9CiNQZXNvcyBub3JtYWxpemFkb3MKcGVzb3NfcmFua2luZ19yZWNpcHJvY29fQW1iaWVudGFsJHdfbm9ybWFsaXphZG9zICU+JSByb3VuZChkaWdpdHMgPSAzKQojR3LDoWZpY28gZGUgbG9zIHBlc29zIG5vcm1hbGl6YWRvcwpiYXJwbG90KHBlc29zX3JhbmtpbmdfcmVjaXByb2NvX0FtYmllbnRhbCR3X25vcm1hbGl6YWRvcywKICAgICAgICBtYWluID0gIlBvbmRlcmFkb3JlcyBSYW5raW5nIFJlY8OtcHJvY28iLAogICAgICAgIHlsaW0gPSBjKDAsMC41KSxjb2wgPSAiYmx1ZSIpCmBgYAoKIyMgRElNRU5TSU9OIEhVTUFOQQoKPkRlc2RlIHVuYSBwZXJzcGVjdGl2YSBvcnRvZG94YSwgZWwgaW5kaWNhZG9yIGh1bWFubyBzZSBlbmZvY2EgZW4gbWVkaXIgZWwgZGVzYXJyb2xsbyBodW1hbm8gYSB0cmF2w6lzIGRlbCDDjW5kaWNlIGRlIERlc2Fycm9sbG8gSHVtYW5vIChJREgpLCBxdWUgbWlkZSBlbCBwcm9ncmVzbyBlbiB0w6lybWlub3MgZGUgZXNwZXJhbnphIGRlIHZpZGEsIGVkdWNhY2nDs24gZSBpbmdyZXNvIHBlciBjw6FwaXRhLiBFc3RhIG1lZGlkYSBzZSB1dGlsaXphIHBhcmEgZXZhbHVhciBlbCBuaXZlbCBkZSBiaWVuZXN0YXIgZGUgbGEgcG9ibGFjacOzbiB5IGVsIHByb2dyZXNvIGRlIHVuIHBhw61zLiBTaW4gZW1iYXJnbywgdW5hIGNyw610aWNhIHF1ZSBzZSBsZSBoYWNlIGEgZXN0ZSBlbmZvcXVlIGVzIHF1ZSBlbCBJREggbm8gY29uc2lkZXJhIG90cm9zIGZhY3RvcmVzIGltcG9ydGFudGVzIHF1ZSBwdWVkZW4gYWZlY3RhciBlbCBkZXNhcnJvbGxvIGh1bWFubywgY29tbyBsYSBpZ3VhbGRhZCBkZSBnw6luZXJvLCBsYSBkaXN0cmlidWNpw7NuIGRlbCBpbmdyZXNvLCBsYSBjYWxpZGFkIGRlIHZpZGEsIGxhIHBhcnRpY2lwYWNpw7NuIGNpdWRhZGFuYSB5IGxhIGVxdWlkYWQgc29jaWFsLCBlbnRyZSBvdHJvcy4gUG9yIGxvIHRhbnRvLCBsYSBkZWNvbnN0cnVjY2nDs24gZGUgZXN0ZSBlbmZvcXVlIG9ydG9kb3hvIGltcGxpY2EgdW5hIHJldmlzacOzbiBjcsOtdGljYSBkZWwgSURIIHkgb3Ryb3MgaW5kaWNhZG9yZXMgaHVtYW5vcyBwYXJhIGVudGVuZGVyIHN1cyBsaW1pdGFjaW9uZXMgeSBwYXJhIGlkZW50aWZpY2FyIG90cmFzIGZvcm1hcyBkZSBtZWRpY2nDs24gcXVlIHRlbmdhbiBlbiBjdWVudGEgb3Ryb3MgZmFjdG9yZXMgaW1wb3J0YW50ZXMgcGFyYSBtZWRpciBlbCBkZXNhcnJvbGxvIGh1bWFubyBkZSBtYW5lcmEgbcOhcyBpbnRlZ3JhbCB5IGp1c3RhLgogICAgICAgIAo+RXMgaW1wb3J0YW50ZSBkZXN0YWNhciBxdWUgZWwgSURILCBhIHBlc2FyIGRlIHNlciBhbXBsaWFtZW50ZSB1dGlsaXphZG8gY29tbyB1biBpbmRpY2Fkb3IgZGVsIGRlc2Fycm9sbG8gaHVtYW5vLCBoYSBzaWRvIGNyaXRpY2FkbyBwb3Igbm8gc2VyIGxvIHN1ZmljaWVudGVtZW50ZSBpbmNsdXNpdm8uIEVsIElESCBubyBtaWRlIGxhIGRlc2lndWFsZGFkLCBsYSBkaXNjcmltaW5hY2nDs24gbyBsYSBleGNsdXNpw7NuIHNvY2lhbCwgbG8gcXVlIHNpZ25pZmljYSBxdWUgcHVlZGUgaGFiZXIgcGHDrXNlcyBjb24gdW4gYWx0byBJREggcXVlLCBzaW4gZW1iYXJnbywgdGllbmVuIHVuYSBncmFuIGJyZWNoYSBlbnRyZSByaWNvcyB5IHBvYnJlcyBvIGRvbmRlIGFsZ3Vub3MgZ3J1cG9zIGRlIGxhIHBvYmxhY2nDs24gc29uIGRpc2NyaW1pbmFkb3MgbyBtYXJnaW5hZG9zLiBBZGVtw6FzLCBlbCBJREggeSBvdHJvcyBpbmRpY2Fkb3JlcyBzaW1pbGFyZXMgc2UgYmFzYW4gZW4gZGF0b3MgYWdyZWdhZG9zIHkgcHJvbWVkaW9zLCBsbyBxdWUgcHVlZGUgb2N1bHRhciBsYXMgZGVzaWd1YWxkYWRlcyBkZW50cm8gZGUgbG9zIHBhw61zZXMuIAogICAgICAgIAo+UG9yIGVqZW1wbG8sIHVuIHBhw61zIGNvbiB1bmEgYWx0YSBlc3BlcmFuemEgZGUgdmlkYSBwcm9tZWRpbyBwb2Ryw61hIHRlbmVyIGNvbXVuaWRhZGVzIHF1ZSBlbmZyZW50YW4gZ3JhdmVzIHByb2JsZW1hcyBkZSBzYWx1ZCB5IG1vcnRhbGlkYWQgaW5mYW50aWwuIFBvciBsbyB0YW50bywgbGEgZGVjb25zdHJ1Y2Npw7NuIGRlbCBlbmZvcXVlIG9ydG9kb3hvIGRlbCBpbmRpY2Fkb3IgaHVtYW5vIGltcGxpY2EgdW4gY2FtYmlvIGhhY2lhIGVuZm9xdWVzIG3DoXMgaW5jbHVzaXZvcyB5IGhvbMOtc3RpY29zLiBFc3RvIGluY2x1eWUgbGEgaW5jb3Jwb3JhY2nDs24gZGUgb3Ryb3MgZmFjdG9yZXMgaW1wb3J0YW50ZXMsIGNvbW8gbGEgY2FsaWRhZCBkZSB2aWRhLCBsYSBzZWd1cmlkYWQgYWxpbWVudGFyaWEsIGxhIHNhbHVkIG1lbnRhbCwgbGEgZXF1aWRhZCBkZSBnw6luZXJvLCBsYSBkaXZlcnNpZGFkIGN1bHR1cmFsIHkgbGEgcGFydGljaXBhY2nDs24gY2l1ZGFkYW5hLiBUYW1iacOpbiBpbXBsaWNhIHVuYSBtYXlvciBwYXJ0aWNpcGFjacOzbiBkZSBsYXMgY29tdW5pZGFkZXMgeSBncnVwb3MgbWFyZ2luYWRvcyBlbiBlbCBwcm9jZXNvIGRlIG1lZGljacOzbiBkZWwgZGVzYXJyb2xsbyBodW1hbm8sIHBhcmEgZ2FyYW50aXphciBxdWUgc2UgcmVmbGVqZW4gc3VzIG5lY2VzaWRhZGVzIHkgcHJlb2N1cGFjaW9uZXMgZW4gbG9zIGluZGljYWRvcmVzLgoKIyMgTk9STUFMSVpBQ0lPTiBERSBMQSBEQVRBCmBgYHtyfQpsaWJyYXJ5KGRwbHlyKQpub3JtX2RpcmVjdGE8LWZ1bmN0aW9uKHgpeyh4LW1pbih4KSkvKG1heCh4KS1taW4oeCkpfQpub3JtX2ludmVyc2E8LWZ1bmN0aW9uKHgpeyhtYXgoeCkteCkvKG1heCh4KS1taW4oeCkpfQoKQmF0ZXJpYV9PcmRlbmFkYV8xICU+JSAKICBzZWxlY3QoWDEzKSAlPiUgCiAgYXBwbHkoTUFSR0lOID0gMixGVU4gPSBub3JtX2RpcmVjdGEpICU+JSBhcy5kYXRhLmZyYW1lKCktPnZhcmlhYmxlc19jb3JyX3Bvc2l0aXZhX0h1bWFuYQoKQmF0ZXJpYV9PcmRlbmFkYV8xICU+JSAKICBzZWxlY3QoWDgsWDksWDEwLFgxMSxYMTIsWDE3LFgxOCxYMTksWDIxLFgyMixYMjUsWDI3KSAlPiUgCiAgYXBwbHkoTUFSR0lOID0gMixGVU4gPSBub3JtX2ludmVyc2EpICU+JSBhcy5kYXRhLmZyYW1lKCktPnZhcmlhYmxlc19jb3JyX25lZ2F0aXZhX0h1bWFuYQoKdmFyaWFibGVzX2NvcnJfcG9zaXRpdmFfSHVtYW5hICU+JSAKICBiaW5kX2NvbHModmFyaWFibGVzX2NvcnJfbmVnYXRpdmFfSHVtYW5hKSAlPiUgCiAgc2VsZWN0KFg4LFg5LFgxMCxYMTEsWDEyLFgxMyxYMTcsWDE4LFgxOSxYMjEsWDIyLFgyNSxYMjcpLT5kYXRvc19odW1hbmFfbm9ybWFsaXphZG9zCgpoZWFkKGRhdG9zX2h1bWFuYV9ub3JtYWxpemFkb3MpCgpgYGAKCiMjIFBPTkRFUkFDSU9OIERJTUVOU0lPTiBIVU1BTkEKKipKZXJhcnF1aWEgUmVjaXByb2NhKioKYGBge3J9CmxpYnJhcnkobWFncml0dHIpCiNWZWN0b3IgZGUgSmVyYXJxdcOtYXMKcmpfSHVtYW5hPC1jKDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzKQpuYW1lcyhyal9IdW1hbmEpPC1jKCJYOCIsIlg5IiwiWDEwIiwiWDExIiwiWDEyIiwiWDEzIiwiWDE3IiwiWDE4IiwiWDE5IiwiWDIxIiwiWDIyIiwiWDI1IiwiWDI3IikKCiNGdW5jacOzbiBwYXJhIGdlbmVyYXIgbG9zIHBlc29zCnBvbmRlcmFkb3Jlc19zdWJqZXRpdm9zX3JhbmtfcmVjaXByb2NvX0h1bWFuYTwtZnVuY3Rpb24odmVjdG9yX2plcmFycXVpYXMpewogIHZlY3Rvcl9wZXNvc19IdW1hbmE8LTEvdmVjdG9yX2plcmFycXVpYXMKICBsaXN0KHdfYnJ1dG9zPXZlY3Rvcl9wZXNvc19IdW1hbmEsd19ub3JtYWxpemFkb3M9dmVjdG9yX3Blc29zX0h1bWFuYS9zdW0odmVjdG9yX3Blc29zX0h1bWFuYSkpCn0KI0FwbGljYW5kbyBsYSBmdW5jacOzbjoKcGVzb3NfcmFua2luZ19yZWNpcHJvY29fSHVtYW5hPC1wb25kZXJhZG9yZXNfc3ViamV0aXZvc19yYW5rX3JlY2lwcm9jb19IdW1hbmEocmpfSHVtYW5hKQoKI1Blc29zIGJydXRvcwpwZXNvc19yYW5raW5nX3JlY2lwcm9jb19IdW1hbmEkd19icnV0b3MKCmBgYAoKCmBgYHtyfQojUGVzb3Mgbm9ybWFsaXphZG9zCnBlc29zX3JhbmtpbmdfcmVjaXByb2NvX0h1bWFuYSR3X25vcm1hbGl6YWRvcyAlPiUgcm91bmQoZGlnaXRzID0gMykKI0dyw6FmaWNvIGRlIGxvcyBwZXNvcyBub3JtYWxpemFkb3MKYmFycGxvdChwZXNvc19yYW5raW5nX3JlY2lwcm9jb19IdW1hbmEkd19ub3JtYWxpemFkb3MsCiAgICAgICAgbWFpbiA9ICJQb25kZXJhZG9yZXMgUmFua2luZyBSZWPDrXByb2NvIiwKICAgICAgICB5bGltID0gYygwLDAuMiksY29sID0gInJlZCIpCmBgYAoKIyMgRElNRU5TSU9OIFRFQ05PTE9HSUNBCgogID5EZXNkZSBlc3RhIHBlcnNwZWN0aXZhLCBlbCBpbmRpY2Fkb3IgdGVjbm9sw7NnaWNvIHNlIHV0aWxpemEgcGFyYSBtZWRpciBlbCBuaXZlbCBkZSBhZG9wY2nDs24geSB1c28gZGUgbGEgdGVjbm9sb2fDrWEgZW4gdW5hIGVtcHJlc2EgbyBwYcOtcy4gU2UgY29uc2lkZXJhIHF1ZSB1bmEgbWF5b3IgYWRvcGNpw7NuIGRlIGxhIHRlY25vbG9nw61hIGVzIHVuIGluZGljYWRvciBkZSBtYXlvciBlZmljaWVuY2lhIHkgcHJvZHVjdGl2aWRhZCwgbG8gcXVlIHNlIHRyYWR1Y2UgZW4gdW4gbWF5b3IgY3JlY2ltaWVudG8gZWNvbsOzbWljby4KICAgIAogID5TaW4gZW1iYXJnbywgZXN0YSBwZXJzcGVjdGl2YSBvcnRvZG94YSBkZWwgaW5kaWNhZG9yIHRlY25vbMOzZ2ljbyBoYSBzaWRvIGNyaXRpY2FkYSBwb3Igc3UgZW5mb3F1ZSBsaW1pdGFkbyB5IHJlZHVjY2lvbmlzdGEgZGUgbGEgdGVjbm9sb2fDrWEuIExhIHRlY25vbG9nw61hIG5vIGVzIHNvbG8gdW4gbWVkaW8gcGFyYSBhbGNhbnphciBmaW5lcyBlY29uw7NtaWNvcywgc2lubyBxdWUgdGFtYmnDqW4gdGllbmUgaW1wbGljYWNpb25lcyBzb2NpYWxlcywgY3VsdHVyYWxlcyB5IHBvbMOtdGljYXMuCiAgICAKICA+TGEgZGVjb25zdHJ1Y2Npw7NuIGRlbCBpbmRpY2Fkb3IgdGVjbm9sw7NnaWNvIGltcGxpY2EgY3Vlc3Rpb25hciBzdSBzdXB1ZXN0byBvYmpldGl2byBkZSBtZWRpciBsYSBlZmljaWVuY2lhIHkgcHJvZHVjdGl2aWRhZCBkZSBsYSB0ZWNub2xvZ8OtYS4gRW4gc3UgbHVnYXIsIHNlIHByb3BvbmUgdW5hIHBlcnNwZWN0aXZhIG3DoXMgYW1wbGlhIHF1ZSBjb25zaWRlcmUgbGFzIGltcGxpY2FjaW9uZXMgc29jaWFsZXMsIGN1bHR1cmFsZXMgeSBwb2zDrXRpY2FzIGRlIGxhIHRlY25vbG9nw61hLgogICAgCiAgICA+RXN0byBpbXBsaWNhIGNvbnNpZGVyYXIgY8OzbW8gbGEgdGVjbm9sb2fDrWEgYWZlY3RhIGEgbGFzIHJlbGFjaW9uZXMgc29jaWFsZXMgeSBkZSBwb2RlciwgY8OzbW8gaW5mbHV5ZSBlbiBsYSBjdWx0dXJhIHkgbGEgaWRlbnRpZGFkLCB5IGPDs21vIHB1ZWRlIHRlbmVyIGltcGFjdG9zIG5lZ2F0aXZvcyBlbiBlbCBtZWRpbyBhbWJpZW50ZSB5IGxhIHNhbHVkLiBUYW1iacOpbiBpbXBsaWNhIGNvbnNpZGVyYXIgY8OzbW8gbGEgdGVjbm9sb2fDrWEgcHVlZGUgc2VyIHV0aWxpemFkYSBwYXJhIHByb21vdmVyIGxhIGp1c3RpY2lhIHNvY2lhbCB5IGxhIGVxdWlkYWQuCgojIyBOT1JNQUxJWkFDSU9OIERFIExBIERBVEEKYGBge3J9CmxpYnJhcnkoZHBseXIpCm5vcm1fZGlyZWN0YTwtZnVuY3Rpb24oeCl7KHgtbWluKHgpKS8obWF4KHgpLW1pbih4KSl9Cm5vcm1faW52ZXJzYTwtZnVuY3Rpb24oeCl7KG1heCh4KS14KS8obWF4KHgpLW1pbih4KSl9CgpCYXRlcmlhX09yZGVuYWRhXzEgJT4lIAogIHNlbGVjdChYMTQpICU+JSAKICBhcHBseShNQVJHSU4gPSAyLEZVTiA9IG5vcm1fZGlyZWN0YSkgJT4lIGFzLmRhdGEuZnJhbWUoKS0+dmFyaWFibGVzX2NvcnJfcG9zaXRpdmFfVGVjbm9sb2dpY2EKCkJhdGVyaWFfT3JkZW5hZGFfMSAlPiUgCiAgc2VsZWN0KFgyMCkgJT4lIAogIGFwcGx5KE1BUkdJTiA9IDIsRlVOID0gbm9ybV9pbnZlcnNhKSAlPiUgYXMuZGF0YS5mcmFtZSgpLT52YXJpYWJsZXNfY29ycl9uZWdhdGl2YV9UZWNub2xvZ2ljYQoKdmFyaWFibGVzX2NvcnJfcG9zaXRpdmFfVGVjbm9sb2dpY2EgJT4lIAogIGJpbmRfY29scyh2YXJpYWJsZXNfY29ycl9uZWdhdGl2YV9UZWNub2xvZ2ljYSkgJT4lIAogIHNlbGVjdChYMTQsWDIwKS0+ZGF0b3NfdGVjbm9sb2dpY2Ffbm9ybWFsaXphZG9zCgpoZWFkKGRhdG9zX3RlY25vbG9naWNhX25vcm1hbGl6YWRvcykKYGBgCgojIyAgICBQT05ERVJBQ0lPTiBESU1FTlNJT04gVEVDTk9MT0dJQ0EKKipKZXJhcnF1aWEgUmVjaXByb2NhKioKYGBge3J9CmxpYnJhcnkobWFncml0dHIpCiNWZWN0b3IgZGUgSmVyYXJxdcOtYXMKcmpfVGVjbm9sb2dpY2E8LWMoMSwyKQpuYW1lcyhyal9UZWNub2xvZ2ljYSk8LWMoIlgxNCIsIlgyMCIpCgojRnVuY2nDs24gcGFyYSBnZW5lcmFyIGxvcyBwZXNvcwpwb25kZXJhZG9yZXNfc3ViamV0aXZvc19yYW5rX3JlY2lwcm9jb19UZWNub2xvZ2ljYTwtZnVuY3Rpb24odmVjdG9yX2plcmFycXVpYXMpewogIHZlY3Rvcl9wZXNvc19UZWNub2xvZ2ljYTwtMS92ZWN0b3JfamVyYXJxdWlhcwogIGxpc3Qod19icnV0b3M9dmVjdG9yX3Blc29zX1RlY25vbG9naWNhLHdfbm9ybWFsaXphZG9zPXZlY3Rvcl9wZXNvc19UZWNub2xvZ2ljYS9zdW0odmVjdG9yX3Blc29zX1RlY25vbG9naWNhKSkKfQojQXBsaWNhbmRvIGxhIGZ1bmNpw7NuOgpwZXNvc19yYW5raW5nX3JlY2lwcm9jb19UZWNub2xvZ2ljYTwtcG9uZGVyYWRvcmVzX3N1YmpldGl2b3NfcmFua19yZWNpcHJvY29fVGVjbm9sb2dpY2EocmpfVGVjbm9sb2dpY2EpCgojUGVzb3MgYnJ1dG9zCnBlc29zX3JhbmtpbmdfcmVjaXByb2NvX1RlY25vbG9naWNhJHdfYnJ1dG9zCgpgYGAKCgpgYGB7cn0KI1Blc29zIG5vcm1hbGl6YWRvcwpwZXNvc19yYW5raW5nX3JlY2lwcm9jb19UZWNub2xvZ2ljYSR3X25vcm1hbGl6YWRvcyAlPiUgcm91bmQoZGlnaXRzID0gMykKI0dyw6FmaWNvIGRlIGxvcyBwZXNvcyBub3JtYWxpemFkb3MKYmFycGxvdChwZXNvc19yYW5raW5nX3JlY2lwcm9jb19UZWNub2xvZ2ljYSR3X25vcm1hbGl6YWRvcywKICAgICAgICBtYWluID0gIlBvbmRlcmFkb3JlcyBSYW5raW5nIFJlY8OtcHJvY28iLAogICAgICAgIHlsaW0gPSBjKDAsMC43KSxjb2wgPSAib3JhbmdlIikKYGBgCgojICoqNC4gQWxjYW5jZXMgeSBMaW1pdGFjaW9uZXMgZGUgbG9zIGluZGljYWRvcmVzIHByb3B1ZXN0b3MuKioKCiAgKipMSU1JVEFDSU9ORVMqKgogIAogID5GYWx0YSBkZSBpbmZvcm1hY2nDs246IHVuYSBkZSBsYXMgcHJpbmNpcGFsZXMgbGltaXRhY2lvbmVzIHBhcmEgbGEgcmVhbGl6YWNpw7NuIGRlIGVzdGUgZXN0dWRpbyBmdWUgbGEKICAgIGZhbHRhIGRlIGluZm9ybWFjacOzbiBkaXNwb25pYmxlIHBhcmEgY2FkYSB1bm8gZGUgbG9zIHBhw61zZXMgY29ycmVzcG9uZGllbnRlcyBlbiBudWVzdHJvIGVzdHVkaW8gZGVudHJvCiAgICBkZWwgcGVyaW9kbyBxdWUgc2UgdG9tw7MgcGFyYSBlbCBlc3R1ZGlvLiBQb3IgbG8gcXVlIG5vIHNlIGVuY29udHLDsyBpbmZvcm1hY2nDs24gY29tcGxldGEgcGFyYSBsYXMKICAgIHZhcmlhYmxlcyBzZWxlY2Npb25hZGFzIGRlIGFsZ3Vub3MgcGHDrXNlcyBjb21vIHBvciBlamVtcGxvIEtpcmliYXRpLCBNaWNyb25lc2lhLCBOYXVydSwgUGFsYXUsIGVudHJlCiAgICBvdHJvcy4gCiAgICAKICA+RWxlY2Npw7NuIGRlIHZhcmlhYmxlczogZWwgdGVtYSBkZWwgZGVzYXJyb2xsbyBlcyB1biB0ZW1hIG11eSBhbXBsaW8gcG9yIGxvIHF1ZSBhIGxhIGhvcmEgZGUgY29uc3RydWlyCiAgICBlbCBpbmRpY2Fkb3Igc2UgdHV2byBxdWUgc2VyIG1pbnVjaW9zbyBhIGxhIGhvcmEgZGUgc2VsZWNjaW9uYXIgbGFzIHZhcmlhYmxlcyBxdWUgcHVlZGEgZW5nbG9iYXIgZW4gc3UKICAgIG1heW9yIHBhcnRlIGVsIHRlbWEgZGUgZGVzYXJyb2xsbyB5IGFzw60gaGFjZXIgdW4gdHJhYmFqbyBtw6FzIGZpYWJsZS4KCiMjICAgIElORElDQURPUiBFQ09OT01JQ08KCiMjIyAgQUxDQU5DRSBESU1FTkNJT04gRUNPTk9NSUNBCgo+QWwgYW5hbGl6YXIgZXN0YXMgdmFyaWFibGVzLCBlcyBwb3NpYmxlIG9idGVuZXIgdW5hIGltYWdlbiBhbXBsaWEgZGVsIGRlc2Fycm9sbG8gZWNvbsOzbWljbyBkZSBPY2VhbsOtYS4gRXN0YSBpbmZvcm1hY2nDs24gc2UgcHVlZGUgdXRpbGl6YXIgcGFyYSBpZGVudGlmaWNhciBmb3J0YWxlemFzIHkgZGViaWxpZGFkZXMsIHkgcGFyYSBkZXNhcnJvbGxhciBwb2zDrXRpY2FzIHF1ZSBwcm9tdWV2YW4gdW4gbWF5b3IgZGVzYXJyb2xsby4gCj5VbiBtYXlvciBjcmVjaW1pZW50byBlY29uw7NtaWNvIHB1ZWRlIHByb3ZvY2FyIHVuIG1heW9yIGRlc2Fycm9sbG8gZWNvbsOzbWljbywgbGEgZWNvbm9tw61hIG9ydG9kb3hhIGNvbnNpZGVyYSBlc3RvIGNvbW8gdW5hIGNvbmRpY2nDs24gbmVjZXNhcmlhIAo+TGEgZWNvbm9tw61hIG9ydG9kb3hhIHNvc3RpZW5lIHF1ZSBlbCBjcmVjaW1pZW50byBlY29uw7NtaWNvIGVzIHVuYSBjb25kaWNpw7NuIG5lY2VzYXJpYSBwYXJhIGVsIGRlc2Fycm9sbG8gZWNvbsOzbWljby4gRXN0byBzZSBkZWJlIGEgcXVlIGVsIGNyZWNpbWllbnRvIGVjb27Ds21pY28gcHVlZGUgY29uZHVjaXIgYSBsYSBjcmVhY2nDs24gZGUgZW1wbGVvcywgbGEgbWVqb3JhIGRlIGxhIHJlY2F1ZGFjacOzbiBkZSBpbXB1ZXN0b3MgeSBsYSBpbnZlcnNpw7NuIGVuIGVkdWNhY2nDs24geSBzYWx1ZC4KCiMjIyAgIExJTUlUQUNJT05FUyBESU1FTkNJT04gRUNPTk9NSUNBCgo+TG9zIGRhdG9zIHV0aWxpemFkb3MgcGFyYSBtZWRpciBlbCBkZXNhcnJvbGxvIHB1ZWRlbiBzZXIgaW5leGFjdG9zIG8gaW5jb21wbGV0b3MuIEVzdG8gcHVlZGUgZGlmaWN1bHRhciBsYSBvYnRlbmNpw7NuIGRlIHVuYSBpbWFnZW4gY2xhcmEgZGVsIGVzdGFkbyBkZSBkZXNhcnJvbGxvIGRlIHVuIHBhw61zLiBlbiBudWVzdHJvIGVzdHVkaW8gZnVlIGxpbWl0YWRhIGxhIGluZm9ybWFjaW9uIHBhcmEgdG9kb3MgbG9zIHBhaXNlcyBkZSBsYSByZWdpw7NuLiAKPkVsIGNyZWNpbWllbnRvIGVjb27Ds21pY28gcHVlZGUgdGVuZXIgY29uc2VjdWVuY2lhcyBuZWdhdGl2YXMuIEVsIGNyZWNpbWllbnRvIGVjb27Ds21pY28gcHVlZGUgZ2VuZXJhciBkZXNpZ3VhbGRhZCwgZGVncmFkYWNpw7NuIGFtYmllbnRhbCB5IG90cmFzIGNvbnNlY3VlbmNpYXMgbmVnYXRpdmFzLiIKCgojIyMgQUxDQU5DRSBESU1FTkNJT04gREVTQVJST0xMTyBIVU1BTk8KCj5Fc3RvcyBpbmRpY2Fkb3JlcyBtaWRlbiB1bmEgYW1wbGlhIGdhbWEgZGUgYXNwZWN0b3MgZGVsIGRlc2Fycm9sbG8gaHVtYW5vLCBpbmNsdWlkb3MgbGEgc2FsdWQsIGxhIGVkdWNhY2nDs24geSBlbCBlbXBsZW8uCgojIyMgICAgTElNSVRBQ0lPTkVTIERJTUVOQ0lPTiBFQ09OT01JQ0EKCj5Mb3MgZGF0b3MgdXRpbGl6YWRvcyBwYXJhIG1lZGlyIGVsIGRlc2Fycm9sbG8gcHVlZGVuIHNlciBpbmV4YWN0b3MgbyBpbmNvbXBsZXRvcy4gRXN0byBwdWVkZSBkaWZpY3VsdGFyIGxhIG9idGVuY2nDs24gZGUgdW5hIGltYWdlbiBjbGFyYSBkZWwgZXN0YWRvIGRlIGRlc2Fycm9sbG8gZGUgdW4gcGHDrXMuIGVuIG51ZXN0cm8gZXN0dWRpbyBmdWUgbGltaXRhZGEgbGEgaW5mb3JtYWNpb24gcGFyYSB0b2RvcyBsb3MgcGFpc2VzIGRlIGxhIHJlZ2nDs24uCgo+TG9zIGluZGljYWRvcmVzIG5vIGNhcHR1cmFuIHRvZG9zIGxvcyBhc3BlY3RvcyBkZWwgZGVzYXJyb2xsbyBodW1hbm8uIFBvciBlamVtcGxvLCBubyBtaWRlbiBsYSBjYWxpZGFkIGRlIHZpZGEgbyBlbCBuaXZlbCBkZSBmZWxpY2lkYWQuCgojIyMgICBBTENBTkNFIERJTUVOQ0lPTiBBTUJJRU5UQUxFUwoKPlVuIGFsdG8gaW1wYWN0byBhbWJpZW50YWwgc3VnaWVyZSBxdWUgZWwgZGVzYXJyb2xsbyBubyBlcyBzb3N0ZW5pYmxlLgoKPkVzdG9zIGluZGljYWRvcmVzIG1pZGVuIHVuYSBhbXBsaWEgZ2FtYSBkZSBhc3BlY3RvcyBkZWwgZGVzYXJyb2xsbyBhbWJpZW50YWwsIGluY2x1aWRhIGxhIGN1YmllcnRhIGZvcmVzdGFsLCBsYXMgZW1pc2lvbmVzIGRlIENPMiB5IGVsIGFjY2VzbyBhbCBhZ3VhLiBTZSBwdWVkZW4gdXRpbGl6YXIgcGFyYSByZWFsaXphciB1biBzZWd1aW1pZW50byBkZWwgcHJvZ3Jlc28gYSBsbyBsYXJnbyBkZWwgdGllbXBvIHkgcGFyYSBjb21wYXJhciBwYcOtc2VzLgoKIyMjICAgIExJTUlUQUNJT05FUyBESU1FTkNJT04gQU1CSUVOVEFMRVMKCj5Mb3MgZGF0b3MgdXRpbGl6YWRvcyBwYXJhIG1lZGlyIGVsIGRlc2Fycm9sbG8gcHVlZGVuIHNlciBpbmV4YWN0b3MgbyBpbmNvbXBsZXRvcy4gRXN0byBwdWVkZSBkaWZpY3VsdGFyIGxhIG9idGVuY2nDs24gZGUgdW5hIGltYWdlbiBjbGFyYSBkZWwgZXN0YWRvIGRlIGRlc2Fycm9sbG8gZGUgdW4gcGHDrXMuIGVuIG51ZXN0cm8gZXN0dWRpbyBmdWUgbGltaXRhZGEgbGEgaW5mb3JtYWNpb24gcGFyYSB0b2RvcyBsb3MgcGFpc2VzIGRlIGxhIHJlZ2nDs24uCgo+Tm8gc29uIG1lZGlkYXMgcGVyZmVjdGFzIGRlbCBkZXNhcnJvbGxvIGFtYmllbnRhbC4gUG9yIGVqZW1wbG8sIGVsIGluZGljYWRvciBkZSBzdXBlcmZpY2llIGZvcmVzdGFsIG5vIHRpZW5lIGVuIGN1ZW50YSBsYSBjYWxpZGFkIGRlbCBib3NxdWUuIEFkZW3DoXMsIGVzdG9zIGluZGljYWRvcmVzIGEgbWVudWRvIHNlIGJhc2FuIGVuIGRhdG9zIGF1dG9pbmZvcm1hZG9zLCBxdWUgcHVlZGVuIHNlciBpbmV4YWN0b3MuCgojIyMgICBBTENBTkNFIERJTUVOQ0lPTiBURUNOT0xPR0lDQQoKPkVzdG9zIGluZGljYWRvcmVzIG1pZGVuIHVuYSBhbXBsaWEgZ2FtYSBkZSBhc3BlY3RvcyBkZWwgZGVzYXJyb2xsbyB0ZWNub2zDs2dpY28sIGluY2x1aWRvIGVsIGFjY2VzbyBhIEludGVybmV0IHkgbGFzIHN1c2NyaXBjaW9uZXMgZGUgdGVsZWZvbsOtYSBmaWphLiBTZSBwdWVkZW4gdXRpbGl6YXIgcGFyYSByZWFsaXphciB1biBzZWd1aW1pZW50byBkZWwgcHJvZ3Jlc28gYSBsbyBsYXJnbyBkZWwgdGllbXBvIHkgcGFyYSBjb21wYXJhciBwYcOtc2VzLgoKPkVzdGEgaW5mb3JtYWNpw7NuIHNlIHB1ZWRlIHV0aWxpemFyIHBhcmEgZnVuZGFtZW50YXIgZGVjaXNpb25lcyBwb2zDrXRpY2FzIHkgbWVqb3JhciBsYSBpbmZyYWVzdHJ1Y3R1cmEgdGVjbm9sw7NnaWNhIGRlIHVuIHBhw61zLgoKIyMjICAgTElNSVRBQ0lPTkVTIERJTUVOQ0lPTiBURUNOT0xPR0lDQQoKPkxvcyBkYXRvcyB1dGlsaXphZG9zIHBhcmEgbWVkaXIgZWwgZGVzYXJyb2xsbyBwdWVkZW4gc2VyIGluZXhhY3RvcyBvIGluY29tcGxldG9zLiBFc3RvIHB1ZWRlIGRpZmljdWx0YXIgbGEgb2J0ZW5jacOzbiBkZSB1bmEgaW1hZ2VuIGNsYXJhIGRlbCBlc3RhZG8gZGUgZGVzYXJyb2xsbyBkZSB1biBwYcOtcy4gZW4gbnVlc3RybyBlc3R1ZGlvIGZ1ZSBsaW1pdGFkYSBsYSBpbmZvcm1hY2lvbiBwYXJhIHRvZG9zIGxvcyBwYWlzZXMgZGUgbGEgcmVnacOzbi4KCj5Fc3RvcyBpbmRpY2Fkb3JlcyBubyBzb24gbWVkaWRhcyBwZXJmZWN0YXMgZGVsIGRlc2Fycm9sbG8gdGVjbm9sw7NnaWNvLiBQb3IgZWplbXBsbywgZWwgaW5kaWNhZG9yIGRlIHVzdWFyaW9zIGRlIEludGVybmV0IG5vIHRpZW5lIGVuIGN1ZW50YSBsYSBjYWxpZGFkIGRlbCBhY2Nlc28gYSBJbnRlcm5ldC4KCiMgICBiaWxiaW9ncmFmaWEgCgpDYXBpdMOhbiwgQUwuIDE5OTYuIOKAnFVuYSBWaXNpw7NuIFJldHJvc3BlY3RpdmEgZGUgTGEgRWNvbm9txLHMgWEgRGVsIERlc2Fycm9sbG8u4oCdIFVuaXZlcnNpZGFkIGRlIEh1ZWx2YS4KVmlkYWwgVmlsbGEgKDIwMDMpIAoKRWNvbm9tw61hIE11bmRpYWwgCltodHRwczovL2RhdG9zLmJhbmNvbXVuZGlhbC5vcmcvaW5kaWNhdG9yXQoKUMOpcmV6LCBDYXJsb3MgQWRlbWlyIFtodHRwczovL3JwdWJzLmNvbS9jYV9hZGVtaXIvd19mYV0KClDDqXJleiwgQ2FybG9zIEFkZW1pciBbaHR0cHM6Ly9ycHVicy5jb20vY2FfYWRlbWlyXQoKUMOpcmV6LCBDYXJsb3MgQWRlbWlyIFtodHRwczovL3JwdWJzLmNvbS9jYV9hZGVtaXIvcG9uZGVyYWRvcmVzX3N1YmpldGl2b3NdCgpQw6lyZXosIENhcmxvcyBBZGVtaXIgW3R0cHM6Ly9ycHVicy5jb20vY2FfYWRlbWlyL2luZGljYWRvcl9zaW50ZXRpY29dCg==