1. Introducción
El presente trabajo escrito corresponde al primer informe práctico de la asignatura Geomática Básica. En este, se pretende analizar las estadísticas agropecuarias del departamento del Valle del Cauca a través de distintas herramientas que ofrecen los programas R & RStudio. La exploración de las estadísticas se realizó previamente en el Cuaderno 3, el Cuaderno 4 parte 1,el Cuaderno 4 parte 2 y el Cuaderno 4 parte 3 . que se encuentran en los correspondientes anexos. Para entender los resultados expuestos en el documento, se realizaron búsquedas en distintas páginas gubernamentales, algunos informes de producción y distintos trabajos de grado enfocados en la producción agrícola y su influencia en la economía departamental. Finalmente, se logró concluir que hay muchos factores externos que pueden influir en la producción de los cultivos sin importar las ventajas geográficas que posea el departamento, y que siempre es importante dar apoyo integral al campesino y tecnificar el campo, gracias a esto se puede mantener una economía mas estable y así minimizar las pérdidas.
1.1 Objetivos
Utilizar y afianzar los conocimientos en R aprendidos durante las primeras semanas de clase mientras se realiza un trabajo de caracterización de un departamento de Colombia.
Entender la economía agraria del municipio de Valle del Cauca por medio de el uso de las herramientas que nos proporciona R y su extensión Rstudio.
Interpretar de forma apropiada los resultados utilizando páginas gubernamentales, informes de producción y distintas fuentes de información confiable.
Palabras clave: Valle del Cauca, producción, área cosechada, café, aguacate, caña de azúcar
2. Métodos
2.1 Zona de estudio
El Departamento del Valle del Cauca se ubica en la zona suroriental del país, en las zonas Pacífica y Andina. Su territorio tiene una extensión de 22,195 km² que se encuentra mayormente contenido en la región Andina. Valle del Cauca limita al norte con Choco y Risaralda, Al Este con Quindío y Tolima, Al sur con Cauca y al Oeste con Choco y el Océano Pacifico.
La capital del departamento es Cali cuya superficie total (21.195 km² ) representa un 1.5% del territorio nacional. La economía de la ciudad se centra en la industria, el comercio y el sector público. La parte industrial se localiza en la parte norte de la ciudad en donde hay instaladas más de 2.000 grandes empresas. El comercio está encabezado por centros comerciales, grandes supermercados y algunos almacenes de tecnología. Finalmente, el sector público ha aportado a la ciudad la construcción de grandes infraestructuras que permiten el desarrollo comercial e industrial (Alcaldía de Santiago de Cali, 2015).
La localización del Departamento en una zona intertropical le permite la incidencia de la radiación solar durante todo el año y, de igual manera, mantiene la temperatura constante (Perafán, 2012).
El territorio vallecaucano se compone de numerosas corrientes conformadas por dos vertientes, la del Pacífico y la del Magdalena que atraviesan el río Cauca. La primera vertiente contiene ríos como el Yurumanquí, Anchicayá, Dagua, Casambre, Calima, Dovio, Vueltos y Garrapatos. Por otro lado, en el río Cauca desembocan ríos como Nima, Amaima, Zabaletos, Sonso, Tuluá, Bugalagrande, Guadalajara, La Vieja, Timba y Cali (Gobernación del Valle del Cauca, 2017).
Según el Departamento Administrativo Nacional de Estadística (DANE), la población del Valle del Cauca en el año 2020 es de 4.532.152 habitantes. De esta cifra, un 52.5% corresponde a la población femenina y el 47.5% restante, representa la población masculina.
Estas mismas estadísticas muestran que la población del departamento está conformada en su mayoría por jóvenes menores de 15 años y adultos mayores de 59 años que son dependientes de la población productiva (de 15 a 59 años). (Valle invencible, 2020).
La economía del Departamento se basa principalmente en la prestación de servicios, la industria y las actividades agropecuarios. Los servicios se basan en los comerciales, el transporte, la banca y las comunicaciones. La industria se centra básicamente en la producción de alimentos, el procesamiento de azúcar, la producción de químicos, fármacos y plásticos. Por otro lado, la agricultura se centra en gran medida en la producción de caña de azúcar, aunque, otros cultivos como la caña panelera, el sorgo, la yuca, el algodón, la soya, el maíz, el café, la palma africana y el cacao (Unidad Ejecutora de Saneamiento del Valle del Cauca, 2016).
Valle del Cauca posee una de las economías más grandes del país y es únicamente superado por Bogotá y Antioquia. El departamento aporta en un 9.7% al Producto Interno Bruto (PIB) nacional (El Tiempo, 2019).
2.2 Datos
Los datos utilizados para realizar el análisis estadístico del Departamento del Valle del Cauca fueron obtenidos en la base de datos denominada “Evaluaciones Agropecuarias Municipales (EVA)” desarrollada por el Departamento Administrativo Nacional de Estadística, DANE. Esta base de datos contiene una recopilación histórica de la producción agrícola Nacional haciendo hincapié en los productores, la información agrícola departamental y municipal con el fin de fortalecer la producción y comercialización.
Para este cuaderno, también se hizo uso del shapefile del DANE llamado Marco Geoestadístico Departamental , el cual permite referenciar la información estadística con su localización geográfica. Este archivo contiene áreas geoestadísticas (departamentos, municipios, cabeceras municipales, resto rural, centro poblados, entre otros) delimitadas por accidentes naturales o de forma cultural. Se compone de 1101 municipios, 20 áreas no municipalizadas y la isla de San Andrés.
2.3 Métodos
Los resultados mostrados en el presente informe fueron obtenidos a partir de procedimientos estadísticos llevados a cabo en el programa R y su extensión RStudio. Las librerías usadas para realizar la caracterización del departamento del Valle del Cauca son: Leaflet, Sf, Rgeos, Ggplot2, Tidyverse, dplyr. Como base se tomaron los cuadernos 3 y 4, los cuales buscaban familiarizarnos con los códigos que nos proporcionan las librerías anteriormente mencionadas. En el cuaderno 3 se trabaja principalmente con la librería dplyr, la cual nos permite editar variables, seleccionar datos y filtrarlos lo que resulta muy útil a la hora de consultar estadísticas y analizar las actividades agroeconómicas de un departamento o municipio. Posteriormente se usa “ggplot2” para realizar diagramas de barras y gráficos de torta con las variables anteriormente clasificadas. En el cuaderno 4 usamos las mismas librerías que en el 3, solo que agregamos leaflet, la cual sirve para hacer mapas y colocar marcadores en este. La librería más importante en ambos cuadernos es la “dplyr” porque nos permite organizar los datos, reemplazarlos, diferenciarlos y filtrarlos para después analizarlos estadísticamente de manera más sencilla.
3. Resultados y discusión
La comprensión de las estadísticas departamentales estudiadas en el presente informe, se divide en dos momentos cruciales complementarios entre sí. En primera instancia, se investigó por medio de comandos sencillos de R algunos aspectos básicos de la producción con el fin de crear un panorama general del Valle del Cauca y su distribución agropecuaria.
Posteriormente, se utilizó el archivo EVA para conocer a profundidad la producción de algunos cultivos de interés comercial para el departamento determinados a través de una investigación previa expuesta brevemente en la descripción de la zona de estudio (sección 2.1).
3.1 Estadísticas generales del departamento
Primero, nos centraremos en conocer los cultivos que tienen mayor producción media, es decir, aquellos que mantienen una producción más estable a lo largo del periodo evaluado. En el caso del Valle del Cauca, los cultivos como la caña azucarera, la piña y la papaya destacan en este aspecto
La piña ha sido uno de los cultivos mayormente trabajados en la región desde hace varias décadas en el departamento. En un principio la variedad más trabajada fue Cambray, posteriormente se optó por la piña de agua y , en la actualidad, se manejan más variedades comerciales (Patiño, 2002). En Colombia, la piña tiene un buen rendimiento cuando es cultivada entre los 400 y 1300 msnm acompañado de unas temperaturas que oscilan entre 18 y 27 °C y una precipitación de 1200 a 1800 mm distribuidos durante el año (Asohofrucol, 2017).
Por otro lado, la papaya se cultiva entre los 0 y 1600 msnm, requiere de precipitaciones medias de 1800 mm distribuidas a lo largo del año acompañadas de temperaturas entre 20 y 22 grados centígrados (Corporación Colombiana de Investigación Agropecuaria, s. f.). El territorio vallecaucano plano tiene una temperatura promedio de 24 °C considerada óptima para la producción de frutas debido a que la fotosíntesis tiene mejor funcionamiento entre los 21 y 28 °C. Sin embargo, la temperatura máxima y mínima diaria puede fluctuar hasta 10 °C y permitir una mayor acumulacion de carbohidratos en las plantas (Ministerio de Agricultura y Desarrollo Rural et al., 2006). Según Asohofrucol, la tecnificación de los cultivos se ha incrementado en los últimos años en conjunto con las razones explicadas anteriormente, justifican el alto rendimiento de la piña y la papaya en el departamento.
La caña de azúcar por otro lado, se desarrolla óptimamente en altitudes sobre el nivel del mar de 700 a 2000 m y temperaturas entre los 27 °C y los 33 °C. Con respecto a los recursos hídricos, requiere entre 1200 a 1500 mm anuales distribuidos lo más equitativamente a lo largo del año (Subirós, 1995).
El territorio vallecaucano cumple con las condiciones climáticas requeridas por la caña de azúcar, por esta razón, su cultivo se ha extendido a lo largo del departamento y se ha consolidado como el principal motor de la economía. En 2017, el cultivo de caña de azúcar generaba 188000 empleos directos y lograba generar el encadenamiento productivo (Noticias Caracol, 2017).
Ahora, se quiere conocer cuáles municipios tienen mayor productividad por grupo de cultivos independientemente del año. Debido a que el departamento es un gran productor de frutales y de otros permanentes, será de gran interés el resultado de dichas estadísticas.
`summarise()` has grouped output by 'GRUPO'. You can override using the `.groups` argument.
La mayor producción de frutales y de los otros permanentes del departamento ocurrió en el municipio de Trujillo. El municipio de Trujillo se ubica en el centro del departamento y comprende una zona montañosa entre los 1000 y 3000 msnm. En el territorio hay gran cantidad de ríos y quebradas que desembocan en el río Cauca.
La economía de Trujillo es principalmente agrícola puesto que se trabajan cultivos permanentes como el café, el banano y el plátano siendo este último el preferido entre los agricultores del municipio. Sin embargo, Trujillo también es considerado un buen productor de frutas como la mora, el aguacate y el lulo (Gutierrez, L. & Rosero, T., 2019).
A continuación se pretende mostrar los municipios que tuvieron el mejor rendimiento máximo entre los años 2007 a 2018.
ningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Infningun argumento finito para max; retornando -Inf`summarise()` has grouped output by 'CULTIVO'. You can override using the `.groups` argument.
Trujillo es un municipio el cual destaca por sus cultivos de plátano, café, frutas y verduras, pero en especial tener el mejor rendimiento máximo por cultivo de caña de azúcar del departamento según las estadísticas analizadas. La ubicación geográfica del municipio y su confluencia con ríos y otras cuencas hídricas hacen de este un potencial productor de caña.
Dagua es un municipio que se ubica al occidente del departamento, con una temperatura media de 25°C y con un relieve de simas y cumbres,y con una gran cantidad de ríos y cuencas. El municipio de Dagua basa su economía completamente en la agricultura especialmente café, piña, caña panelera, frutas, maíz, plátano, cacao y frijol. A pesar que Dagua es más conocido por ser un gran productor de piña, este obtuvo el mejor rendimiento máximo en el cultivo de café, calabacín, breva, cimarrón, sin embargo solo nos centraremos principalmente en la producción de café.
Sevilla se encuentra en la zona más alta del departamento y tiene como principal actividad económica la producción de café, a la cual le dedica más de 15000 hectáreas de cultivo. Otros cultivos importantes son el plátano, yuca, caña panelera, maíz, frijol, la papa, la cebada y por supuesto el aguacate, cultivo en el que tuvo el mejor rendimiento en las estadísticas EVA.
3.2 cultivos importantes en el Valle del Cauca
3.2.1 Café
El café del Valle del Cauca se cultiva en pequeñas parcelas por comunidades campesinas, indígenas y afrodescendientes, en 39 municipios, los cuales albergan más de 22.000 familias que cultivan más de 51.000 hectáreas de café arábico. A pesar de que en Colombia los departamentos que más producción de café tienen son Quindío, Risaralda y Caldas, no se habla de que varias familias que habitan en el Valle del Cauca tienen la práctica del cultivo de café muy arraigada y tecnificada. El Valle produce aproximadamente 1.200.000 de sacos x 60 Kg y representa el 11% de la producción total de café verde en el país.
Para entender el cultivo del café en el municipio, a continuación se evaluará la producción del mismo entre los años 2007 y 2018:

En el 2007 la producción de café del departamento del Valle del Cauca fue de aproximadamente 48000 toneladas, el notorio aumento de producción de café en 2008 se debe a que el comité departamental de cafeteros incentivo la caficultura joven, se dieron a cabo concursos de calidad de café y el de el cuento cafetero. También la activa participación de las cooperativas cafeteras gestionando la compra y la regulación de precios, generando así una gran cantidad de empleos ese mismo año. En 2010 hubo un gran aumento en la producción de café, es el año con la mejor producción en todo el departamento, debido al aumento de precipitaciones que hubo, en promedio cayeron 1664 mm. En 2013 hubo una baja en la producción de café debido a que disminuyeron las exportaciones y las cotizaciones. En 2014 el PIB del país volvió a aumentar, el más grande de los últimos 7 años, en 2015 disminuyó la tasa de desempleo de la región y en 2016 también subió. En 2017 hubo una desaceleración económica en el país, sin embargo el sector cafetero no se vio tan afectado como otros sectores y Valle del Cauca siguió destacando. De igual manera sucede en 2018. (CCC, 2018)
Recordando que el rendimiento máximo se concentró en el municipio de Dagua, se procede a revisar su evolución en el mismo periodo de tiempo anterior:

En 2007 Dagua no era un productor activo de café, la decisión de empezar a producir café por parte del municipio se debe principalmente a que en 2008 el departamento incentivo a los campesinos a tener más cultivos de café, por lo tanto se empezó a producir más (Federación de cafeteros, 2009). En 2013 el efecto de haber bajado las cotizaciones y por ende las exportaciones, durante los próximos 3 años la producción de café en el municipio no aumentó notoriamente(DANE, 2014,2016), hasta 2017 en donde a pesar se empezó a tecnificar la zona manteniendo en gran manera la producción de café en el departamento a pesar de desaceleración de la economía de ese año.
Para completar el análisis del café, se estudiará el mapa obtenido para la producción y el área cosechada del departamento en el año 2018.
3.2.1.1 Área cosechada
En la Figura anterior se puede apreciar que el municipio con el área mayormente cosechada de café en Valle del Cauca es Sevilla. Esto se debe principalmente a que la economía del municipio se basa en gran parte en el cultivo de este producto, aunque la agricultura, la ganadería y el comercio también lo sustentan. Debido a la gran cantidad de hectáreas que dedica para el cultivo de café, Sevilla es conocida como la “Capital Cafetera de Colombia”, por ende, el resultado de esta estadísticas es justo lo que se esperaba encontrar (Alcaldía de Sevilla, 2019).
3.2.1.2 Producción
En el 2018, el municipio que se destacó en la producción de café fue Sevilla. Este resultado no es extraño si se tiene en cuenta que el municipio es llamado la “Capital Cafetera de Colombia”. La información de la figura es congruente si se tiene en cuenta que Sevilla también fue el municipio con mayor área cosechada del departamento superando ampliamente a sus competidores. El municipio de El Águila también produjo una considerable cantidad de café debido a que es su principal fuente económica. Sin embargo, a diferencia de Sevilla que posee muchos otros cultivos para nutrir su economía, El Águila únicamente cultiva café y plátano. Por esta razón, se considera que el municipio es el más pobre de todo Valle del Cauca (Martinez, 2020).
3.2.2 Aguacate
El clima que presenta el departamento del Valle del Cauca es apropiado para el cultivo de aguacate hass, y cuenta con 1800 HA para el cultivo de este en los municipios de Roldanillo, Bolívar Trujillo, El Cairo, Versalles y el Águila. En 2017 los municipios con mayor producción fueron Argelia, Caicedonia, Sevilla, Trujillo y Palmira, sumando en total 20.629 toneladas al final del mismo año. En Colombia se ha potenciado la exportación de aguacate para motivar la reactivación económica por las consecuencias de la pandemia, El valle del Cauca se ubica como el segundo productor más grande de aguacate del país. (Lopez, J.2017)
En Trujillo se presentan monocultivos de aguacate.
Debido a su creciente importancia en la economía departamental, se procederá a hacer un análisis de la evolución productiva del cultivo entre los años 2007 y 2018.

En el 2007 el cultivo del aguacate no era tan relevante en las estadísticas nacionales de producción, sin embargo, varios estudios comenzaban a mencionar el potencial del producto en el suelo colombiano. Por esta razón, en 2008 el Gobierno Nacional creó el Consejo Nacional de Aguacate cuyo fin era fortalecer la cadena de aguacate a través del fortalecimiento gremial, la comercialización, el mercadeo, la logística, las exportaciones y la agroindustria. La creación de esta organización contribuyó al crecimiento de la producción de aguacate para ese año (Cortés, J., 2019). En el 2009, se observa un aumento en la producción de aguacate ocasionado principalmente por su creciente consumo y por las medidas establecidas por el Gobierno Nacional para el fortalecimiento del producto (DANE, 2009)
Por otro lado, en el 2010 se observa una caída significativa ocasionada por una fuerte ola invernal que redujo la producción agrícola del departamento y las exportaciones de manera significativa. Entre los cultivos afectados por esta situación, se encuentra el aguacate (Escobar, J., et al., 2010)
En los años posteriores, el Gobierno siguió implementando políticas que permitieron el crecimiento productivo del aguacate en el departamento hasta el año 2013. En el 2014, se redujo considerablemente el área cultivada y la producción se vio afectada; sin embargo, el año posterior se corrigió dicha caída (Asociación Nacional de Comercio Exterior, 2017).
En el 2017, la producción de aguacate se redujo un poco en comparación al año pasado. Para contrarrestar esta estadística, el Ministerio de Agricultura se enfocó en fortalecer programas que incrementen las hectáreas de siembra de aguacate. Gracias a esto, en 2018 se observó un crecimiento en la producción (Lopez Barragan, J. C., 2017).
También se quiere conocer la evolución del cultivo de aguacate en en municipio de Sevilla debido a que en estadísticas anteriores, se revela que allí se tuvo el máximo rendimiento de este producto.

En el caso del municipio de Sevilla, a pesar de que en 2008 se incentivó la producción de aguacate en el departamento, no fue hasta 2017 en el que se empezó a cultivar en gran cantidad gracias a los proyectos impulsados por el Gobierno Nacional en la región. Pese a su poca trayectoria histórica, hoy en día es uno de los mayores productores de aguacate del departamento (Lopez Barragan, J. C., 2017).
Finalmente, se analizarán los mapas obtenidos para el área cosechada y la producción de aguacate a nivel departamento. El analisis se realizará en el orden de mención.
3.2.2.1 Área cosechada
Como se mencionó anteriormente, el cultivo de aguacate, en concreto la variedad Hass se ha impulsado en el Valle del Cauca, en especial en el norte del departamento debido a que el cultivo se adapta de mejor forma a las condiciones ambientales propias de dicho sector. Debido a que Sevilla se ubica en el sector norte,no es de extrañar que los programas del Ministerio de Agricultura aumentaran el área cosechada en el municipio. También debe recalcarse que municipios como Caicedonia y Argelia tienen áreas de cosecha grandes impulsadas por los mismos programas.
3.2.2.2 Producción
Sevilla ha sido un gran productor de aguacate en los últimos años debido a los esfuerzos gubernamentales por incentivar el cultivo del producto en el departamento vallecaucano. En el año 2018, Sevilla produjo 8448 Toneladas de Aguacate, teniendo una estadística muy superior con respecto a otros municipios. En la Figura también se observa que municipios como Trujillo y Dagua producen una considerable cantidad de toneladas de aguacate.
3.2.3 Caña de azúcar
Es el principal producto que se cosecha en el Valle del Cauca. Es un cultivo de zonas tropicales, requiere de mucha agua, un buen sustrato y además maneja bien la radiación solar. El cultivo de caña no solo sirve para producir azúcar, también produce combustible biodegradable, bioetanol y energía eléctrica con el Bagazo que queda de los residuos de caña.(Canal Caracol, 2017)

La caña de azúcar es un cultivo histórico en el Valle del Cauca. La hidrografía, el clima y el relieve del departamento son perfectos para la producción de caña, por lo que este cultivo siempre ha estado presente. En la gráfica anterior se demuestra que es un cultivo más o menos de producción estable en el departamento, tiene bajones y subidas en su producción. El aumento notorio en 2018 se debe principalmente a que se descubrió en ese entonces que la caña de azúcar sirve para producir bioetanol, lo cual se transforma en combustible natural.

Trujillo, como ya se mencionó anteriormente es un buen productor de frutales, y por su relieve en el que se encuentra una gran cantidad de ríos y cuencas hidrográficas es un municipio el cual tiene como producir caña de azúcar, sin embargo fue hasta 2010 el año en donde se empezó a producir constantemente caña. Vemos que hay una disminución demasiado grande en 2014, esto se puede deber a que el municipio de Trujillo estaba en constante conflicto armado, ese mismo año se le puede adjudicar un poco a los desplazamientos armados y presencia guerrillera en la zona. todo esto a pesar de que estaban en proceso de paz con las FARC (CNMH, 2015). Después de esto la producción volvió a ascender y se mantuvo casi constante entre 2016 y 2018.
Ahora, se analizará la producción y el área cosechada de la caña de azúcar en Valle del Cauca en el año 2018
3.2.3.1 Área cosechada
El municipio con mayor área cosechada de caña de azúcar en el año 2018 fue El Cerrito. Dicho municipio basa su economía en el cultivo de yuca, tomate, frijol, cebolla y, primordialmente, en la caña de azúcar. Debido a la alta comercialización del producto en cuestión, se han estructurado latifundios principalmente cañeros, lo cual ha incrementado el área de cultivo de la caña de azúcar y, a su vez, ha desplazado a los otros cultivos a la región montañosa del territorio, en donde existen limitantes para la comercialización y obliga a los campesinos a contactar con intermediarios (Alcaldía Municipal El Cerrito, 2021).
3.2.3.2 Producción
En 2018 la mayor producción de caña de azúcar de Valle del Cauca se concentró en el municipio de Pradera. Esta estadística puede entenderse al investigar la economía de Pradera, puesto que pasó de una economía agrícola a una economía extensiva de la caña. Esta situación ha generado procesos de desplazamiento de la mano de obra a Cali y Palmira (Caicedo & Muñoz, 2019).
En la figura se logra observar que en muchos municipios del Valle del Cauca se tiene una gran producción de caña, esto nos reafirma que este producto es el punto fuerte del departamento y de gran importancia para la economía nacional.
4. Conclusiones
En la actualidad por medio de los análisis hechos por el ministerio de agricultura podemos conocer los avances y cambios que ha tenido la economía del departamento del Valle del Cauca que se basa únicamente en la agricultura, permitiéndonos ver que cultivos fueron los más importantes y en qué municipios se tiene la mejor producción de estos. De esta forma podemos recalcar la importancia de la tecnificación del sector agrario, la incentivación para empezar a plantar nuevos cultivos y el apoyo integral a los campesinos, ya que con esto el departamento del Valle del Cauca ha ido prosperando con el pasar de los años y llegando a ser uno de los mejores productores de caña de azúcar, café y aguacate del país. A pesar de que el municipio tiene ventajas geográficas e hidrográficas, todavía la producción de sus cultivos se puede ver afectada por factores externos como la baja en las cotizaciones, las exportaciones y en su tiempo, el conflicto armado podría generar una baja en la tasa de producción.
5. Bibliografía
Alcaldía de Santiago de Cali. (2015, 13 abril). Economía de Cali. Cali.https://www.cali.gov.co/informatica/publicaciones/106110/economia_de_cali/
Alcaldía de Sevilla. (2019, 29 agosto). Alcaldía de Sevilla, Valle del Cauca. sevilla-valle.gov. http://www.sevilla-valle.gov.co/municipio/nuestro-municipio
Alcaldía Municipal El Cerrito. (2021, 6 abril). Economía. elcerrito-valle.gov. https://elcerrito-valle.gov.co/MiMunicipio/Paginas/Economia.aspx
Asociación Nacional de Comercio Exterior - ANALDEX. (2017, septiembre). Mercado del aguacate 2017. http://www.analdex.org/wp-content/uploads/1992/11/Mercado-del-aguacate-2017.pdf
Asohofrucol. (2007, 20 septiembre). Memorias sobre la actualización tecnológica en el cultivo de Piña. http://www.asohofrucol.com.co/archivos/Libros/Actualizaci%C3%B3n_Cultivo_Tecnol%C3%B3gico_de_Pi%C3%B1a_2017.pdf
Caicedo, M., & Muñoz, D. (2019, septiembre). Perfil de los municipios de Pradera y El Tambo para el desarrollo y la competitividad territorial. https://red.uao.edu.co/bitstream/handle/10614/11180/T08631.pdf?sequence=5
Caña de azúcar, el gran motor de la economía en el Valle del Cauca. (2017, 21 julio). noticias.caracoltv.com.https://noticias.caracoltv.com/valle/cana-de-azucar-el-gran-motor-de-la-economia-en-el-valle-del-cauca
- (2018, 14 febrero). Informe económico, Balance 2017–2018. www.ccc.org.co. https://www.ccc.org.co/file/2018/02/Informe-Economico-N97-Balance-2017-perspectivas-2018.pdf
Centro de memoria historica. (2015, febrero). InventariodedatosabiertosCNMH. http://www.centrodememoriahistorica.gov.co/. http://www.centrodememoriahistorica.gov.co/descargas/transparencia/documentos-2014/inventario-datos-abiertos-v1.pdf
Corporación Colombiana de Investigación Agropecuaria. (s. f.). Cultivo de la papaya en los Llanos Orientales de Colombia. Biblioteca Digital Agronet. Recuperado 31 de marzo de 2021, de http://bibliotecadigital.agronet.gov.co/bitstream/11348/4894/2/Cultivo%20de%20la%20papaya.pdf
Cortés, J. (2019). Estudio de caso sobre los factores claves exitosos en la exportación de productos agrícolas hacia Estados Unidos “Aguacate Hass colombiano”. Universidad Cooperativa de Colombia. https://repository.ucc.edu.co/bitstream/20.500.12494/16985/3/2019_Estudio_caso_factores.pdf
DANE. (2009). Informe de Coyuntura Económica Regional Departamento del Valle del Cauca. Departamento de Documentación y Editorial Banco de la República, Bogotá. https://www.dane.gov.co/files/icer/2009/valle_icer_II_sem_09.pdf
DANE. (2014, diciembre). ICER_Valle del Cauca. www.dane.gov.co. https://www.dane.gov.co/files/icer/2013/ICER_Valle_Cauca_2013.pdf
DANE. (2016, octubre). ICER_Valle del Cauca 2015. www.dane.gov.co. https://www.dane.gov.co/files/icer/2015/ICER_Valle_del_Cauca2015.pdf
Escobar, J., Barandica, A., González, N., & Lucero, D. (2010, 20 septiembre). Valle del Cauca, 2010. banrep.gov.co. https://www.banrep.gov.co/es/valle-del-cauca-2010
Federación de cafeteros. (2009, 15 enero). informe de comité de cafeteros 2008. federaciondecafeteros.org. https://federaciondecafeteros.org/static/files/Valle%20del%20Cauca4.pdf
Gobernación del Valle del Cauca. (2017, 27 septiembre). VALLE; INFORMACIÓN GENERAL - CIUDADES Y MUNICIPIOS - Colombiamania.com. Colombiamania. http://www.colombiamania.com/departamentos/valle.html#:%7E:text=Miraflores%20y%20Barrag%C3%A1n.-,Hidrograf%C3%ADa,%2C%20Dovio%2C%20Vueltos%20y%20Garrapatos
Gutiérrez, L., & Rosero, T. (2019). Plan de desarrollo comunal y comunitario Trujillo, Valle del Cauca: Por un mejoramiento de la calidad de vida y amor al campo. Gobernación del Valle del Cauca.
https://www.valledelcauca.gov.co/loader.php?lServicio=Tools2&lTipo=viewpdf&id=31744 El Tiempo. (2019, 29 julio). El Valle, la tercera economía más grande del país. https://www.eltiempo.com/mas-contenido/el-valle-la-tercera-economia-mas-grande-del-pais-393492#:%7E:text=El%20Valle%20del%20Cauca%20es,de%20la%20econom%C3%ADa%20de%20Colombia.
Lopez Barragan, J. C. (2017, 10 agosto). Aguacate Hass, la producción agrícola del Valle. valledelcauca.gov.co.https://www.valledelcauca.gov.co/publicaciones/38762/aguacate_hass_la_proyeccin_agrcola_del_valle/ Martínez, A. (2020, 24 febrero). ¿Cómo se vive en El Águila, el municipio más pobre del Valle del Cauca? elpais.com.co.https://www.elpais.com.co/economia/asi-se-vive-sobrevive-en-el-aguila-el-municipio-mas-pobre-del-valle-del-cauca.html
Ministerio de Agricultura y Desarrollo Rural, Sociedad de Agricultores y Ganaderos del Valle del Cauca - SAG, Asociación Hortofrutícola de Colombia, Fondo Nacional de Fomento Hortofrutícola, Gobernación del Valle del Cauca. (2006). Plan Frutícola Nacional Valle del Cauca, tierra de frutas. Gobernación del Valle del Cauca.
Noticias Caracol. (2017, 21 julio). Caña de azúcar, el gran motor de la economía en el Valle del Cauca. Noticias Caracol. https://noticias.caracoltv.com/valle/cana-de-azucar-el-gran-motor-de-la-economia-en-el-valle-del-cauca
Patiño, V. (2002). Historia y dispersión de los frutales nativos del neotrópico. Centro Internacional de Agricultura.
Perafán, A. (2012). Valle del Cauca. Un estudio en torno a su sociedad y medio ambiente. Programa Editorial: Universidad del Valle.
Subirós, F. (1995). El cultivo de la caña de azúcar. Editorial Universidad Estatal a Distancia. https://books.google.com.co/books?id=2wpC1j2AmkAC&pg=PA55&dq=ca%C3%B1a+de+azucar+requerimientos&hl=es&sa=X&ved=2ahUKEwif87qY6eXvAhU5ZzABHY6FA0MQ6AEwAHoECAEQAg#v=onepage&q=ca%C3%B1a%20de%20azucar%20requerimientos&f=false
Unidad Ejecutora de Saneamiento del Valle del Cauca. (2016, 15 septiembre). Unidad Ejecutora de Saneamiento del Valle del Cauca. uesvalle. https://www.uesvalle.gov.co/publicaciones/237/valle-del-cauca/
Valle invencible. (2020, 29 julio). Demografía. Valle del Cauca. https://viveelritmodelpacific o.co/demografia/
LS0tDQp0aXRsZTogIkVzdGFkw61zdGljYXMgbXVuaWNpcGFsZXMgYWdyb3BlY3VhcmlhcyBkZSBWYWxsZSBkZWwgQ2F1Y2EiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCmF1dGhvcjogTHVpc2EgRmVybmFuZGEgQ2FycmnDs24gUmFtw61yZXogeSBNaWd1ZWwgU2FudGlhZ28gTW9yYWxlcyBSdcOteg0KZGF0ZTogMDcvMDQvMjAyMQ0KLS0tDQoNCiMjIyAqKjEuIEludHJvZHVjY2nDs24qKg0KDQpFbCBwcmVzZW50ZSB0cmFiYWpvIGVzY3JpdG8gY29ycmVzcG9uZGUgYWwgcHJpbWVyIGluZm9ybWUgcHLDoWN0aWNvIGRlIGxhIGFzaWduYXR1cmEgR2VvbcOhdGljYSBCw6FzaWNhLiBFbiBlc3RlLCBzZSBwcmV0ZW5kZSBhbmFsaXphciBsYXMgZXN0YWTDrXN0aWNhcyBhZ3JvcGVjdWFyaWFzIGRlbCBkZXBhcnRhbWVudG8gZGVsIFZhbGxlIGRlbCBDYXVjYSBhIHRyYXbDqXMgZGUgZGlzdGludGFzIGhlcnJhbWllbnRhcyBxdWUgb2ZyZWNlbiBsb3MgcHJvZ3JhbWFzIFIgJiBSU3R1ZGlvLiBMYSBleHBsb3JhY2nDs24gZGUgbGFzIGVzdGFkw61zdGljYXMgc2UgcmVhbGl6w7MgcHJldmlhbWVudGUgZW4gZWwgW0N1YWRlcm5vIDNdKGh0dHBzOi8vcnB1YnMuY29tL01pbW9yYWxlc3IvNzUwNzE0KSwgZWwgW0N1YWRlcm5vIDQgcGFydGUgMV0oaHR0cHM6Ly9ycHVicy5jb20vTWltb3JhbGVzci83NTA4NTcpLGVsIFtDdWFkZXJubyA0IHBhcnRlIDJdKGh0dHBzOi8vcnB1YnMuY29tL01pbW9yYWxlc3IvNzUwODY1KSB5IGVsIFtDdWFkZXJubyA0IHBhcnRlIDNdKGh0dHBzOi8vcnB1YnMuY29tL01pbW9yYWxlc3IvNzUwODY3KSAuIHF1ZSBzZSBlbmN1ZW50cmFuIGVuIGxvcyBjb3JyZXNwb25kaWVudGVzIGFuZXhvcy4gUGFyYSBlbnRlbmRlciBsb3MgcmVzdWx0YWRvcyBleHB1ZXN0b3MgZW4gZWwgZG9jdW1lbnRvLCBzZSByZWFsaXphcm9uIGLDunNxdWVkYXMgZW4gZGlzdGludGFzIHDDoWdpbmFzIGd1YmVybmFtZW50YWxlcywgYWxndW5vcyBpbmZvcm1lcyBkZSBwcm9kdWNjacOzbiB5IGRpc3RpbnRvcyB0cmFiYWpvcyBkZSBncmFkbyBlbmZvY2Fkb3MgZW4gbGEgcHJvZHVjY2nDs24gYWdyw61jb2xhIHkgc3UgaW5mbHVlbmNpYSBlbiBsYSBlY29ub23DrWEgZGVwYXJ0YW1lbnRhbC4gRmluYWxtZW50ZSwgc2UgbG9ncsOzIGNvbmNsdWlyIHF1ZSBoYXkgbXVjaG9zIGZhY3RvcmVzIGV4dGVybm9zIHF1ZSBwdWVkZW4gaW5mbHVpciBlbiBsYSBwcm9kdWNjacOzbiBkZSBsb3MgY3VsdGl2b3Mgc2luIGltcG9ydGFyIGxhcyB2ZW50YWphcyBnZW9ncsOhZmljYXMgcXVlIHBvc2VhIGVsIGRlcGFydGFtZW50bywgeSBxdWUgc2llbXByZSBlcyBpbXBvcnRhbnRlIGRhciBhcG95byBpbnRlZ3JhbCBhbCBjYW1wZXNpbm8geSB0ZWNuaWZpY2FyIGVsIGNhbXBvLCBncmFjaWFzIGEgZXN0byBzZSBwdWVkZSBtYW50ZW5lciB1bmEgZWNvbm9tw61hIG1hcyBlc3RhYmxlIHkgYXPDrSBtaW5pbWl6YXIgbGFzIHDDqXJkaWRhcy4gDQoNCiMjIyMgKioxLjEgT2JqZXRpdm9zKioNCg0KYS4gVXRpbGl6YXIgeSBhZmlhbnphciBsb3MgY29ub2NpbWllbnRvcyBlbiBSIGFwcmVuZGlkb3MgZHVyYW50ZSBsYXMgcHJpbWVyYXMgc2VtYW5hcyBkZSBjbGFzZSBtaWVudHJhcyBzZSByZWFsaXphIHVuIHRyYWJham8gZGUgY2FyYWN0ZXJpemFjacOzbiBkZSB1biBkZXBhcnRhbWVudG8gZGUgQ29sb21iaWEuDQoNCmIuIEVudGVuZGVyIGxhIGVjb25vbcOtYSBhZ3JhcmlhIGRlbCBtdW5pY2lwaW8gZGUgVmFsbGUgZGVsIENhdWNhIHBvciBtZWRpbyBkZSBlbCB1c28gZGUgbGFzIGhlcnJhbWllbnRhcyBxdWUgbm9zIHByb3BvcmNpb25hIFIgeSBzdSBleHRlbnNpw7NuIFJzdHVkaW8uDQoNCmMuIEludGVycHJldGFyIGRlIGZvcm1hIGFwcm9waWFkYSBsb3MgcmVzdWx0YWRvcyB1dGlsaXphbmRvIHDDoWdpbmFzIGd1YmVybmFtZW50YWxlcywgaW5mb3JtZXMgZGUgcHJvZHVjY2nDs24geSBkaXN0aW50YXMgZnVlbnRlcyBkZSBpbmZvcm1hY2nDs24gY29uZmlhYmxlLiANCg0KKipQYWxhYnJhcyBjbGF2ZSoqOiAqVmFsbGUgZGVsIENhdWNhKiwgKnByb2R1Y2Npw7NuKiwgKsOhcmVhIGNvc2VjaGFkYSosICpjYWbDqSosICphZ3VhY2F0ZSosICpjYcOxYSBkZSBhesO6Y2FyKg0KDQojIyMgKioyLiBNw6l0b2RvcyoqDQoNCiMjIyMgKioyLjEgWm9uYSBkZSBlc3R1ZGlvKioNCg0KRWwgRGVwYXJ0YW1lbnRvIGRlbCBWYWxsZSBkZWwgQ2F1Y2Egc2UgdWJpY2EgZW4gbGEgem9uYSBzdXJvcmllbnRhbCBkZWwgcGHDrXMsIGVuIGxhcyB6b25hcyBQYWPDrWZpY2EgeSBBbmRpbmEuIFN1IHRlcnJpdG9yaW8gdGllbmUgdW5hIGV4dGVuc2nDs24gZGUgMjIsMTk1IGttwrIgcXVlIHNlIGVuY3VlbnRyYSBtYXlvcm1lbnRlIGNvbnRlbmlkbyBlbiBsYSByZWdpw7NuIEFuZGluYS4gVmFsbGUgZGVsIENhdWNhIGxpbWl0YSBhbCBub3J0ZSBjb24gQ2hvY28geSBSaXNhcmFsZGEsIEFsIEVzdGUgY29uIFF1aW5kw61vIHkgVG9saW1hLCBBbCBzdXIgY29uIENhdWNhIHkgYWwgT2VzdGUgY29uIENob2NvIHkgZWwgT2PDqWFubyBQYWNpZmljby4NCg0KTGEgY2FwaXRhbCBkZWwgZGVwYXJ0YW1lbnRvIGVzIENhbGkgY3V5YSBzdXBlcmZpY2llIHRvdGFsICgyMS4xOTUga23CsiApIHJlcHJlc2VudGEgdW4gMS41JSBkZWwgdGVycml0b3JpbyBuYWNpb25hbC4gTGEgZWNvbm9tw61hIGRlIGxhIGNpdWRhZCBzZSBjZW50cmEgZW4gbGEgaW5kdXN0cmlhLCBlbCBjb21lcmNpbyB5IGVsIHNlY3RvciBww7pibGljby4gTGEgcGFydGUgaW5kdXN0cmlhbCBzZSBsb2NhbGl6YSBlbiBsYSBwYXJ0ZSBub3J0ZSBkZSBsYSBjaXVkYWQgZW4gZG9uZGUgaGF5IGluc3RhbGFkYXMgbcOhcyBkZSAyLjAwMCBncmFuZGVzIGVtcHJlc2FzLiBFbCBjb21lcmNpbyBlc3TDoSBlbmNhYmV6YWRvIHBvciBjZW50cm9zIGNvbWVyY2lhbGVzLCBncmFuZGVzIHN1cGVybWVyY2Fkb3MgeSBhbGd1bm9zIGFsbWFjZW5lcyBkZSB0ZWNub2xvZ8OtYS4gRmluYWxtZW50ZSwgZWwgc2VjdG9yIHDDumJsaWNvIGhhIGFwb3J0YWRvIGEgbGEgY2l1ZGFkIGxhIGNvbnN0cnVjY2nDs24gZGUgZ3JhbmRlcyBpbmZyYWVzdHJ1Y3R1cmFzIHF1ZSBwZXJtaXRlbiBlbCBkZXNhcnJvbGxvIGNvbWVyY2lhbCBlIGluZHVzdHJpYWwgKEFsY2FsZMOtYSBkZSBTYW50aWFnbyBkZSBDYWxpLCAyMDE1KS4NCg0KTGEgbG9jYWxpemFjacOzbiBkZWwgRGVwYXJ0YW1lbnRvIGVuIHVuYSB6b25hIGludGVydHJvcGljYWwgbGUgcGVybWl0ZSBsYSBpbmNpZGVuY2lhIGRlIGxhIHJhZGlhY2nDs24gc29sYXIgZHVyYW50ZSB0b2RvIGVsIGHDsW8geSwgZGUgaWd1YWwgbWFuZXJhLCBtYW50aWVuZSBsYSB0ZW1wZXJhdHVyYSBjb25zdGFudGUgKFBlcmFmw6FuLCAyMDEyKS4gDQoNCkVsIHRlcnJpdG9yaW8gdmFsbGVjYXVjYW5vIHNlIGNvbXBvbmUgZGUgbnVtZXJvc2FzIGNvcnJpZW50ZXMgY29uZm9ybWFkYXMgcG9yIGRvcyB2ZXJ0aWVudGVzLCBsYSBkZWwgIFBhY8OtZmljbyB5IGxhIGRlbCBNYWdkYWxlbmEgcXVlIGF0cmF2aWVzYW4gZWwgcsOtbyBDYXVjYS4gTGEgcHJpbWVyYSB2ZXJ0aWVudGUgY29udGllbmUgcsOtb3MgY29tbyBlbCBZdXJ1bWFucXXDrSwgQW5jaGljYXnDoSwgRGFndWEsIENhc2FtYnJlLCBDYWxpbWEsIERvdmlvLCBWdWVsdG9zIHkgR2FycmFwYXRvcy4gUG9yIG90cm8gbGFkbywgZW4gZWwgcsOtbyBDYXVjYSBkZXNlbWJvY2FuIHLDrW9zIGNvbW8gTmltYSwgQW1haW1hLCBaYWJhbGV0b3MsIFNvbnNvLCBUdWx1w6EsIEJ1Z2FsYWdyYW5kZSwgR3VhZGFsYWphcmEsIExhIFZpZWphLCBUaW1iYSB5IENhbGkgKEdvYmVybmFjacOzbiBkZWwgVmFsbGUgZGVsIENhdWNhLCAyMDE3KS4NCg0KIVtWYWxsZSBkZWwgQ2F1Y2FdKEM6L1VzZXJzL0xVSVNBIENBUlJJT04vUGljdHVyZXMvTUFQQS5QTkcpDQoNClNlZ8O6biBlbCBEZXBhcnRhbWVudG8gQWRtaW5pc3RyYXRpdm8gTmFjaW9uYWwgZGUgRXN0YWTDrXN0aWNhIChEQU5FKSwgbGEgcG9ibGFjacOzbiBkZWwgVmFsbGUgZGVsIENhdWNhIGVuIGVsIGHDsW8gMjAyMCBlcyBkZSA0LjUzMi4xNTIgaGFiaXRhbnRlcy4gRGUgZXN0YSBjaWZyYSwgdW4gNTIuNSUgY29ycmVzcG9uZGUgYSBsYSBwb2JsYWNpw7NuIGZlbWVuaW5hIHkgZWwgNDcuNSUgcmVzdGFudGUsIHJlcHJlc2VudGEgbGEgcG9ibGFjacOzbiBtYXNjdWxpbmEuDQoNCkVzdGFzIG1pc21hcyBlc3RhZMOtc3RpY2FzIG11ZXN0cmFuIHF1ZSBsYSBwb2JsYWNpw7NuIGRlbCBkZXBhcnRhbWVudG8gZXN0w6EgY29uZm9ybWFkYSBlbiBzdSBtYXlvcsOtYSBwb3IgasOzdmVuZXMgbWVub3JlcyBkZSAxNSBhw7FvcyB5IGFkdWx0b3MgbWF5b3JlcyBkZSA1OSBhw7FvcyBxdWUgc29uIGRlcGVuZGllbnRlcyBkZSBsYSBwb2JsYWNpw7NuIHByb2R1Y3RpdmEgKGRlIDE1IGEgNTkgYcOxb3MpLiAoVmFsbGUgaW52ZW5jaWJsZSwgMjAyMCkuIA0KDQpMYSBlY29ub23DrWEgZGVsIERlcGFydGFtZW50byBzZSBiYXNhIHByaW5jaXBhbG1lbnRlIGVuIGxhIHByZXN0YWNpw7NuIGRlIHNlcnZpY2lvcywgbGEgaW5kdXN0cmlhIHkgbGFzIGFjdGl2aWRhZGVzIGFncm9wZWN1YXJpb3MuIExvcyBzZXJ2aWNpb3Mgc2UgYmFzYW4gZW4gbG9zIGNvbWVyY2lhbGVzLCBlbCB0cmFuc3BvcnRlLCBsYSBiYW5jYSB5IGxhcyBjb211bmljYWNpb25lcy4gTGEgaW5kdXN0cmlhIHNlIGNlbnRyYSBiw6FzaWNhbWVudGUgZW4gbGEgcHJvZHVjY2nDs24gZGUgYWxpbWVudG9zLCBlbCBwcm9jZXNhbWllbnRvIGRlIGF6w7pjYXIsIGxhIHByb2R1Y2Npw7NuIGRlIHF1w61taWNvcywgZsOhcm1hY29zIHkgcGzDoXN0aWNvcy4gUG9yIG90cm8gbGFkbywgbGEgYWdyaWN1bHR1cmEgc2UgY2VudHJhIGVuIGdyYW4gbWVkaWRhIGVuIGxhIHByb2R1Y2Npw7NuIGRlIGNhw7FhIGRlIGF6w7pjYXIsIGF1bnF1ZSwgb3Ryb3MgY3VsdGl2b3MgY29tbyBsYSBjYcOxYSBwYW5lbGVyYSwgZWwgc29yZ28sIGxhIHl1Y2EsIGVsIGFsZ29kw7NuLCBsYSBzb3lhLCBlbCBtYcOteiwgZWwgY2Fmw6ksIGxhIHBhbG1hIGFmcmljYW5hIHkgZWwgY2FjYW8gKFVuaWRhZCBFamVjdXRvcmEgZGUgU2FuZWFtaWVudG8gZGVsIFZhbGxlIGRlbCBDYXVjYSwgMjAxNikuIA0KDQpWYWxsZSBkZWwgQ2F1Y2EgcG9zZWUgdW5hIGRlIGxhcyBlY29ub23DrWFzIG3DoXMgZ3JhbmRlcyBkZWwgcGHDrXMgeSBlcyDDum5pY2FtZW50ZSBzdXBlcmFkbyBwb3IgQm9nb3TDoSB5IEFudGlvcXVpYS4gRWwgIGRlcGFydGFtZW50byBhcG9ydGEgZW4gdW4gOS43JSBhbCBQcm9kdWN0byBJbnRlcm5vIEJydXRvIChQSUIpIG5hY2lvbmFsIChFbCBUaWVtcG8sIDIwMTkpLiAgDQogIA0KIyMjIyAqKjIuMiBEYXRvcyoqDQoNCkxvcyBkYXRvcyB1dGlsaXphZG9zIHBhcmEgcmVhbGl6YXIgZWwgYW7DoWxpc2lzIGVzdGFkw61zdGljbyBkZWwgRGVwYXJ0YW1lbnRvIGRlbCBWYWxsZSBkZWwgQ2F1Y2EgZnVlcm9uIG9idGVuaWRvcyBlbiBsYSBiYXNlIGRlIGRhdG9zIGRlbm9taW5hZGEg4oCcRXZhbHVhY2lvbmVzIEFncm9wZWN1YXJpYXMgTXVuaWNpcGFsZXMgKEVWQSnigJ0gZGVzYXJyb2xsYWRhIHBvciBlbCBEZXBhcnRhbWVudG8gQWRtaW5pc3RyYXRpdm8gTmFjaW9uYWwgZGUgRXN0YWTDrXN0aWNhLCBbREFORV0oaHR0cHM6Ly93d3cuZGF0b3MuZ292LmNvL0FncmljdWx0dXJhLXktRGVzYXJyb2xsby1SdXJhbC9FdmFsdWFjaW9uZXMtQWdyb3BlY3Vhcmlhcy1NdW5pY2lwYWxlcy1FVkEvMnBudy1tbWdlKS4gRXN0YSBiYXNlIGRlIGRhdG9zIGNvbnRpZW5lIHVuYSByZWNvcGlsYWNpw7NuIGhpc3TDs3JpY2EgZGUgbGEgcHJvZHVjY2nDs24gYWdyw61jb2xhIE5hY2lvbmFsIGhhY2llbmRvIGhpbmNhcGnDqSBlbiBsb3MgcHJvZHVjdG9yZXMsIGxhIGluZm9ybWFjacOzbiBhZ3LDrWNvbGEgZGVwYXJ0YW1lbnRhbCB5IG11bmljaXBhbCBjb24gZWwgZmluIGRlIGZvcnRhbGVjZXIgbGEgcHJvZHVjY2nDs24geSBjb21lcmNpYWxpemFjacOzbi4gDQoNClBhcmEgZXN0ZSBjdWFkZXJubywgdGFtYmnDqW4gc2UgaGl6byB1c28gZGVsIHNoYXBlZmlsZSBkZWwgREFORSBsbGFtYWRvIFtNYXJjbyBHZW9lc3RhZMOtc3RpY28gRGVwYXJ0YW1lbnRhbF0oaHR0cHM6Ly9nZW9wb3J0YWwuZGFuZS5nb3YuY28vc2VydmljaW9zL2Rlc2NhcmdhLXktbWV0YWRhdG9zL2Rlc2NhcmdhLW1nbi1tYXJjby1nZW9lc3RhZGlzdGljby1uYWNpb25hbC8pICwgZWwgY3VhbCBwZXJtaXRlIHJlZmVyZW5jaWFyIGxhIGluZm9ybWFjacOzbiBlc3RhZMOtc3RpY2EgY29uIHN1IGxvY2FsaXphY2nDs24gZ2VvZ3LDoWZpY2EuIEVzdGUgYXJjaGl2byBjb250aWVuZSDDoXJlYXMgZ2VvZXN0YWTDrXN0aWNhcyAoZGVwYXJ0YW1lbnRvcywgbXVuaWNpcGlvcywgY2FiZWNlcmFzIG11bmljaXBhbGVzLCByZXN0byBydXJhbCwgY2VudHJvIHBvYmxhZG9zLCBlbnRyZSBvdHJvcykgZGVsaW1pdGFkYXMgcG9yIGFjY2lkZW50ZXMgbmF0dXJhbGVzIG8gZGUgZm9ybWEgY3VsdHVyYWwuICBTZSBjb21wb25lIGRlIDExMDEgbXVuaWNpcGlvcywgMjAgw6FyZWFzIG5vIG11bmljaXBhbGl6YWRhcyB5IGxhIGlzbGEgZGUgU2FuIEFuZHLDqXMuIA0KDQojIyMjICoqMi4zIE3DqXRvZG9zKioNCg0KTG9zIHJlc3VsdGFkb3MgbW9zdHJhZG9zIGVuIGVsIHByZXNlbnRlIGluZm9ybWUgZnVlcm9uIG9idGVuaWRvcyBhIHBhcnRpciBkZSBwcm9jZWRpbWllbnRvcyBlc3RhZMOtc3RpY29zIGxsZXZhZG9zIGEgY2FibyBlbiBlbCBwcm9ncmFtYSBSIHkgc3UgZXh0ZW5zacOzbiBSU3R1ZGlvLiBMYXMgbGlicmVyw61hcyB1c2FkYXMgcGFyYSByZWFsaXphciBsYSBjYXJhY3Rlcml6YWNpw7NuIGRlbCBkZXBhcnRhbWVudG8gZGVsIFZhbGxlIGRlbCBDYXVjYSBzb246ICpMZWFmbGV0KiwgKlNmKiwgKlJnZW9zKiwgKkdncGxvdDIqLCAqVGlkeXZlcnNlKiwgKmRwbHlyKi4gQ29tbyBiYXNlIHNlIHRvbWFyb24gbG9zIGN1YWRlcm5vcyAzIHkgNCwgbG9zIGN1YWxlcyBidXNjYWJhbiBmYW1pbGlhcml6YXJub3MgY29uIGxvcyBjw7NkaWdvcyBxdWUgbm9zIHByb3BvcmNpb25hbiBsYXMgbGlicmVyw61hcyBhbnRlcmlvcm1lbnRlIG1lbmNpb25hZGFzLiBFbiBlbCBjdWFkZXJubyAzIHNlIHRyYWJhamEgcHJpbmNpcGFsbWVudGUgY29uIGxhIGxpYnJlcsOtYSAqZHBseXIqLCBsYSBjdWFsIG5vcyBwZXJtaXRlIGVkaXRhciB2YXJpYWJsZXMsIHNlbGVjY2lvbmFyIGRhdG9zIHkgZmlsdHJhcmxvcyBsbyBxdWUgcmVzdWx0YSBtdXkgw7p0aWwgYSBsYSBob3JhIGRlIGNvbnN1bHRhciBlc3RhZMOtc3RpY2FzIHkgYW5hbGl6YXIgbGFzIGFjdGl2aWRhZGVzIGFncm9lY29uw7NtaWNhcyBkZSB1biBkZXBhcnRhbWVudG8gbyBtdW5pY2lwaW8uIFBvc3Rlcmlvcm1lbnRlIHNlIHVzYSDigJxnZ3Bsb3Qy4oCdIHBhcmEgcmVhbGl6YXIgZGlhZ3JhbWFzIGRlIGJhcnJhcyB5IGdyw6FmaWNvcyBkZSB0b3J0YSBjb24gbGFzIHZhcmlhYmxlcyBhbnRlcmlvcm1lbnRlIGNsYXNpZmljYWRhcy4gRW4gZWwgY3VhZGVybm8gNCB1c2Ftb3MgbGFzIG1pc21hcyBsaWJyZXLDrWFzIHF1ZSBlbiBlbCAzLCBzb2xvIHF1ZSBhZ3JlZ2Ftb3MgKmxlYWZsZXQqLCBsYSBjdWFsIHNpcnZlIHBhcmEgaGFjZXIgbWFwYXMgIHkgY29sb2NhciBtYXJjYWRvcmVzIGVuIGVzdGUuIExhIGxpYnJlcsOtYSBtw6FzIGltcG9ydGFudGUgZW4gYW1ib3MgY3VhZGVybm9zIGVzIGxhIOKAnGRwbHly4oCdIHBvcnF1ZSBub3MgcGVybWl0ZSBvcmdhbml6YXIgbG9zIGRhdG9zLCByZWVtcGxhemFybG9zLCBkaWZlcmVuY2lhcmxvcyB5IGZpbHRyYXJsb3MgcGFyYSBkZXNwdcOpcyBhbmFsaXphcmxvcyBlc3RhZMOtc3RpY2FtZW50ZSBkZSBtYW5lcmEgbcOhcyBzZW5jaWxsYS4gDQoNCiMjIyAqKjMuIFJlc3VsdGFkb3MgeSBkaXNjdXNpw7NuKiogDQoNCkxhIGNvbXByZW5zacOzbiBkZSBsYXMgZXN0YWTDrXN0aWNhcyBkZXBhcnRhbWVudGFsZXMgZXN0dWRpYWRhcyBlbiBlbCBwcmVzZW50ZSBpbmZvcm1lLCBzZSBkaXZpZGUgZW4gZG9zIG1vbWVudG9zIGNydWNpYWxlcyBjb21wbGVtZW50YXJpb3MgZW50cmUgc8OtLiBFbiBwcmltZXJhIGluc3RhbmNpYSwgc2UgaW52ZXN0aWfDsyBwb3IgbWVkaW8gZGUgY29tYW5kb3Mgc2VuY2lsbG9zIGRlIFIgYWxndW5vcyBhc3BlY3RvcyBiw6FzaWNvcyBkZSBsYSBwcm9kdWNjacOzbiBjb24gZWwgZmluIGRlIGNyZWFyIHVuIHBhbm9yYW1hIGdlbmVyYWwgZGVsIFZhbGxlIGRlbCBDYXVjYSB5IHN1IGRpc3RyaWJ1Y2nDs24gYWdyb3BlY3VhcmlhLiANCg0KUG9zdGVyaW9ybWVudGUsIHNlIHV0aWxpesOzIGVsIGFyY2hpdm8gRVZBIHBhcmEgY29ub2NlciBhIHByb2Z1bmRpZGFkIGxhIHByb2R1Y2Npw7NuIGRlIGFsZ3Vub3MgY3VsdGl2b3MgZGUgaW50ZXLDqXMgY29tZXJjaWFsIHBhcmEgZWwgZGVwYXJ0YW1lbnRvIGRldGVybWluYWRvcyBhIHRyYXbDqXMgZGUgdW5hIGludmVzdGlnYWNpw7NuIHByZXZpYSBleHB1ZXN0YSBicmV2ZW1lbnRlIGVuIGxhIGRlc2NyaXBjacOzbiBkZSBsYSB6b25hIGRlIGVzdHVkaW8gKHNlY2Npw7NuIDIuMSkuDQoNCiMjIyMgKiozLjEgRXN0YWTDrXN0aWNhcyBnZW5lcmFsZXMgZGVsIGRlcGFydGFtZW50byoqIA0KDQpQcmltZXJvLCBub3MgY2VudHJhcmVtb3MgZW4gY29ub2NlciBsb3MgY3VsdGl2b3MgcXVlIHRpZW5lbiBtYXlvciBwcm9kdWNjacOzbiBtZWRpYSwgZXMgZGVjaXIsIGFxdWVsbG9zIHF1ZSBtYW50aWVuZW4gdW5hIHByb2R1Y2Npw7NuIG3DoXMgZXN0YWJsZSBhIGxvIGxhcmdvIGRlbCBwZXJpb2RvIGV2YWx1YWRvLiBFbiBlbCBjYXNvIGRlbCBWYWxsZSBkZWwgQ2F1Y2EsIGxvcyBjdWx0aXZvcyBjb21vIGxhIGNhw7FhIGF6dWNhcmVyYSwgbGEgcGnDsWEgeSBsYSBwYXBheWEgZGVzdGFjYW4gZW4gZXN0ZSBhc3BlY3RvDQoNCmBgYHtyIGVjaG89RkFMU0V9DQpldml0YSAlPiUNCiAgZ3JvdXBfYnkoQ1VMVElWTykgJT4lDQogIHN1bW1hcml6ZShtZWFuX3JlbmQgPSBtZWFuKFJFTkRJTSwgbmEucm0gPSBUUlVFKSkNCmBgYA0KTGEgcGnDsWEgaGEgc2lkbyB1bm8gZGUgbG9zIGN1bHRpdm9zIG1heW9ybWVudGUgdHJhYmFqYWRvcyBlbiBsYSByZWdpw7NuIGRlc2RlIGhhY2UgdmFyaWFzIGTDqWNhZGFzIGVuIGVsIGRlcGFydGFtZW50by4gRW4gdW4gcHJpbmNpcGlvIGxhIHZhcmllZGFkIG3DoXMgdHJhYmFqYWRhIGZ1ZSBDYW1icmF5LCBwb3N0ZXJpb3JtZW50ZSBzZSBvcHTDsyBwb3IgbGEgcGnDsWEgZGUgYWd1YSB5ICwgZW4gbGEgYWN0dWFsaWRhZCwgc2UgbWFuZWphbiBtw6FzIHZhcmllZGFkZXMgY29tZXJjaWFsZXMgKFBhdGnDsW8sIDIwMDIpLiBFbiBDb2xvbWJpYSwgbGEgcGnDsWEgdGllbmUgdW4gYnVlbiByZW5kaW1pZW50byBjdWFuZG8gZXMgY3VsdGl2YWRhIGVudHJlIGxvcyA0MDAgeSAxMzAwIG1zbm0gYWNvbXBhw7FhZG8gZGUgdW5hcyB0ZW1wZXJhdHVyYXMgcXVlIG9zY2lsYW4gZW50cmUgMTggeSAyNyDCsEMgeSB1bmEgcHJlY2lwaXRhY2nDs24gZGUgMTIwMCBhIDE4MDAgbW0gZGlzdHJpYnVpZG9zIGR1cmFudGUgZWwgYcOxbyAoQXNvaG9mcnVjb2wsIDIwMTcpLg0KDQpQb3Igb3RybyBsYWRvLCBsYSBwYXBheWEgc2UgY3VsdGl2YSBlbnRyZSBsb3MgMCB5IDE2MDAgbXNubSwgcmVxdWllcmUgZGUgcHJlY2lwaXRhY2lvbmVzIG1lZGlhcyBkZSAxODAwIG1tIGRpc3RyaWJ1aWRhcyBhIGxvIGxhcmdvIGRlbCBhw7FvIGFjb21wYcOxYWRhcyBkZSB0ZW1wZXJhdHVyYXMgZW50cmUgMjAgeSAyMiBncmFkb3MgY2VudMOtZ3JhZG9zIChDb3Jwb3JhY2nDs24gQ29sb21iaWFuYSBkZSBJbnZlc3RpZ2FjacOzbiBBZ3JvcGVjdWFyaWEsIHMuIGYuKS4NCiBFbCB0ZXJyaXRvcmlvIHZhbGxlY2F1Y2FubyBwbGFubyB0aWVuZSB1bmEgdGVtcGVyYXR1cmEgcHJvbWVkaW8gZGUgMjQgwrBDIGNvbnNpZGVyYWRhIMOzcHRpbWEgcGFyYSBsYSBwcm9kdWNjacOzbiBkZSBmcnV0YXMgZGViaWRvIGEgcXVlIGxhIGZvdG9zw61udGVzaXMgdGllbmUgbWVqb3IgZnVuY2lvbmFtaWVudG8gZW50cmUgbG9zIDIxIHkgMjggwrBDLiBTaW4gZW1iYXJnbywgbGEgdGVtcGVyYXR1cmEgbcOheGltYSB5IG3DrW5pbWEgZGlhcmlhIHB1ZWRlIGZsdWN0dWFyIGhhc3RhIDEwIMKwQyB5IHBlcm1pdGlyIHVuYSBtYXlvciBhY3VtdWxhY2lvbiBkZSBjYXJib2hpZHJhdG9zIGVuIGxhcyBwbGFudGFzIChNaW5pc3RlcmlvIGRlIEFncmljdWx0dXJhIHkgRGVzYXJyb2xsbyBSdXJhbCBldCBhbC4sIDIwMDYpLiBTZWfDum4gQXNvaG9mcnVjb2wsIGxhIHRlY25pZmljYWNpw7NuIGRlIGxvcyBjdWx0aXZvcyBzZSBoYSBpbmNyZW1lbnRhZG8gZW4gbG9zIMO6bHRpbW9zIGHDsW9zIGVuIGNvbmp1bnRvIGNvbiBsYXMgcmF6b25lcyBleHBsaWNhZGFzIGFudGVyaW9ybWVudGUsIGp1c3RpZmljYW4gZWwgYWx0byByZW5kaW1pZW50byBkZSBsYSBwacOxYSB5IGxhIHBhcGF5YSBlbiBlbCBkZXBhcnRhbWVudG8uIA0KIA0KTGEgY2HDsWEgZGUgYXrDumNhciBwb3Igb3RybyBsYWRvLCBzZSBkZXNhcnJvbGxhIMOzcHRpbWFtZW50ZSBlbiBhbHRpdHVkZXMgc29icmUgZWwgbml2ZWwgZGVsIG1hciBkZSA3MDAgYSAyMDAwIG0gIHkgdGVtcGVyYXR1cmFzIGVudHJlIGxvcyAyNyDCsEMgeSBsb3MgMzMgwrBDLiBDb24gcmVzcGVjdG8gYSBsb3MgcmVjdXJzb3MgaMOtZHJpY29zLCByZXF1aWVyZSBlbnRyZSAxMjAwIGEgMTUwMCBtbSBhbnVhbGVzIGRpc3RyaWJ1aWRvcyBsbyBtw6FzIGVxdWl0YXRpdmFtZW50ZSBhIGxvIGxhcmdvIGRlbCBhw7FvIChTdWJpcsOzcywgMTk5NSkuDQoNCkVsIHRlcnJpdG9yaW8gdmFsbGVjYXVjYW5vIGN1bXBsZSBjb24gbGFzIGNvbmRpY2lvbmVzIGNsaW3DoXRpY2FzIHJlcXVlcmlkYXMgcG9yIGxhIGNhw7FhIGRlIGF6w7pjYXIsIHBvciBlc3RhIHJhesOzbiwgc3UgY3VsdGl2byBzZSBoYSBleHRlbmRpZG8gYSBsbyBsYXJnbyBkZWwgZGVwYXJ0YW1lbnRvIHkgc2UgaGEgY29uc29saWRhZG8gY29tbyBlbCBwcmluY2lwYWwgbW90b3IgZGUgbGEgZWNvbm9tw61hLiBFbiAyMDE3LCBlbCBjdWx0aXZvIGRlIGNhw7FhIGRlIGF6w7pjYXIgZ2VuZXJhYmEgMTg4MDAwIGVtcGxlb3MgZGlyZWN0b3MgeSBsb2dyYWJhIGdlbmVyYXIgZWwgZW5jYWRlbmFtaWVudG8gcHJvZHVjdGl2byANCihOb3RpY2lhcyBDYXJhY29sLCAyMDE3KS4NCg0KQWhvcmEsIHNlIHF1aWVyZSBjb25vY2VyIGN1w6FsZXMgbXVuaWNpcGlvcyB0aWVuZW4gbWF5b3IgcHJvZHVjdGl2aWRhZCBwb3IgZ3J1cG8gZGUgY3VsdGl2b3MgaW5kZXBlbmRpZW50ZW1lbnRlIGRlbCBhw7FvLiBEZWJpZG8gYSBxdWUgZWwgZGVwYXJ0YW1lbnRvIGVzIHVuIGdyYW4gcHJvZHVjdG9yIGRlIGZydXRhbGVzIHkgZGUgb3Ryb3MgcGVybWFuZW50ZXMsIHNlcsOhIGRlIGdyYW4gaW50ZXLDqXMgZWwgcmVzdWx0YWRvIGRlIGRpY2hhcyBlc3RhZMOtc3RpY2FzLg0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KZXZhX3ZhbGxlICU+JQ0KICBncm91cF9ieShHUlVQTywgTVVOSUNJUElPKSAlPiUNCiAgc3VtbWFyaXplKG1heF9yZW5kID0gbWF4KFJFTkRJTSwgbmEucm0gPSBUUlVFKSkgJT4lDQogIHNsaWNlKHdoaWNoLm1heChtYXhfcmVuZCkpDQpgYGANCkxhIG1heW9yIHByb2R1Y2Npw7NuIGRlIGZydXRhbGVzIHkgZGUgbG9zIG90cm9zIHBlcm1hbmVudGVzIGRlbCBkZXBhcnRhbWVudG8gb2N1cnJpw7MgZW4gZWwgbXVuaWNpcGlvIGRlIFRydWppbGxvLiBFbCBtdW5pY2lwaW8gZGUgVHJ1amlsbG8gc2UgdWJpY2EgZW4gZWwgY2VudHJvIGRlbCBkZXBhcnRhbWVudG8geSBjb21wcmVuZGUgdW5hIHpvbmEgbW9udGHDsW9zYSBlbnRyZSBsb3MgMTAwMCB5IDMwMDAgbXNubS4gRW4gZWwgdGVycml0b3JpbyBoYXkgZ3JhbiBjYW50aWRhZCBkZSByw61vcyB5IHF1ZWJyYWRhcyBxdWUgZGVzZW1ib2NhbiBlbiBlbCByw61vIENhdWNhLg0KDQpMYSBlY29ub23DrWEgZGUgVHJ1amlsbG8gZXMgcHJpbmNpcGFsbWVudGUgYWdyw61jb2xhIHB1ZXN0byBxdWUgc2UgdHJhYmFqYW4gY3VsdGl2b3MgcGVybWFuZW50ZXMgY29tbyBlbCBjYWbDqSwgZWwgYmFuYW5vIHkgZWwgcGzDoXRhbm8gc2llbmRvIGVzdGUgw7psdGltbyBlbCBwcmVmZXJpZG8gZW50cmUgbG9zIGFncmljdWx0b3JlcyBkZWwgbXVuaWNpcGlvLiBTaW4gZW1iYXJnbywgVHJ1amlsbG8gdGFtYmnDqW4gZXMgY29uc2lkZXJhZG8gdW4gYnVlbiBwcm9kdWN0b3IgZGUgZnJ1dGFzIGNvbW8gbGEgbW9yYSwgZWwgYWd1YWNhdGUgeSBlbCBsdWxvIChHdXRpZXJyZXosIEwuICYgUm9zZXJvLCBULiwgMjAxOSkuIA0KDQpBIGNvbnRpbnVhY2nDs24gc2UgcHJldGVuZGUgbW9zdHJhciBsb3MgbXVuaWNpcGlvcyBxdWUgdHV2aWVyb24gZWwgbWVqb3IgcmVuZGltaWVudG8gbcOheGltbyBlbnRyZSBsb3MgYcOxb3MgMjAwNyBhIDIwMTguIA0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KZXZhX3ZhbGxlICU+JQ0KICBncm91cF9ieShDVUxUSVZPLCBNVU5JQ0lQSU8pICU+JQ0KICBzdW1tYXJpemUobWF4X3JlbmQgPSBtYXgoUkVORElNLCBuYS5ybSA9IFRSVUUpKSAlPiUNCiAgc2xpY2Uod2hpY2gubWF4KG1heF9yZW5kKSkNCmBgYA0KDQpUcnVqaWxsbyBlcyB1biBtdW5pY2lwaW8gZWwgY3VhbCBkZXN0YWNhIHBvciBzdXMgY3VsdGl2b3MgZGUgcGzDoXRhbm8sIGNhZsOpLCBmcnV0YXMgeSB2ZXJkdXJhcywgcGVybyBlbiBlc3BlY2lhbCB0ZW5lciBlbCBtZWpvciByZW5kaW1pZW50byBtw6F4aW1vIHBvciBjdWx0aXZvIGRlIGNhw7FhIGRlIGF6w7pjYXIgZGVsIGRlcGFydGFtZW50byBzZWfDum4gbGFzIGVzdGFkw61zdGljYXMgYW5hbGl6YWRhcy4gTGEgdWJpY2FjacOzbiBnZW9ncsOhZmljYSBkZWwgbXVuaWNpcGlvIHkgc3UgY29uZmx1ZW5jaWEgY29uIHLDrW9zIHkgb3RyYXMgY3VlbmNhcyBow61kcmljYXMgaGFjZW4gZGUgZXN0ZSB1biBwb3RlbmNpYWwgcHJvZHVjdG9yIGRlIGNhw7FhLiANCg0KRGFndWEgZXMgdW4gbXVuaWNpcGlvIHF1ZSBzZSB1YmljYSBhbCBvY2NpZGVudGUgZGVsIGRlcGFydGFtZW50bywgY29uIHVuYSB0ZW1wZXJhdHVyYSBtZWRpYSBkZSAyNcKwQyB5IGNvbiB1biByZWxpZXZlIGRlIHNpbWFzIHkgY3VtYnJlcyx5IGNvbiAgdW5hIGdyYW4gY2FudGlkYWQgZGUgcsOtb3MgeSBjdWVuY2FzLiBFbCBtdW5pY2lwaW8gZGUgRGFndWEgYmFzYSBzdSBlY29ub23DrWEgY29tcGxldGFtZW50ZSBlbiBsYSBhZ3JpY3VsdHVyYSAgZXNwZWNpYWxtZW50ZSBjYWbDqSwgcGnDsWEsIGNhw7FhIHBhbmVsZXJhLCBmcnV0YXMsIG1hw616LCBwbMOhdGFubywgY2FjYW8geSBmcmlqb2wuIEEgcGVzYXIgcXVlIERhZ3VhIGVzIG3DoXMgY29ub2NpZG8gcG9yIHNlciB1biBncmFuIHByb2R1Y3RvciBkZSBwacOxYSwgZXN0ZSBvYnR1dm8gZWwgbWVqb3IgcmVuZGltaWVudG8gbcOheGltbyBlbiBlbCBjdWx0aXZvIGRlIGNhZsOpLCBjYWxhYmFjw61uLCBicmV2YSwgY2ltYXJyw7NuLCBzaW4gZW1iYXJnbyBzb2xvIG5vcyBjZW50cmFyZW1vcyBwcmluY2lwYWxtZW50ZSBlbiBsYSBwcm9kdWNjacOzbiBkZSBjYWbDqS4NCg0KU2V2aWxsYSBzZSBlbmN1ZW50cmEgZW4gbGEgem9uYSBtw6FzIGFsdGEgZGVsIGRlcGFydGFtZW50byB5IHRpZW5lIGNvbW8gcHJpbmNpcGFsIGFjdGl2aWRhZCBlY29uw7NtaWNhIGxhIHByb2R1Y2Npw7NuIGRlIGNhZsOpLCBhIGxhIGN1YWwgbGUgZGVkaWNhIG3DoXMgZGUgMTUwMDAgaGVjdMOhcmVhcyBkZSBjdWx0aXZvLiBPdHJvcyBjdWx0aXZvcyBpbXBvcnRhbnRlcyBzb24gZWwgcGzDoXRhbm8sIHl1Y2EsIGNhw7FhIHBhbmVsZXJhLCBtYcOteiwgZnJpam9sLCBsYSBwYXBhLCBsYSBjZWJhZGEgeSBwb3Igc3VwdWVzdG8gZWwgYWd1YWNhdGUsIGN1bHRpdm8gZW4gZWwgcXVlIHR1dm8gZWwgbWVqb3IgcmVuZGltaWVudG8gZW4gbGFzIGVzdGFkw61zdGljYXMgRVZBLiAgDQoNCiMjIyMgKiozLjIgY3VsdGl2b3MgaW1wb3J0YW50ZXMgZW4gZWwgVmFsbGUgZGVsIENhdWNhKioNCg0KDQoNCiMjIyMjICoqMy4yLjEgQ2Fmw6kqKiANCg0KRWwgY2Fmw6kgIGRlbCBWYWxsZSBkZWwgQ2F1Y2Egc2UgY3VsdGl2YSBlbiBwZXF1ZcOxYXMgcGFyY2VsYXMgcG9yIGNvbXVuaWRhZGVzIGNhbXBlc2luYXMsIGluZMOtZ2VuYXMgeSBhZnJvZGVzY2VuZGllbnRlcywgZW4gMzkgbXVuaWNpcGlvcywgbG9zIGN1YWxlcyBhbGJlcmdhbiBtw6FzIGRlIDIyLjAwMCBmYW1pbGlhcyBxdWUgY3VsdGl2YW4gbcOhcyBkZSA1MS4wMDAgaGVjdMOhcmVhcyBkZSBjYWbDqSBhcsOhYmljby4gQSBwZXNhciBkZSBxdWUgZW4gQ29sb21iaWEgbG9zIGRlcGFydGFtZW50b3MgcXVlIG3DoXMgcHJvZHVjY2nDs24gZGUgY2Fmw6kgdGllbmVuIHNvbiBRdWluZMOtbywgUmlzYXJhbGRhIHkgQ2FsZGFzLCBubyBzZSBoYWJsYSBkZSBxdWUgdmFyaWFzIGZhbWlsaWFzIHF1ZSBoYWJpdGFuIGVuIGVsIFZhbGxlIGRlbCBDYXVjYSB0aWVuZW4gbGEgcHLDoWN0aWNhIGRlbCBjdWx0aXZvIGRlIGNhZsOpIG11eSBhcnJhaWdhZGEgeSB0ZWNuaWZpY2FkYS4gRWwgVmFsbGUgcHJvZHVjZSBhcHJveGltYWRhbWVudGUgMS4yMDAuMDAwIGRlIHNhY29zIHggNjAgS2cgeSByZXByZXNlbnRhIGVsIDExJSBkZSBsYSBwcm9kdWNjacOzbiB0b3RhbCBkZSBjYWbDqSB2ZXJkZSBlbiBlbCBwYcOtcy4gDQoNClBhcmEgZW50ZW5kZXIgZWwgY3VsdGl2byBkZWwgY2Fmw6kgZW4gZWwgbXVuaWNpcGlvLCBhIGNvbnRpbnVhY2nDs24gc2UgZXZhbHVhcsOhIGxhIHByb2R1Y2Npw7NuIGRlbCBtaXNtbyBlbnRyZSBsb3MgYcOxb3MgMjAwNyB5IDIwMTg6DQoNCmBgYHtyIGVjaG89RkFMU0V9DQpnIDwtIGdncGxvdChhZXMoeD1ZRUFSLCB5PXRvbl9Qcm9kLzEwMDApLCBkYXRhID0gdmFsbGVfY2FmZSkgKyBnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsd2lkdGggPSAwLjUsIGZpbGwgPSAiYnJvd24zIikgKyBsYWJzKHk9J1Byb2R1Y2Npb24gZGUgY2Fmw6kgW1RvbiB4IDEwMDBdJykNCmBgYA0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KZyArIGdndGl0bGUoIkV2b2x1Y2nDs24gZGUgbGEgUHJvZHVjY2nDs24gZGUgY2Fmw6kgZW4gVmFsbGUgZGVsIENhdWNhIGRlc2RlIDIwMDcgaGFzdGEgMjAxOCIpICsgbGFicyhjYXB0aW9uPSAiQmFzYWRvIGVuIGRhdG9zIEVWQSAoTWluYWdyaWN1bHR1cmEsIDIwMjApIikNCmBgYA0KDQpFbiBlbCAyMDA3IGxhIHByb2R1Y2Npw7NuIGRlIGNhZsOpIGRlbCBkZXBhcnRhbWVudG8gZGVsIFZhbGxlIGRlbCBDYXVjYSBmdWUgZGUgYXByb3hpbWFkYW1lbnRlIDQ4MDAwIHRvbmVsYWRhcywgZWwgbm90b3JpbyBhdW1lbnRvIGRlIHByb2R1Y2Npw7NuIGRlIGNhZsOpIGVuIDIwMDggc2UgZGViZSBhIHF1ZSBlbCBjb21pdMOpIGRlcGFydGFtZW50YWwgZGUgY2FmZXRlcm9zICBpbmNlbnRpdm8gbGEgY2FmaWN1bHR1cmEgam92ZW4sIHNlIGRpZXJvbiBhIGNhYm8gY29uY3Vyc29zIGRlIGNhbGlkYWQgZGUgY2Fmw6kgeSBlbCBkZSBlbCBjdWVudG8gY2FmZXRlcm8uIFRhbWJpw6luIGxhIGFjdGl2YSBwYXJ0aWNpcGFjacOzbiBkZSBsYXMgY29vcGVyYXRpdmFzIGNhZmV0ZXJhcyBnZXN0aW9uYW5kbyBsYSBjb21wcmEgeSBsYSByZWd1bGFjacOzbiBkZSBwcmVjaW9zLCBnZW5lcmFuZG8gYXPDrSB1bmEgZ3JhbiBjYW50aWRhZCBkZSBlbXBsZW9zIGVzZSBtaXNtbyBhw7FvLiBFbiAyMDEwIGh1Ym8gdW4gZ3JhbiBhdW1lbnRvIGVuIGxhIHByb2R1Y2Npw7NuIGRlIGNhZsOpLCBlcyBlbCBhw7FvIGNvbiBsYSBtZWpvciBwcm9kdWNjacOzbiBlbiB0b2RvIGVsIGRlcGFydGFtZW50bywgZGViaWRvIGFsIGF1bWVudG8gZGUgcHJlY2lwaXRhY2lvbmVzIHF1ZSBodWJvLCBlbiBwcm9tZWRpbyBjYXllcm9uIDE2NjQgbW0uIEVuIDIwMTMgaHVibyB1bmEgYmFqYSBlbiBsYSBwcm9kdWNjacOzbiBkZSBjYWbDqSBkZWJpZG8gYSBxdWUgZGlzbWludXllcm9uIGxhcyBleHBvcnRhY2lvbmVzIHkgbGFzIGNvdGl6YWNpb25lcy4gRW4gMjAxNCBlbCBQSUIgZGVsIHBhw61zIHZvbHZpw7MgYSBhdW1lbnRhciwgZWwgbcOhcyBncmFuZGUgZGUgbG9zIMO6bHRpbW9zIDcgYcOxb3MsIGVuIDIwMTUgZGlzbWludXnDsyBsYSB0YXNhIGRlIGRlc2VtcGxlbyBkZSBsYSByZWdpw7NuIHkgIGVuIDIwMTYgdGFtYmnDqW4gc3ViacOzLiBFbiAyMDE3IGh1Ym8gdW5hIGRlc2FjZWxlcmFjacOzbiBlY29uw7NtaWNhIGVuIGVsIHBhw61zLCBzaW4gZW1iYXJnbyBlbCBzZWN0b3IgY2FmZXRlcm8gbm8gc2UgdmlvIHRhbiBhZmVjdGFkbyBjb21vIG90cm9zIHNlY3RvcmVzIHkgVmFsbGUgZGVsIENhdWNhIHNpZ3Vpw7MgZGVzdGFjYW5kby4gRGUgaWd1YWwgbWFuZXJhIHN1Y2VkZSBlbiAyMDE4LiAoQ0NDLCAyMDE4KQ0KDQpSZWNvcmRhbmRvIHF1ZSBlbCByZW5kaW1pZW50byBtw6F4aW1vIHNlIGNvbmNlbnRyw7MgZW4gZWwgbXVuaWNpcGlvIGRlIERhZ3VhLCBzZSBwcm9jZWRlIGEgcmV2aXNhciBzdSBldm9sdWNpw7NuIGVuIGVsIG1pc21vIHBlcmlvZG8gZGUgdGllbXBvIGFudGVyaW9yOg0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KZyA8LSBnZ3Bsb3QoYWVzKHg9WUVBUiwgeT10b25fUHJvZC8xMDAwKSwgZGF0YSA9IGRhZ3VhX2NhZmUpICsgZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLHdpZHRoID0gMC41LCBmaWxsID0gImNhZGV0Ymx1ZTMiKSArIGxhYnMoeT0nUHJvZHVjY2lvbiBkZSBjYWbDqSBbVG9uIHggMTAwMF0nKQ0KYGBgDQoNCmBgYHtyIGVjaG89RkFMU0V9DQpnICsgZ2d0aXRsZSgiRXZvbHVjacOzbiBkZSBsYSBwcm9kdWNjacOzbiBkZSBjYWbDqSBlbiBEYWd1YSBlbnRyZSAyMDA3IHkgMjAxOCIpICsgbGFicyhjYXB0aW9uPSAiQmFzYWRvIGVuIGRhdG9zIEVWQSAoTWluYWdyaWN1bHR1cmEsIDIwMjApIikNCmBgYA0KDQoNCkVuIDIwMDcgRGFndWEgbm8gZXJhIHVuIHByb2R1Y3RvciBhY3Rpdm8gZGUgY2Fmw6ksICBsYSBkZWNpc2nDs24gZGUgZW1wZXphciBhIHByb2R1Y2lyIGNhZsOpIHBvciBwYXJ0ZSBkZWwgbXVuaWNpcGlvIHNlIGRlYmUgcHJpbmNpcGFsbWVudGUgYSBxdWUgZW4gMjAwOCBlbCBkZXBhcnRhbWVudG8gaW5jZW50aXZvIGEgbG9zIGNhbXBlc2lub3MgYSB0ZW5lciBtw6FzIGN1bHRpdm9zIGRlIGNhZsOpLCBwb3IgbG8gdGFudG8gc2UgZW1wZXrDsyBhIHByb2R1Y2lyIG3DoXMgKEZlZGVyYWNpw7NuIGRlIGNhZmV0ZXJvcywgMjAwOSkuIEVuIDIwMTMgZWwgZWZlY3RvIGRlIGhhYmVyIGJhamFkbyBsYXMgY290aXphY2lvbmVzIHkgcG9yIGVuZGUgbGFzIGV4cG9ydGFjaW9uZXMsIGR1cmFudGUgbG9zIHByw7N4aW1vcyAzIGHDsW9zIGxhIHByb2R1Y2Npw7NuIGRlIGNhZsOpIGVuIGVsIG11bmljaXBpbyBubyBhdW1lbnTDsyBub3RvcmlhbWVudGUoREFORSwgMjAxNCwyMDE2KSwgaGFzdGEgMjAxNyBlbiBkb25kZSBhIHBlc2FyIHNlIGVtcGV6w7MgYSB0ZWNuaWZpY2FyIGxhIHpvbmEgbWFudGVuaWVuZG8gZW4gZ3JhbiBtYW5lcmEgbGEgcHJvZHVjY2nDs24gZGUgY2Fmw6kgZW4gZWwgZGVwYXJ0YW1lbnRvIGEgcGVzYXIgZGUgZGVzYWNlbGVyYWNpw7NuIGRlIGxhIGVjb25vbcOtYSBkZSBlc2UgYcOxby4gDQoNClBhcmEgY29tcGxldGFyIGVsIGFuw6FsaXNpcyBkZWwgY2Fmw6ksIHNlIGVzdHVkaWFyw6EgZWwgbWFwYSBvYnRlbmlkbyBwYXJhIGxhIHByb2R1Y2Npw7NuIHkgZWwgw6FyZWEgY29zZWNoYWRhIGRlbCBkZXBhcnRhbWVudG8gZW4gZWwgYcOxbyAyMDE4LiANCg0KIyMjIyMjICoqMy4yLjEuMSDDgXJlYSBjb3NlY2hhZGEqKg0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KbWFwYTMNCmBgYA0KDQpFbiBsYSBGaWd1cmEgYW50ZXJpb3Igc2UgcHVlZGUgYXByZWNpYXIgcXVlIGVsIG11bmljaXBpbyBjb24gZWwgw6FyZWEgbWF5b3JtZW50ZSBjb3NlY2hhZGEgZGUgY2Fmw6kgZW4gVmFsbGUgZGVsIENhdWNhIGVzIFNldmlsbGEuIEVzdG8gc2UgZGViZSBwcmluY2lwYWxtZW50ZSBhIHF1ZSBsYSBlY29ub23DrWEgZGVsIG11bmljaXBpbyBzZSBiYXNhIGVuIGdyYW4gcGFydGUgZW4gZWwgY3VsdGl2byBkZSBlc3RlIHByb2R1Y3RvLCBhdW5xdWUgbGEgYWdyaWN1bHR1cmEsIGxhIGdhbmFkZXLDrWEgeSBlbCBjb21lcmNpbyB0YW1iacOpbiBsbyBzdXN0ZW50YW4uIERlYmlkbyBhIGxhIGdyYW4gY2FudGlkYWQgZGUgaGVjdMOhcmVhcyBxdWUgZGVkaWNhIHBhcmEgZWwgY3VsdGl2byBkZSBjYWbDqSwgU2V2aWxsYSBlcyBjb25vY2lkYSBjb21vIGxhIOKAnENhcGl0YWwgQ2FmZXRlcmEgZGUgQ29sb21iaWHigJ0sIHBvciBlbmRlLCBlbCByZXN1bHRhZG8gZGUgZXN0YSBlc3RhZMOtc3RpY2FzIGVzIGp1c3RvIGxvIHF1ZSBzZSBlc3BlcmFiYSBlbmNvbnRyYXIgKEFsY2FsZMOtYSBkZSBTZXZpbGxhLCAyMDE5KS4NCg0KIyMjIyMjICoqMy4yLjEuMiBQcm9kdWNjacOzbioqDQoNCmBgYHtyIGVjaG89RkFMU0V9DQptYXBhMg0KYGBgDQoNCkVuIGVsIDIwMTgsIGVsIG11bmljaXBpbyBxdWUgc2UgZGVzdGFjw7MgZW4gbGEgcHJvZHVjY2nDs24gZGUgY2Fmw6kgZnVlIFNldmlsbGEuIEVzdGUgcmVzdWx0YWRvIG5vIGVzIGV4dHJhw7FvIHNpIHNlIHRpZW5lIGVuIGN1ZW50YSBxdWUgZWwgbXVuaWNpcGlvIGVzIGxsYW1hZG8gbGEg4oCcQ2FwaXRhbCBDYWZldGVyYSBkZSBDb2xvbWJpYeKAnS4gTGEgaW5mb3JtYWNpw7NuIGRlIGxhIGZpZ3VyYSBlcyBjb25ncnVlbnRlIHNpIHNlIHRpZW5lIGVuIGN1ZW50YSBxdWUgU2V2aWxsYSB0YW1iacOpbiBmdWUgZWwgbXVuaWNpcGlvIGNvbiBtYXlvciDDoXJlYSBjb3NlY2hhZGEgZGVsIGRlcGFydGFtZW50byBzdXBlcmFuZG8gYW1wbGlhbWVudGUgYSBzdXMgY29tcGV0aWRvcmVzLiAgRWwgbXVuaWNpcGlvIGRlIEVsIMOBZ3VpbGEgdGFtYmnDqW4gcHJvZHVqbyB1bmEgY29uc2lkZXJhYmxlIGNhbnRpZGFkIGRlIGNhZsOpIGRlYmlkbyBhIHF1ZSBlcyBzdSBwcmluY2lwYWwgZnVlbnRlIGVjb27Ds21pY2EuIFNpbiBlbWJhcmdvLCBhIGRpZmVyZW5jaWEgZGUgU2V2aWxsYSBxdWUgcG9zZWUgbXVjaG9zIG90cm9zIGN1bHRpdm9zIHBhcmEgbnV0cmlyIHN1IGVjb25vbcOtYSwgRWwgw4FndWlsYSDDum5pY2FtZW50ZSBjdWx0aXZhIGNhZsOpIHkgcGzDoXRhbm8uIFBvciBlc3RhIHJhesOzbiwgc2UgY29uc2lkZXJhIHF1ZSBlbCBtdW5pY2lwaW8gZXMgZWwgbcOhcyBwb2JyZSBkZSB0b2RvIFZhbGxlIGRlbCBDYXVjYSAoTWFydGluZXosIDIwMjApLiANCg0KIyMjIyMgKiozLjIuMiBBZ3VhY2F0ZSoqDQoNCkVsIGNsaW1hIHF1ZSBwcmVzZW50YSBlbCBkZXBhcnRhbWVudG8gZGVsIFZhbGxlIGRlbCBDYXVjYSBlcyBhcHJvcGlhZG8gcGFyYSBlbCBjdWx0aXZvIGRlIGFndWFjYXRlIGhhc3MsIHkgY3VlbnRhIGNvbiAxODAwIEhBIHBhcmEgZWwgY3VsdGl2byBkZSBlc3RlIGVuIGxvcyBtdW5pY2lwaW9zIGRlIFJvbGRhbmlsbG8sIEJvbMOtdmFyIFRydWppbGxvLCBFbCBDYWlybywgVmVyc2FsbGVzIHkgZWwgw4FndWlsYS4gRW4gMjAxNyBsb3MgbXVuaWNpcGlvcyBjb24gbWF5b3IgcHJvZHVjY2nDs24gZnVlcm9uIEFyZ2VsaWEsIENhaWNlZG9uaWEsIFNldmlsbGEsIFRydWppbGxvIHkgUGFsbWlyYSwgc3VtYW5kbyBlbiB0b3RhbCAyMC42MjkgdG9uZWxhZGFzIGFsIGZpbmFsIGRlbCBtaXNtbyBhw7FvLiBFbiBDb2xvbWJpYSBzZSBoYSBwb3RlbmNpYWRvIGxhIGV4cG9ydGFjacOzbiBkZSBhZ3VhY2F0ZSBwYXJhIG1vdGl2YXIgbGEgcmVhY3RpdmFjacOzbiBlY29uw7NtaWNhIHBvciBsYXMgY29uc2VjdWVuY2lhcyBkZSBsYSBwYW5kZW1pYSwgRWwgdmFsbGUgZGVsIENhdWNhIHNlIHViaWNhIGNvbW8gZWwgc2VndW5kbyBwcm9kdWN0b3IgbcOhcyBncmFuZGUgZGUgYWd1YWNhdGUgZGVsIHBhw61zLiAoTG9wZXosIEouMjAxNykNCg0KRW4gVHJ1amlsbG8gc2UgcHJlc2VudGFuIG1vbm9jdWx0aXZvcyBkZSBhZ3VhY2F0ZS4gDQoNCkRlYmlkbyBhIHN1IGNyZWNpZW50ZSBpbXBvcnRhbmNpYSBlbiBsYSBlY29ub23DrWEgZGVwYXJ0YW1lbnRhbCwgc2UgcHJvY2VkZXLDoSBhIGhhY2VyIHVuIGFuw6FsaXNpcyBkZSBsYSBldm9sdWNpw7NuIHByb2R1Y3RpdmEgZGVsIGN1bHRpdm8gZW50cmUgbG9zIGHDsW9zIDIwMDcgeSAyMDE4Lg0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KZyA8LSBnZ3Bsb3QoYWVzKHg9WUVBUiwgeT10b25fUHJvZC8xMDAwKSwgZGF0YSA9IHZhbGxlX2FndWFjYSkgKyBnZW9tX2JhcihzdGF0PSdpZGVudGl0eScsd2lkdGggPSAwLjUsIGZpbGwgPSAiYmx1ZTQiKSArIGxhYnMoeT0nUHJvZHVjY2lvbiBkZSBhZ3VhY2F0ZSBbVG9uIHggMTAwMF0nKQ0KYGBgDQoNCmBgYHtyIGVjaG89RkFMU0V9DQpnICsgZ2d0aXRsZSgiRXZvbHVjacOzbiBkZSBsYSBwcm9kdWNjacOzbiBkZSBhZ3VhY2F0ZSBlbiBWYWxsZSBkZWwgQ2F1Y2EgZW50cmUgMjAwNyB5IDIwMTgiKSArIGxhYnMoY2FwdGlvbj0gIkJhc2FkbyBlbiBkYXRvcyBFVkEgKE1pbmFncmljdWx0dXJhLCAyMDIwKSIpDQpgYGANCg0KRW4gZWwgMjAwNyBlbCBjdWx0aXZvIGRlbCBhZ3VhY2F0ZSBubyBlcmEgdGFuIHJlbGV2YW50ZSBlbiBsYXMgZXN0YWTDrXN0aWNhcyBuYWNpb25hbGVzIGRlIHByb2R1Y2Npw7NuLCBzaW4gZW1iYXJnbywgdmFyaW9zIGVzdHVkaW9zIGNvbWVuemFiYW4gYSBtZW5jaW9uYXIgZWwgcG90ZW5jaWFsIGRlbCBwcm9kdWN0byBlbiBlbCBzdWVsbyBjb2xvbWJpYW5vLiBQb3IgZXN0YSByYXrDs24sIGVuIDIwMDggZWwgR29iaWVybm8gTmFjaW9uYWwgY3Jlw7MgZWwgQ29uc2VqbyBOYWNpb25hbCBkZSBBZ3VhY2F0ZSBjdXlvIGZpbiBlcmEgZm9ydGFsZWNlciBsYSBjYWRlbmEgZGUgYWd1YWNhdGUgYSB0cmF2w6lzIGRlbCBmb3J0YWxlY2ltaWVudG8gZ3JlbWlhbCwgbGEgY29tZXJjaWFsaXphY2nDs24sIGVsIG1lcmNhZGVvLCBsYSBsb2fDrXN0aWNhLCBsYXMgZXhwb3J0YWNpb25lcyB5IGxhIGFncm9pbmR1c3RyaWEuIExhIGNyZWFjacOzbiBkZSBlc3RhIG9yZ2FuaXphY2nDs24gY29udHJpYnV5w7MgYWwgY3JlY2ltaWVudG8gZGUgbGEgcHJvZHVjY2nDs24gZGUgYWd1YWNhdGUgcGFyYSBlc2UgYcOxbyAoQ29ydMOpcywgSi4sIDIwMTkpLiBFbiBlbCAyMDA5LCBzZSBvYnNlcnZhIHVuIGF1bWVudG8gZW4gbGEgcHJvZHVjY2nDs24gZGUgYWd1YWNhdGUgb2Nhc2lvbmFkbyBwcmluY2lwYWxtZW50ZSBwb3Igc3UgY3JlY2llbnRlIGNvbnN1bW8geSBwb3IgbGFzIG1lZGlkYXMgZXN0YWJsZWNpZGFzIHBvciBlbCBHb2JpZXJubyBOYWNpb25hbCBwYXJhIGVsIGZvcnRhbGVjaW1pZW50byBkZWwgcHJvZHVjdG8gKERBTkUsIDIwMDkpDQoNClBvciBvdHJvIGxhZG8sIGVuIGVsIDIwMTAgc2Ugb2JzZXJ2YSB1bmEgY2HDrWRhIHNpZ25pZmljYXRpdmEgb2Nhc2lvbmFkYSBwb3IgdW5hIGZ1ZXJ0ZSBvbGEgaW52ZXJuYWwgcXVlIHJlZHVqbyBsYSBwcm9kdWNjacOzbiBhZ3LDrWNvbGEgZGVsIGRlcGFydGFtZW50byB5IGxhcyBleHBvcnRhY2lvbmVzIGRlIG1hbmVyYSBzaWduaWZpY2F0aXZhLiBFbnRyZSBsb3MgY3VsdGl2b3MgYWZlY3RhZG9zIHBvciBlc3RhIHNpdHVhY2nDs24sIHNlIGVuY3VlbnRyYSBlbCBhZ3VhY2F0ZSAoRXNjb2JhciwgSi4sIGV0IGFsLiwgMjAxMCkNCg0KRW4gbG9zIGHDsW9zIHBvc3RlcmlvcmVzLCBlbCBHb2JpZXJubyBzaWd1acOzIGltcGxlbWVudGFuZG8gcG9sw610aWNhcyBxdWUgcGVybWl0aWVyb24gZWwgY3JlY2ltaWVudG8gcHJvZHVjdGl2byBkZWwgYWd1YWNhdGUgZW4gZWwgZGVwYXJ0YW1lbnRvIGhhc3RhIGVsIGHDsW8gMjAxMy4gRW4gZWwgMjAxNCwgc2UgcmVkdWpvIGNvbnNpZGVyYWJsZW1lbnRlIGVsIMOhcmVhIGN1bHRpdmFkYSB5IGxhIHByb2R1Y2Npw7NuIHNlIHZpbyBhZmVjdGFkYTsgc2luIGVtYmFyZ28sIGVsIGHDsW8gcG9zdGVyaW9yIHNlIGNvcnJpZ2nDsyBkaWNoYSBjYcOtZGEgKEFzb2NpYWNpw7NuIE5hY2lvbmFsIGRlIENvbWVyY2lvIEV4dGVyaW9yLCAyMDE3KS4gDQoNCkVuIGVsIDIwMTcsIGxhIHByb2R1Y2Npw7NuIGRlIGFndWFjYXRlIHNlIHJlZHVqbyB1biBwb2NvIGVuIGNvbXBhcmFjacOzbiBhbCBhw7FvIHBhc2Fkby4gUGFyYSBjb250cmFycmVzdGFyIGVzdGEgZXN0YWTDrXN0aWNhLCBlbCBNaW5pc3RlcmlvIGRlIEFncmljdWx0dXJhIHNlIGVuZm9jw7MgZW4gZm9ydGFsZWNlciBwcm9ncmFtYXMgcXVlIGluY3JlbWVudGVuIGxhcyBoZWN0w6FyZWFzIGRlIHNpZW1icmEgZGUgYWd1YWNhdGUuIEdyYWNpYXMgYSBlc3RvLCBlbiAyMDE4IHNlIG9ic2VydsOzIHVuIGNyZWNpbWllbnRvIGVuIGxhIHByb2R1Y2Npw7NuIChMb3BleiBCYXJyYWdhbiwgSi4gQy4sIDIwMTcpLg0KDQpUYW1iacOpbiBzZSBxdWllcmUgY29ub2NlciBsYSBldm9sdWNpw7NuIGRlbCBjdWx0aXZvIGRlIGFndWFjYXRlIGVuIGVuIG11bmljaXBpbyBkZSBTZXZpbGxhIGRlYmlkbyBhIHF1ZSBlbiBlc3RhZMOtc3RpY2FzIGFudGVyaW9yZXMsIHNlIHJldmVsYSBxdWUgYWxsw60gc2UgdHV2byBlbCBtw6F4aW1vIHJlbmRpbWllbnRvIGRlIGVzdGUgcHJvZHVjdG8uDQoNCmBgYHtyIGVjaG89RkFMU0V9DQoNCmcgPC0gZ2dwbG90KGFlcyh4PVlFQVIsIHk9dG9uX1Byb2QvMTAwMCksIGRhdGEgPSBzZXZpbGxhX2FndWFjYXRlKSArIGdlb21fYmFyKHN0YXQ9J2lkZW50aXR5Jyx3aWR0aCA9IDAuNSwgZmlsbCA9ICJibHVldmlvbGV0IikgKyBsYWJzKHk9J1Byb2R1Y2Npb24gZGUgYWd1YWNhdGUgW1RvbiB4IDEwMDBdJykNCmBgYA0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KZyArIGdndGl0bGUoIkV2b2x1Y2nDs24gZGUgbGEgcHJvZHVjY2nDs24gZGUgYWd1YWNhdGUgZW4gU2V2aWxsYSBlbnRyZSAyMDA3IHkgMjAxOCIpICsgbGFicyhjYXB0aW9uPSAiQmFzYWRvIGVuIGRhdG9zIEVWQSAoTWluYWdyaWN1bHR1cmEsIDIwMjApIikNCmBgYA0KDQpFbiBlbCBjYXNvIGRlbCBtdW5pY2lwaW8gZGUgU2V2aWxsYSwgYSBwZXNhciBkZSBxdWUgZW4gMjAwOCBzZSBpbmNlbnRpdsOzIGxhIHByb2R1Y2Npw7NuIGRlIGFndWFjYXRlIGVuIGVsIGRlcGFydGFtZW50bywgbm8gZnVlIGhhc3RhIDIwMTcgZW4gZWwgcXVlIHNlIGVtcGV6w7MgYSBjdWx0aXZhciBlbiBncmFuIGNhbnRpZGFkIGdyYWNpYXMgYSBsb3MgcHJveWVjdG9zIGltcHVsc2Fkb3MgcG9yIGVsIEdvYmllcm5vIE5hY2lvbmFsIGVuIGxhIHJlZ2nDs24uIFBlc2UgYSBzdSBwb2NhIHRyYXllY3RvcmlhIGhpc3TDs3JpY2EsICBob3kgZW4gZMOtYSBlcyB1bm8gZGUgbG9zIG1heW9yZXMgcHJvZHVjdG9yZXMgZGUgYWd1YWNhdGUgZGVsIGRlcGFydGFtZW50byAoTG9wZXogQmFycmFnYW4sIEouIEMuLCAyMDE3KS4gDQoNCkZpbmFsbWVudGUsIHNlIGFuYWxpemFyw6FuIGxvcyBtYXBhcyBvYnRlbmlkb3MgcGFyYSBlbCDDoXJlYSBjb3NlY2hhZGEgIHkgbGEgcHJvZHVjY2nDs24gZGUgYWd1YWNhdGUgYSBuaXZlbCBkZXBhcnRhbWVudG8uIEVsIGFuYWxpc2lzIHNlIHJlYWxpemFyw6EgZW4gZWwgb3JkZW4gZGUgbWVuY2nDs24uIA0KDQojIyMjIyMgKiozLjIuMi4xIMOBcmVhIGNvc2VjaGFkYSoqDQoNCiFbw4FyZWEgY29zZWNoYWRhIGRlIGFndWFjYXRlXShDOi9Vc2Vycy9MVUlTQSBDQVJSSU9OL1BpY3R1cmVzL01BUEE1LlBORykNCg0KQ29tbyBzZSBtZW5jaW9uw7MgYW50ZXJpb3JtZW50ZSwgZWwgY3VsdGl2byBkZSBhZ3VhY2F0ZSwgZW4gY29uY3JldG8gbGEgdmFyaWVkYWQgSGFzcyBzZSBoYSBpbXB1bHNhZG8gZW4gZWwgVmFsbGUgZGVsIENhdWNhLCBlbiBlc3BlY2lhbCBlbiBlbCBub3J0ZSBkZWwgZGVwYXJ0YW1lbnRvIGRlYmlkbyBhIHF1ZSBlbCBjdWx0aXZvIHNlIGFkYXB0YSBkZSBtZWpvciBmb3JtYSBhIGxhcyBjb25kaWNpb25lcyBhbWJpZW50YWxlcyBwcm9waWFzIGRlIGRpY2hvIHNlY3Rvci4gRGViaWRvIGEgcXVlIFNldmlsbGEgc2UgdWJpY2EgZW4gZWwgc2VjdG9yIG5vcnRlLG5vIGVzIGRlIGV4dHJhw7FhciBxdWUgbG9zIHByb2dyYW1hcyBkZWwgTWluaXN0ZXJpbyBkZSBBZ3JpY3VsdHVyYSBhdW1lbnRhcmFuIGVsIMOhcmVhIGNvc2VjaGFkYSBlbiBlbCBtdW5pY2lwaW8uIFRhbWJpw6luIGRlYmUgcmVjYWxjYXJzZSBxdWUgbXVuaWNpcGlvcyBjb21vIENhaWNlZG9uaWEgeSBBcmdlbGlhIHRpZW5lbiDDoXJlYXMgZGUgY29zZWNoYSBncmFuZGVzIGltcHVsc2FkYXMgcG9yIGxvcyBtaXNtb3MgcHJvZ3JhbWFzLiANCg0KIyMjIyMjICoqMy4yLjIuMiBQcm9kdWNjacOzbioqDQoNCiFbUHJvZHVjY2nDs24gZGUgYWd1YWNhdGVdKEM6L1VzZXJzL0xVSVNBIENBUlJJT04vUGljdHVyZXMvTUFQQTQuUE5HKQ0KDQpTZXZpbGxhIGhhIHNpZG8gdW4gZ3JhbiBwcm9kdWN0b3IgZGUgYWd1YWNhdGUgZW4gbG9zIMO6bHRpbW9zIGHDsW9zIGRlYmlkbyBhIGxvcyBlc2Z1ZXJ6b3MgZ3ViZXJuYW1lbnRhbGVzIHBvciBpbmNlbnRpdmFyIGVsIGN1bHRpdm8gZGVsIHByb2R1Y3RvIGVuIGVsIGRlcGFydGFtZW50byB2YWxsZWNhdWNhbm8uIEVuIGVsIGHDsW8gMjAxOCwgU2V2aWxsYSBwcm9kdWpvIDg0NDggVG9uZWxhZGFzIGRlIEFndWFjYXRlLCB0ZW5pZW5kbyB1bmEgZXN0YWTDrXN0aWNhIG11eSBzdXBlcmlvciBjb24gcmVzcGVjdG8gYSBvdHJvcyBtdW5pY2lwaW9zLiBFbiBsYSBGaWd1cmEgdGFtYmnDqW4gc2Ugb2JzZXJ2YSBxdWUgbXVuaWNpcGlvcyBjb21vIFRydWppbGxvIHkgRGFndWEgcHJvZHVjZW4gdW5hIGNvbnNpZGVyYWJsZSBjYW50aWRhZCBkZSB0b25lbGFkYXMgZGUgYWd1YWNhdGUuIA0KDQojIyMjIyAqKjMuMi4zIENhw7FhIGRlIGF6w7pjYXIqKg0KDQpFcyBlbCBwcmluY2lwYWwgcHJvZHVjdG8gcXVlIHNlIGNvc2VjaGEgZW4gZWwgVmFsbGUgZGVsIENhdWNhLiBFcyB1biBjdWx0aXZvIGRlIHpvbmFzIHRyb3BpY2FsZXMsIHJlcXVpZXJlIGRlIG11Y2hhIGFndWEsIHVuIGJ1ZW4gc3VzdHJhdG8geSBhZGVtw6FzIG1hbmVqYSBiaWVuIGxhIHJhZGlhY2nDs24gc29sYXIuIEVsIGN1bHRpdm8gZGUgY2HDsWEgbm8gc29sbyBzaXJ2ZSBwYXJhIHByb2R1Y2lyIGF6w7pjYXIsIHRhbWJpw6luIHByb2R1Y2UgY29tYnVzdGlibGUgYmlvZGVncmFkYWJsZSwgYmlvZXRhbm9sIHkgZW5lcmfDrWEgZWzDqWN0cmljYSBjb24gZWwgQmFnYXpvIHF1ZSBxdWVkYSBkZSBsb3MgcmVzaWR1b3MgZGUgY2HDsWEuKENhbmFsIENhcmFjb2wsIDIwMTcpICANCg0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KZyA8LSBnZ3Bsb3QoYWVzKHg9WUVBUiwgeT10b25fUHJvZC8xMDAwKSwgZGF0YSA9IHZhbGxlX2NhbmEpICsgZ2VvbV9iYXIoc3RhdD0naWRlbnRpdHknLHdpZHRoID0gMC41LCBmaWxsID0gImRhcmtvcmFuZ2UyIikgKyBsYWJzKHk9J1Byb2R1Y2Npb24gZGUgY2HDsWEgZGUgYXrDumNhciBbVG9uIHggMTAwMF0nKQ0KYGBgDQoNCmBgYHtyIGVjaG89RkFMU0V9DQpnICsgZ2d0aXRsZSgiRXZvbHVjacOzbiBkZSBsYSBQcm9kdWNjacOzbiBkZSBjYcOxYSBkZSBhesO6Y2FyIGVuIFZhbGxlIGRlbCBDYXVjYSBkZXNkZSAyMDA3IGhhc3RhIDIwMTgiKSArIGxhYnMoY2FwdGlvbj0gIkJhc2FkbyBlbiBkYXRvcyBFVkEgKE1pbmFncmljdWx0dXJhLCAyMDIwKSIpDQpgYGANCg0KTGEgY2HDsWEgZGUgYXrDumNhciBlcyB1biBjdWx0aXZvIGhpc3TDs3JpY28gZW4gZWwgVmFsbGUgZGVsIENhdWNhLiBMYSBoaWRyb2dyYWbDrWEsIGVsIGNsaW1hIHkgZWwgcmVsaWV2ZSBkZWwgZGVwYXJ0YW1lbnRvIHNvbiBwZXJmZWN0b3MgcGFyYSBsYSBwcm9kdWNjacOzbiBkZSBjYcOxYSwgcG9yIGxvIHF1ZSBlc3RlIGN1bHRpdm8gc2llbXByZSBoYSBlc3RhZG8gcHJlc2VudGUuIEVuIGxhIGdyw6FmaWNhIGFudGVyaW9yIHNlIGRlbXVlc3RyYSBxdWUgZXMgdW4gY3VsdGl2byBtw6FzIG8gbWVub3MgZGUgcHJvZHVjY2nDs24gZXN0YWJsZSBlbiBlbCBkZXBhcnRhbWVudG8sIHRpZW5lIGJham9uZXMgeSBzdWJpZGFzIGVuIHN1IHByb2R1Y2Npw7NuLiBFbCBhdW1lbnRvIG5vdG9yaW8gZW4gMjAxOCBzZSBkZWJlIHByaW5jaXBhbG1lbnRlIGEgcXVlIHNlIGRlc2N1YnJpw7MgZW4gZXNlIGVudG9uY2VzIHF1ZSBsYSBjYcOxYSBkZSBhesO6Y2FyIHNpcnZlIHBhcmEgcHJvZHVjaXIgYmlvZXRhbm9sLCBsbyBjdWFsIHNlIHRyYW5zZm9ybWEgZW4gY29tYnVzdGlibGUgbmF0dXJhbC4NCg0KYGBge3IgZWNobz1GQUxTRX0NCmcgPC0gZ2dwbG90KGFlcyh4PVlFQVIsIHk9dG9uX1Byb2QvMTAwMCksIGRhdGEgPSB0cnVqaWxsb19jYW5hKSArIGdlb21fYmFyKHN0YXQ9J2lkZW50aXR5Jyx3aWR0aCA9IDAuNSwgZmlsbCA9ICJkYXJrb2xpdmVncmVlbjMiKSArIGxhYnMoeT0nUHJvZHVjY2lvbiBkZSBjYcOxYSBkZSBhesO6Y2FyIFtUb24geCAxMDAwXScpDQpgYGANCg0KYGBge3IgZWNobz1GQUxTRX0NCmcgKyBnZ3RpdGxlKCJFdm9sdWNpw7NuIGRlIGxhIFByb2R1Y2Npw7NuIGRlIGNhw7FhIGRlIGF6w7pjYXIgZW4gVHJ1amlsbG8gZGVzZGUgMjAwNyBoYXN0YSAyMDE4IikgKyBsYWJzKGNhcHRpb249ICJCYXNhZG8gZW4gZGF0b3MgRVZBIChNaW5hZ3JpY3VsdHVyYSwgMjAyMCkiKQ0KYGBgDQoNClRydWppbGxvLCBjb21vIHlhIHNlIG1lbmNpb27DsyBhbnRlcmlvcm1lbnRlIGVzIHVuIGJ1ZW4gcHJvZHVjdG9yIGRlIGZydXRhbGVzLCB5IHBvciBzdSByZWxpZXZlIGVuIGVsIHF1ZSBzZSBlbmN1ZW50cmEgdW5hIGdyYW4gY2FudGlkYWQgZGUgcsOtb3MgeSBjdWVuY2FzIGhpZHJvZ3LDoWZpY2FzIGVzIHVuIG11bmljaXBpbyBlbCBjdWFsIHRpZW5lIGNvbW8gcHJvZHVjaXIgY2HDsWEgZGUgYXrDumNhciwgc2luIGVtYmFyZ28gZnVlIGhhc3RhIDIwMTAgZWwgYcOxbyBlbiBkb25kZSBzZSBlbXBlesOzIGEgcHJvZHVjaXIgY29uc3RhbnRlbWVudGUgY2HDsWEuIFZlbW9zIHF1ZSBoYXkgdW5hIGRpc21pbnVjacOzbiBkZW1hc2lhZG8gZ3JhbmRlIGVuIDIwMTQsIGVzdG8gc2UgcHVlZGUgZGViZXIgYSBxdWUgZWwgbXVuaWNpcGlvIGRlIFRydWppbGxvIGVzdGFiYSBlbiBjb25zdGFudGUgY29uZmxpY3RvIGFybWFkbywgZXNlIG1pc21vIGHDsW8gc2UgbGUgcHVlZGUgYWRqdWRpY2FyIHVuIHBvY28gYSBsb3MgZGVzcGxhemFtaWVudG9zIGFybWFkb3MgeSBwcmVzZW5jaWEgZ3VlcnJpbGxlcmEgZW4gbGEgem9uYS4gdG9kbyBlc3RvIGEgcGVzYXIgZGUgcXVlIGVzdGFiYW4gZW4gcHJvY2VzbyBkZSBwYXogY29uIGxhcyBGQVJDIChDTk1ILCAyMDE1KS4gRGVzcHXDqXMgZGUgZXN0byBsYSBwcm9kdWNjacOzbiB2b2x2acOzIGEgYXNjZW5kZXIgeSBzZSBtYW50dXZvIGNhc2kgY29uc3RhbnRlIGVudHJlIDIwMTYgeSAyMDE4LiAgDQoNCkFob3JhLCBzZSBhbmFsaXphcsOhIGxhIHByb2R1Y2Npw7NuIHkgZWwgw6FyZWEgY29zZWNoYWRhIGRlIGxhIGNhw7FhIGRlIGF6w7pjYXIgZW4gVmFsbGUgZGVsIENhdWNhIGVuIGVsIGHDsW8gMjAxOA0KDQojIyMjIyMgKiozLjIuMy4xIMOBcmVhIGNvc2VjaGFkYSoqDQoNCmBgYHtyIGVjaG89RkFMU0V9DQptYXBhNw0KYGBgDQoNCkVsIG11bmljaXBpbyBjb24gbWF5b3Igw6FyZWEgY29zZWNoYWRhIGRlIGNhw7FhIGRlIGF6w7pjYXIgZW4gZWwgYcOxbyAyMDE4IGZ1ZSBFbCBDZXJyaXRvLiBEaWNobyBtdW5pY2lwaW8gYmFzYSBzdSBlY29ub23DrWEgZW4gZWwgY3VsdGl2byBkZSB5dWNhLCB0b21hdGUsIGZyaWpvbCwgY2Vib2xsYSB5LCBwcmltb3JkaWFsbWVudGUsIGVuIGxhIGNhw7FhIGRlIGF6w7pjYXIuIERlYmlkbyBhIGxhIGFsdGEgY29tZXJjaWFsaXphY2nDs24gZGVsIHByb2R1Y3RvIGVuIGN1ZXN0acOzbiwgc2UgaGFuIGVzdHJ1Y3R1cmFkbyBsYXRpZnVuZGlvcyBwcmluY2lwYWxtZW50ZSBjYcOxZXJvcywgbG8gY3VhbCBoYSBpbmNyZW1lbnRhZG8gZWwgw6FyZWEgZGUgY3VsdGl2byBkZSBsYSBjYcOxYSBkZSBhesO6Y2FyIHksIGEgc3UgdmV6LCBoYSBkZXNwbGF6YWRvIGEgbG9zIG90cm9zIGN1bHRpdm9zIGEgbGEgcmVnacOzbiBtb250YcOxb3NhIGRlbCB0ZXJyaXRvcmlvLCBlbiBkb25kZSBleGlzdGVuIGxpbWl0YW50ZXMgcGFyYSBsYSBjb21lcmNpYWxpemFjacOzbiB5IG9ibGlnYSBhIGxvcyBjYW1wZXNpbm9zIGEgY29udGFjdGFyIGNvbiBpbnRlcm1lZGlhcmlvcyAoQWxjYWxkw61hIE11bmljaXBhbCBFbCBDZXJyaXRvLCAyMDIxKS4NCg0KDQojIyMjIyMgKiozLjIuMy4yIFByb2R1Y2Npw7NuKioNCg0KYGBge3IgZWNobz1GQUxTRX0NCm1hcGE2DQpgYGANCg0KRW4gMjAxOCBsYSBtYXlvciBwcm9kdWNjacOzbiBkZSBjYcOxYSBkZSBhesO6Y2FyIGRlIFZhbGxlIGRlbCBDYXVjYSBzZSBjb25jZW50csOzIGVuIGVsIG11bmljaXBpbyBkZSBQcmFkZXJhLiBFc3RhIGVzdGFkw61zdGljYSBwdWVkZSBlbnRlbmRlcnNlIGFsIGludmVzdGlnYXIgbGEgZWNvbm9tw61hIGRlIFByYWRlcmEsIHB1ZXN0byBxdWUgcGFzw7MgZGUgdW5hIGVjb25vbcOtYSBhZ3LDrWNvbGEgYSB1bmEgZWNvbm9tw61hIGV4dGVuc2l2YSBkZSBsYSBjYcOxYS4gRXN0YSBzaXR1YWNpw7NuIGhhIGdlbmVyYWRvIHByb2Nlc29zIGRlIGRlc3BsYXphbWllbnRvIGRlIGxhIG1hbm8gZGUgb2JyYSBhIENhbGkgeSBQYWxtaXJhIChDYWljZWRvICYgTXXDsW96LCAyMDE5KS4NCg0KRW4gbGEgZmlndXJhIHNlIGxvZ3JhIG9ic2VydmFyIHF1ZSBlbiBtdWNob3MgbXVuaWNpcGlvcyBkZWwgVmFsbGUgZGVsIENhdWNhIHNlIHRpZW5lIHVuYSBncmFuIHByb2R1Y2Npw7NuIGRlIGNhw7FhLCBlc3RvIG5vcyByZWFmaXJtYSBxdWUgZXN0ZSBwcm9kdWN0byBlcyBlbCBwdW50byBmdWVydGUgZGVsIGRlcGFydGFtZW50byB5IGRlIGdyYW4gaW1wb3J0YW5jaWEgcGFyYSBsYSBlY29ub23DrWEgbmFjaW9uYWwuIA0KDQoNCiMjIyAqKjQuIENvbmNsdXNpb25lcyoqDQoNCkVuIGxhIGFjdHVhbGlkYWQgcG9yIG1lZGlvIGRlIGxvcyBhbsOhbGlzaXMgaGVjaG9zIHBvciBlbCBtaW5pc3RlcmlvIGRlIGFncmljdWx0dXJhIHBvZGVtb3MgY29ub2NlciBsb3MgYXZhbmNlcyB5IGNhbWJpb3MgcXVlIGhhIHRlbmlkbyBsYSBlY29ub23DrWEgZGVsIGRlcGFydGFtZW50byBkZWwgVmFsbGUgZGVsIENhdWNhIHF1ZSBzZSBiYXNhIMO6bmljYW1lbnRlIGVuIGxhIGFncmljdWx0dXJhLCBwZXJtaXRpw6luZG9ub3MgdmVyIHF1ZSBjdWx0aXZvcyBmdWVyb24gbG9zIG3DoXMgaW1wb3J0YW50ZXMgeSBlbiBxdcOpIG11bmljaXBpb3Mgc2UgdGllbmUgbGEgbWVqb3IgcHJvZHVjY2nDs24gZGUgZXN0b3MuIERlIGVzdGEgZm9ybWEgcG9kZW1vcyByZWNhbGNhciBsYSBpbXBvcnRhbmNpYSBkZSBsYSB0ZWNuaWZpY2FjacOzbiBkZWwgc2VjdG9yIGFncmFyaW8sIGxhIGluY2VudGl2YWNpw7NuIHBhcmEgZW1wZXphciBhIHBsYW50YXIgbnVldm9zIGN1bHRpdm9zIHkgZWwgYXBveW8gaW50ZWdyYWwgYSBsb3MgY2FtcGVzaW5vcywgeWEgcXVlIGNvbiBlc3RvIGVsIGRlcGFydGFtZW50byBkZWwgVmFsbGUgZGVsIENhdWNhIGhhIGlkbyBwcm9zcGVyYW5kbyBjb24gZWwgcGFzYXIgZGUgbG9zIGHDsW9zIHkgbGxlZ2FuZG8gYSBzZXIgdW5vIGRlIGxvcyBtZWpvcmVzIHByb2R1Y3RvcmVzIGRlIGNhw7FhIGRlIGF6w7pjYXIsIGNhZsOpIHkgYWd1YWNhdGUgZGVsIHBhw61zLiBBIHBlc2FyIGRlIHF1ZSBlbCBtdW5pY2lwaW8gdGllbmUgdmVudGFqYXMgZ2VvZ3LDoWZpY2FzIGUgaGlkcm9ncsOhZmljYXMsIHRvZGF2w61hIGxhIHByb2R1Y2Npw7NuIGRlIHN1cyBjdWx0aXZvcyBzZSBwdWVkZSB2ZXIgYWZlY3RhZGEgcG9yIGZhY3RvcmVzIGV4dGVybm9zIGNvbW8gbGEgYmFqYSBlbiBsYXMgY290aXphY2lvbmVzLCBsYXMgZXhwb3J0YWNpb25lcyB5IGVuIHN1IHRpZW1wbywgZWwgY29uZmxpY3RvIGFybWFkbyBwb2Ryw61hIGdlbmVyYXIgdW5hIGJhamEgZW4gbGEgdGFzYSBkZSBwcm9kdWNjacOzbi4NCg0KIyMjICoqNS4gQmlibGlvZ3JhZsOtYQkqKg0KDQpBbGNhbGTDrWEgZGUgU2FudGlhZ28gZGUgQ2FsaS4gKDIwMTUsIDEzIGFicmlsKS4gRWNvbm9tw61hIGRlIENhbGkuIENhbGkuaHR0cHM6Ly93d3cuY2FsaS5nb3YuY28vaW5mb3JtYXRpY2EvcHVibGljYWNpb25lcy8xMDYxMTAvZWNvbm9taWFfZGVfY2FsaS8NCg0KQWxjYWxkw61hIGRlIFNldmlsbGEuICgyMDE5LCAyOSBhZ29zdG8pLiBBbGNhbGTDrWEgZGUgU2V2aWxsYSwgVmFsbGUgZGVsIENhdWNhLiBzZXZpbGxhLXZhbGxlLmdvdi4gaHR0cDovL3d3dy5zZXZpbGxhLXZhbGxlLmdvdi5jby9tdW5pY2lwaW8vbnVlc3Ryby1tdW5pY2lwaW8NCg0KQWxjYWxkw61hIE11bmljaXBhbCBFbCBDZXJyaXRvLiAoMjAyMSwgNiBhYnJpbCkuIEVjb25vbcOtYS4gZWxjZXJyaXRvLXZhbGxlLmdvdi4gaHR0cHM6Ly9lbGNlcnJpdG8tdmFsbGUuZ292LmNvL01pTXVuaWNpcGlvL1BhZ2luYXMvRWNvbm9taWEuYXNweA0KDQpBc29jaWFjacOzbiBOYWNpb25hbCBkZSBDb21lcmNpbyBFeHRlcmlvciAtIEFOQUxERVguICgyMDE3LCBzZXB0aWVtYnJlKS4gTWVyY2FkbyBkZWwgYWd1YWNhdGUgMjAxNy4gaHR0cDovL3d3dy5hbmFsZGV4Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMTk5Mi8xMS9NZXJjYWRvLWRlbC1hZ3VhY2F0ZS0yMDE3LnBkZg0KDQpBc29ob2ZydWNvbC4gKDIwMDcsIDIwIHNlcHRpZW1icmUpLiBNZW1vcmlhcyBzb2JyZSBsYSBhY3R1YWxpemFjacOzbiB0ZWNub2zDs2dpY2EgZW4gZWwgY3VsdGl2byBkZSBQacOxYS4gaHR0cDovL3d3dy5hc29ob2ZydWNvbC5jb20uY28vYXJjaGl2b3MvTGlicm9zL0FjdHVhbGl6YWNpJUMzJUIzbl9DdWx0aXZvX1RlY25vbCVDMyVCM2dpY29fZGVfUGklQzMlQjFhXzIwMTcucGRmDQoNCkNhaWNlZG8sIE0uLCAmIE11w7FveiwgRC4gKDIwMTksIHNlcHRpZW1icmUpLiBQZXJmaWwgZGUgbG9zIG11bmljaXBpb3MgZGUgUHJhZGVyYSB5IEVsIFRhbWJvIHBhcmEgZWwgZGVzYXJyb2xsbyB5IGxhIGNvbXBldGl0aXZpZGFkIHRlcnJpdG9yaWFsLiBodHRwczovL3JlZC51YW8uZWR1LmNvL2JpdHN0cmVhbS9oYW5kbGUvMTA2MTQvMTExODAvVDA4NjMxLnBkZj9zZXF1ZW5jZT01DQoNCkNhw7FhIGRlIGF6w7pjYXIsIGVsIGdyYW4gbW90b3IgZGUgbGEgZWNvbm9tw61hIGVuIGVsIFZhbGxlIGRlbCBDYXVjYS4gKDIwMTcsIDIxIGp1bGlvKS4gbm90aWNpYXMuY2FyYWNvbHR2LmNvbS5odHRwczovL25vdGljaWFzLmNhcmFjb2x0di5jb20vdmFsbGUvY2FuYS1kZS1henVjYXItZWwtZ3Jhbi1tb3Rvci1kZS1sYS1lY29ub21pYS1lbi1lbC12YWxsZS1kZWwtY2F1Y2ENCg0KQ0NDLiAoMjAxOCwgMTQgZmVicmVybykuIEluZm9ybWUgZWNvbsOzbWljbywgQmFsYW5jZSAyMDE34oCTMjAxOC4gd3d3LmNjYy5vcmcuY28uIGh0dHBzOi8vd3d3LmNjYy5vcmcuY28vZmlsZS8yMDE4LzAyL0luZm9ybWUtRWNvbm9taWNvLU45Ny1CYWxhbmNlLTIwMTctcGVyc3BlY3RpdmFzLTIwMTgucGRmDQoNCkNlbnRybyBkZSBtZW1vcmlhIGhpc3RvcmljYS4gKDIwMTUsIGZlYnJlcm8pLiBJbnZlbnRhcmlvZGVkYXRvc2FiaWVydG9zQ05NSC4gaHR0cDovL3d3dy5jZW50cm9kZW1lbW9yaWFoaXN0b3JpY2EuZ292LmNvLy4gaHR0cDovL3d3dy5jZW50cm9kZW1lbW9yaWFoaXN0b3JpY2EuZ292LmNvL2Rlc2Nhcmdhcy90cmFuc3BhcmVuY2lhL2RvY3VtZW50b3MtMjAxNC9pbnZlbnRhcmlvLWRhdG9zLWFiaWVydG9zLXYxLnBkZg0KDQpDb3Jwb3JhY2nDs24gQ29sb21iaWFuYSBkZSBJbnZlc3RpZ2FjacOzbiBBZ3JvcGVjdWFyaWEuIChzLiBmLikuIEN1bHRpdm8gZGUgbGEgcGFwYXlhIGVuIGxvcyBMbGFub3MgT3JpZW50YWxlcyBkZSBDb2xvbWJpYS4gQmlibGlvdGVjYSBEaWdpdGFsIEFncm9uZXQuIFJlY3VwZXJhZG8gMzEgZGUgbWFyem8gZGUgMjAyMSwgZGUgaHR0cDovL2JpYmxpb3RlY2FkaWdpdGFsLmFncm9uZXQuZ292LmNvL2JpdHN0cmVhbS8xMTM0OC80ODk0LzIvQ3VsdGl2byUyMGRlJTIwbGElMjBwYXBheWEucGRmDQoNCkNvcnTDqXMsIEouICgyMDE5KS4gRXN0dWRpbyBkZSBjYXNvIHNvYnJlIGxvcyBmYWN0b3JlcyBjbGF2ZXMgZXhpdG9zb3MgZW4gbGEgZXhwb3J0YWNpw7NuIGRlIHByb2R1Y3RvcyBhZ3LDrWNvbGFzIGhhY2lhIEVzdGFkb3MgVW5pZG9zIOKAnEFndWFjYXRlIEhhc3MgY29sb21iaWFub+KAnS4gVW5pdmVyc2lkYWQgQ29vcGVyYXRpdmEgZGUgQ29sb21iaWEuIGh0dHBzOi8vcmVwb3NpdG9yeS51Y2MuZWR1LmNvL2JpdHN0cmVhbS8yMC41MDAuMTI0OTQvMTY5ODUvMy8yMDE5X0VzdHVkaW9fY2Fzb19mYWN0b3Jlcy5wZGYNCg0KREFORS4gKDIwMDkpLiBJbmZvcm1lIGRlIENveXVudHVyYSBFY29uw7NtaWNhIFJlZ2lvbmFsIERlcGFydGFtZW50byBkZWwgVmFsbGUgZGVsIENhdWNhLiBEZXBhcnRhbWVudG8gZGUgRG9jdW1lbnRhY2nDs24geSBFZGl0b3JpYWwgQmFuY28gZGUgbGEgUmVww7pibGljYSwgQm9nb3TDoS4gaHR0cHM6Ly93d3cuZGFuZS5nb3YuY28vZmlsZXMvaWNlci8yMDA5L3ZhbGxlX2ljZXJfSUlfc2VtXzA5LnBkZg0KDQpEQU5FLiAoMjAxNCwgZGljaWVtYnJlKS4gSUNFUl9WYWxsZSBkZWwgQ2F1Y2EuIHd3dy5kYW5lLmdvdi5jby4gaHR0cHM6Ly93d3cuZGFuZS5nb3YuY28vZmlsZXMvaWNlci8yMDEzL0lDRVJfVmFsbGVfQ2F1Y2FfMjAxMy5wZGYNCg0KREFORS4gKDIwMTYsIG9jdHVicmUpLiBJQ0VSX1ZhbGxlIGRlbCBDYXVjYSAyMDE1LiB3d3cuZGFuZS5nb3YuY28uIGh0dHBzOi8vd3d3LmRhbmUuZ292LmNvL2ZpbGVzL2ljZXIvMjAxNS9JQ0VSX1ZhbGxlX2RlbF9DYXVjYTIwMTUucGRmDQoNCkVzY29iYXIsIEouLCBCYXJhbmRpY2EsIEEuLCBHb256w6FsZXosIE4uLCAmIEx1Y2VybywgRC4gKDIwMTAsIDIwIHNlcHRpZW1icmUpLiBWYWxsZSBkZWwgQ2F1Y2EsIDIwMTAuIGJhbnJlcC5nb3YuY28uIGh0dHBzOi8vd3d3LmJhbnJlcC5nb3YuY28vZXMvdmFsbGUtZGVsLWNhdWNhLTIwMTANCg0KRmVkZXJhY2nDs24gZGUgY2FmZXRlcm9zLiAoMjAwOSwgMTUgZW5lcm8pLiBpbmZvcm1lIGRlIGNvbWl0w6kgZGUgY2FmZXRlcm9zIDIwMDguIGZlZGVyYWNpb25kZWNhZmV0ZXJvcy5vcmcuIGh0dHBzOi8vZmVkZXJhY2lvbmRlY2FmZXRlcm9zLm9yZy9zdGF0aWMvZmlsZXMvVmFsbGUlMjBkZWwlMjBDYXVjYTQucGRmDQoNCkdvYmVybmFjacOzbiBkZWwgVmFsbGUgZGVsIENhdWNhLiAoMjAxNywgMjcgc2VwdGllbWJyZSkuIFZBTExFOyBJTkZPUk1BQ0nDk04gR0VORVJBTCAtIENJVURBREVTIFkgTVVOSUNJUElPUyAtIENvbG9tYmlhbWFuaWEuY29tLiBDb2xvbWJpYW1hbmlhLiBodHRwOi8vd3d3LmNvbG9tYmlhbWFuaWEuY29tL2RlcGFydGFtZW50b3MvdmFsbGUuaHRtbCM6JTdFOnRleHQ9TWlyYWZsb3JlcyUyMHklMjBCYXJyYWclQzMlQTFuLi0sSGlkcm9ncmFmJUMzJUFEYSwlMkMlMjBEb3ZpbyUyQyUyMFZ1ZWx0b3MlMjB5JTIwR2FycmFwYXRvcw0KDQpHdXRpw6lycmV6LCBMLiwgJiBSb3Nlcm8sIFQuICgyMDE5KS4gUGxhbiBkZSBkZXNhcnJvbGxvIGNvbXVuYWwgeSBjb211bml0YXJpbyBUcnVqaWxsbywgVmFsbGUgZGVsIENhdWNhOiBQb3IgdW4gbWVqb3JhbWllbnRvIGRlIGxhIGNhbGlkYWQgZGUgdmlkYSB5IGFtb3IgYWwgY2FtcG8uIEdvYmVybmFjacOzbiBkZWwgVmFsbGUgZGVsIENhdWNhLiANCg0KaHR0cHM6Ly93d3cudmFsbGVkZWxjYXVjYS5nb3YuY28vbG9hZGVyLnBocD9sU2VydmljaW89VG9vbHMyJmxUaXBvPXZpZXdwZGYmaWQ9MzE3NDQNCkVsIFRpZW1wby4gKDIwMTksIDI5IGp1bGlvKS4gRWwgVmFsbGUsIGxhIHRlcmNlcmEgZWNvbm9tw61hIG3DoXMgZ3JhbmRlIGRlbCBwYcOtcy4gaHR0cHM6Ly93d3cuZWx0aWVtcG8uY29tL21hcy1jb250ZW5pZG8vZWwtdmFsbGUtbGEtdGVyY2VyYS1lY29ub21pYS1tYXMtZ3JhbmRlLWRlbC1wYWlzLTM5MzQ5MiM6JTdFOnRleHQ9RWwlMjBWYWxsZSUyMGRlbCUyMENhdWNhJTIwZXMsZGUlMjBsYSUyMGVjb25vbSVDMyVBRGElMjBkZSUyMENvbG9tYmlhLg0KDQpMb3BleiBCYXJyYWdhbiwgSi4gQy4gKDIwMTcsIDEwIGFnb3N0bykuIEFndWFjYXRlIEhhc3MsIGxhIHByb2R1Y2Npw7NuIGFncsOtY29sYSBkZWwgVmFsbGUuIHZhbGxlZGVsY2F1Y2EuZ292LmNvLmh0dHBzOi8vd3d3LnZhbGxlZGVsY2F1Y2EuZ292LmNvL3B1YmxpY2FjaW9uZXMvMzg3NjIvYWd1YWNhdGVfaGFzc19sYV9wcm95ZWNjaW5fYWdyY29sYV9kZWxfdmFsbGUvDQpNYXJ0w61uZXosIEEuICgyMDIwLCAyNCBmZWJyZXJvKS4gwr9Dw7NtbyBzZSB2aXZlIGVuIEVsIMOBZ3VpbGEsIGVsIG11bmljaXBpbyBtw6FzIHBvYnJlIGRlbCBWYWxsZSBkZWwgQ2F1Y2E/IGVscGFpcy5jb20uY28uaHR0cHM6Ly93d3cuZWxwYWlzLmNvbS5jby9lY29ub21pYS9hc2ktc2Utdml2ZS1zb2JyZXZpdmUtZW4tZWwtYWd1aWxhLWVsLW11bmljaXBpby1tYXMtcG9icmUtZGVsLXZhbGxlLWRlbC1jYXVjYS5odG1sDQoNCk1pbmlzdGVyaW8gZGUgQWdyaWN1bHR1cmEgeSBEZXNhcnJvbGxvIFJ1cmFsLCBTb2NpZWRhZCBkZSBBZ3JpY3VsdG9yZXMgeSBHYW5hZGVyb3MgZGVsIFZhbGxlIGRlbCBDYXVjYSAtIFNBRywgQXNvY2lhY2nDs24gSG9ydG9mcnV0w61jb2xhIGRlIENvbG9tYmlhLCBGb25kbyBOYWNpb25hbCBkZSBGb21lbnRvIEhvcnRvZnJ1dMOtY29sYSwgR29iZXJuYWNpw7NuIGRlbCBWYWxsZSBkZWwgQ2F1Y2EuICgyMDA2KS4gUGxhbiBGcnV0w61jb2xhIE5hY2lvbmFsIFZhbGxlIGRlbCBDYXVjYSwgdGllcnJhIGRlIGZydXRhcy4gR29iZXJuYWNpw7NuIGRlbCBWYWxsZSBkZWwgQ2F1Y2EuDQoNCk5vdGljaWFzIENhcmFjb2wuICgyMDE3LCAyMSBqdWxpbykuIENhw7FhIGRlIGF6w7pjYXIsIGVsIGdyYW4gbW90b3IgZGUgbGEgZWNvbm9tw61hIGVuIGVsIFZhbGxlIGRlbCBDYXVjYS4gTm90aWNpYXMgQ2FyYWNvbC4gaHR0cHM6Ly9ub3RpY2lhcy5jYXJhY29sdHYuY29tL3ZhbGxlL2NhbmEtZGUtYXp1Y2FyLWVsLWdyYW4tbW90b3ItZGUtbGEtZWNvbm9taWEtZW4tZWwtdmFsbGUtZGVsLWNhdWNhDQoNClBhdGnDsW8sIFYuICgyMDAyKS4gSGlzdG9yaWEgeSBkaXNwZXJzacOzbiBkZSBsb3MgZnJ1dGFsZXMgbmF0aXZvcyBkZWwgbmVvdHLDs3BpY28uIENlbnRybyBJbnRlcm5hY2lvbmFsIGRlIEFncmljdWx0dXJhLg0KDQpQZXJhZsOhbiwgQS4gKDIwMTIpLiBWYWxsZSBkZWwgQ2F1Y2EuIFVuIGVzdHVkaW8gZW4gdG9ybm8gYSBzdSBzb2NpZWRhZCB5IG1lZGlvIGFtYmllbnRlLiBQcm9ncmFtYSBFZGl0b3JpYWw6IFVuaXZlcnNpZGFkIGRlbCBWYWxsZS4NCg0KU3ViaXLDs3MsIEYuICgxOTk1KS4gRWwgY3VsdGl2byBkZSBsYSBjYcOxYSBkZSBhesO6Y2FyLiBFZGl0b3JpYWwgVW5pdmVyc2lkYWQgRXN0YXRhbCBhIERpc3RhbmNpYS4gaHR0cHM6Ly9ib29rcy5nb29nbGUuY29tLmNvL2Jvb2tzP2lkPTJ3cEMxajJBbWtBQyZwZz1QQTU1JmRxPWNhJUMzJUIxYStkZSthenVjYXIrcmVxdWVyaW1pZW50b3MmaGw9ZXMmc2E9WCZ2ZWQ9MmFoVUtFd2lmODdxWTZlWHZBaFU1WnpBQkhZNkZBME1RNkFFd0FIb0VDQUVRQWcjdj1vbmVwYWdlJnE9Y2ElQzMlQjFhJTIwZGUlMjBhenVjYXIlMjByZXF1ZXJpbWllbnRvcyZmPWZhbHNlDQoNClVuaWRhZCBFamVjdXRvcmEgZGUgU2FuZWFtaWVudG8gZGVsIFZhbGxlIGRlbCBDYXVjYS4gKDIwMTYsIDE1IHNlcHRpZW1icmUpLiBVbmlkYWQgRWplY3V0b3JhIGRlIFNhbmVhbWllbnRvIGRlbCBWYWxsZSBkZWwgQ2F1Y2EuIHVlc3ZhbGxlLiBodHRwczovL3d3dy51ZXN2YWxsZS5nb3YuY28vcHVibGljYWNpb25lcy8yMzcvdmFsbGUtZGVsLWNhdWNhLw0KDQpWYWxsZSBpbnZlbmNpYmxlLiAoMjAyMCwgMjkganVsaW8pLiBEZW1vZ3JhZsOtYS4gVmFsbGUgZGVsIENhdWNhLiBodHRwczovL3ZpdmVlbHJpdG1vZGVscGFjaWZpYw0Kby5jby9kZW1vZ3JhZmlhLw0KDQoNCg==