Hepetofauna peruana
“El Perú es considerado como uno de los países con mayor
biodiversidad en el mundo (MINAM, 2012) por su amplia
gama de ecosistemas y su heterogeneidad espacial, aloja una de las
diversidades de anfibios y reptiles más importantes del planeta, siendo
considerado como uno de los 10 países megadiversos del mundo
(Chaparro y Gutiérrez, 2010) , registra 622 anfibios y
469 especies de reptiles (OSINFOR, 2020) ”
Afibios
“son de talla pequeña (Luna et al., 2010) , su piel
es lisa y algunos de piel rugosa (O’shea y Halliday,
2002) , viven parte de su vida en el agua y otra en la tierra
(Young et al., 2004) , son organismos ectotérmicos, por
lo que no regulan su temperatura corporal, la cual varía con la del
ambiente (Monzó, 2002) ”
Reptiles
“Se caracterizan por tener piel seca, dura y recubierta de escamas
(La Marca y Soriano, 2004) , razón por la cual tienen
una apariencia rugosa y áspera (Ávila, 2017) . Las
escamas se derivan de la capa exterior de la piel o epidermis y están
formadas principalmente por queratina (Zug, 1993) ”
ÍNDICES DE DIVERSIDAD
“Se utilizan ampliamente en estudios ecológicos, de paisaje, de
diversidad genética, de riesgo ambiental y de cambios en patrones de uso
de las tierras. En estudios de biodiversidad, a partir del muestreo de
comunidades, número de unidades de observación puede ser pequeño para
realizar inferencia paramétrica sobre la diversidad existente”
(Pla, 2006)
Riqueza
“puede calcular la riqueza observada en la muestra (r),
que es el número total de especies presentes en esa muestra. Esta
estimación es siempre un valor no mayor a la verdadera riqueza de la
comunidad.”
Blazarini, 2008
Riqueza Chao: Chao (1987) derivó un estimador para el número total de
especies presentes en una comunidad como:
\[
S = r + \frac{f_1^2}{2f_2}
\]
Índice de Shannon
“se basa en suponer que la heterogeneidad depende del número de
especies presentes y de su abundancia relativa. Es una medida del grado
de incertidumbre asociada a la selección aleatoria de un individuo en la
comunidad”
Balzarini, 2008
Se calcula como:
\[
H = -\sum_{i=1}^x p_i ln p_i
\]
Índice de Simpson
“Manifiesta la probabilidad de que dos individuos tomados al azar de
una muestra sean de la misma especie”
Moreno, 2001
\[
D = \sum_{ }p_i^2
\]
Índice de McIntosh
“es un índice de dominancia que se basa en considerar que la
comunidad es un punto en un hiperespacio definido por las especies, y
que puede cuantificarse como la distancia euclidiana desde ese punto al
origen, si hay tantas especies como individuos la diversidad es máxima,
la diferencia entre este máximo (to) y la comunidad en estudio es una
medida de la diversidad absoluta”
Balzarini, 2008
El estimador del índice se calcula como:
\[
U = \frac{to - \sqrt{\sum_{i=1}^r X_i^2}}{to - \sqrt{to}}
\]
Índice de Bulla
“En un gráfico de la frecuencia relativa de aparición de las especies
(ordenadas) versus el número de especies (abscisas) una línea horizontal
en 1/r representaría una comunidad con diversidad máxima.
Si se superpone a ésta una línea que representa la frecuencia relativa
en la comunidad y se calcula el grado de solapamiento entre estas dos
distribuciones”
Balzarini, 2008
El índice se calcula como:
\[
O = [\frac{\sum_{l=1}^r min(p_i,\frac{1}{r})}{r-1}]
\]
Índice de Berger-Parker
“Donde Nmax es el número de individuos en la especie más
abundante. Un incremento en el valor de este índice se interpreta como
un aumento en la equidad y una disminución de la dominancia”
Moreno, 2001
\[
d = \frac{N_{max}}{N}
\]
Índice de Menhinick
“Se basa en la relación entre el número de especies y el número total
de individuos observados”
Moreni, 2001
\[
D_m = \frac{S}{\sqrt{N}}
\]
Índice de Margalef
“Transforma el número de especies por muestra a una proporción a la
cual las especies son añadidas por expansión de la muestra”
Moreno, 2001
\[
D_{mg} = \frac{S-1}{ln N}
\]
GRÁFICOS
Lenguaje de programación: R
Video de intalación
VIDEO
se activan las siguientes librerias:
library(ggplot2)
library(tidyverse)
library(extrafont)
library(ggthemes)
Gráfico de barras
Leyenda = c("Anfibios", "Reptiles")
num = c(622,469)
Datos <- data.frame(Leyenda,num)
head(Datos)
ggplot(Datos, aes(x=reorder(Leyenda, -num), y=num, fill=Leyenda)) +
geom_bar(stat = "identity") +
geom_text(aes(label=num), vjust=-0.25) +
labs(x="", y= "Número")+
theme_base()
Adjuntamos la imagen del grafico obtenida con el codigo anterior:
EJEMPLO
Suponiendo que tenemos la siguiente tabla de especies:
Rhinella Marina
3
5
Amphibia
8
Iguana iguana
4
3
Reptilia
7
Micrurus tschudii
1
1
Reptilia
2
Hyloxalus elechohystus
14
2
Amphibia
16
Rhinella spinulosa
9
12
Amphibia
21
Dicrodon heterolepis
3
1
Reptilia
4
Rhinella poeppigii
5
1
Amphibia
6
Medopheos edracantus
6
9
Reptilia
15
Microlophus occipitalis
2
10
Reptilia
12
Epipedobates anthonyi
18
2
Amphibia
20
Lista de anfibios
Rhinella Marina
Hyloxalus elechohystus
Rhinella spinulosa
Rhinella poeppigii
Epipedobates anthonyi
Lista de reptiles
Iguana iguana
Micrurus tschudii
Dicrodon heterolepis
Medopheos edracantus
Microlophus occipitalis
Evaluación de índices de diversidad
Índice Menhinick
dm = 10/sqrt(111)
dm
Índice de riqueza Menhinick para esta comunidad de anfibios y
reptiles es de 0.949158
* Índice de Berger – Parker*
D_Bp = 21/11
D_Bp
Índice de Índice de Berger – Parker para esta comunidad de anfibios y
reptiles es de 1.909091
* Índice de diversidad de Margalef*
D_mg = (10 - 1) / log(111)
D_mg
Índice de Índice de Margalef para esta comunidad de anfibios y
reptiles es de 1.911019
Resultados de los indices realizados en
Past
LS0tDQp0aXRsZTogJyoqw41uZGljZXMgZGUgQmlvZGl2ZXJzaWRhZCoqJw0Kc3VidGl0bGU6ICdIZXJwZXRvbG9nw61hJw0KYXV0aG9yOiAiSnVhbiBDYXJsb3MgU290byBRdWlzcGUiDQpkYXRlOiAnMjAyMi0wNC0zMCcNCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KLS0tDQoNCioqKg0KDQojIyBIZXBldG9mYXVuYSBwZXJ1YW5hDQoNCj4gIkVsIFBlcsO6IGVzIGNvbnNpZGVyYWRvIGNvbW8gdW5vIGRlIGxvcyBwYcOtc2VzIGNvbiBtYXlvciBiaW9kaXZlcnNpZGFkIGVuIGVsIG11bmRvICoqKE1JTkFNLCAyMDEyKSoqIHBvciBzdSBhbXBsaWEgZ2FtYSBkZSBlY29zaXN0ZW1hcyB5IHN1IGhldGVyb2dlbmVpZGFkIGVzcGFjaWFsLCBhbG9qYSB1bmEgZGUgbGFzIGRpdmVyc2lkYWRlcyBkZSBhbmZpYmlvcyB5IHJlcHRpbGVzIG3DoXMgaW1wb3J0YW50ZXMgZGVsIHBsYW5ldGEsIHNpZW5kbyBjb25zaWRlcmFkbyBjb21vIHVubyBkZSBsb3MgMTAgcGHDrXNlcyBtZWdhZGl2ZXJzb3MgZGVsIG11bmRvICoqKENoYXBhcnJvIHkgR3V0acOpcnJleiwgMjAxMCkqKiwgcmVnaXN0cmEgNjIyIGFuZmliaW9zIHkgNDY5IGVzcGVjaWVzIGRlIHJlcHRpbGVzICoqKE9TSU5GT1IsIDIwMjApKioiDQo+DQoNCioqKg0KDQojIyMgKipBZmliaW9zKioNCg0KPiAic29uIGRlIHRhbGxhIHBlcXVlw7FhICoqKEx1bmEgZXQgYWwuLCAyMDEwKSoqLCBzdSBwaWVsIGVzIGxpc2EgeSBhbGd1bm9zIGRlIHBpZWwgcnVnb3NhICoqKE/igJlzaGVhIHkgSGFsbGlkYXksIDIwMDIpKiosIHZpdmVuIHBhcnRlIGRlIHN1IHZpZGEgZW4gZWwgYWd1YSB5IG90cmEgZW4gbGEgdGllcnJhICoqKFlvdW5nIGV0IGFsLiwgMjAwNCkqKiwgc29uIG9yZ2FuaXNtb3MgZWN0b3TDqXJtaWNvcywgcG9yIGxvIHF1ZSBubyByZWd1bGFuIHN1IHRlbXBlcmF0dXJhIGNvcnBvcmFsLCBsYSBjdWFsIHZhcsOtYSBjb24gbGEgZGVsIGFtYmllbnRlICoqKE1vbnrDsywgMjAwMikqKiINCj4NCg0KIyMjICoqUmVwdGlsZXMqKg0KDQo+ICJTZSBjYXJhY3Rlcml6YW4gcG9yIHRlbmVyIHBpZWwgc2VjYSwgZHVyYSB5IHJlY3ViaWVydGEgZGUgZXNjYW1hcyAqKihMYSBNYXJjYSB5IFNvcmlhbm8sIDIwMDQpKiosIHJhesOzbiBwb3IgbGEgY3VhbCB0aWVuZW4gdW5hIGFwYXJpZW5jaWEgcnVnb3NhIHkgw6FzcGVyYSAqKijDgXZpbGEsIDIwMTcpKiouIExhcyBlc2NhbWFzIHNlIGRlcml2YW4gZGUgbGEgY2FwYSBleHRlcmlvciBkZSBsYSBwaWVsIG8gZXBpZGVybWlzIHkgZXN0w6FuIGZvcm1hZGFzIHByaW5jaXBhbG1lbnRlIHBvciBxdWVyYXRpbmEgKiooWnVnLCAxOTkzKSoqIg0KPg0KDQoqKioNCg0KIyMjICoqKsONTkRJQ0VTIERFIERJVkVSU0lEQUQqKioNCg0KPiAiU2UgdXRpbGl6YW4gYW1wbGlhbWVudGUgZW4gZXN0dWRpb3MgZWNvbMOzZ2ljb3MsIGRlIHBhaXNhamUsIGRlIGRpdmVyc2lkYWQgZ2Vuw6l0aWNhLCBkZSByaWVzZ28gYW1iaWVudGFsIHkgZGUgY2FtYmlvcyBlbiBwYXRyb25lcyBkZSB1c28gZGUgbGFzIHRpZXJyYXMuIEVuIGVzdHVkaW9zIGRlIGJpb2RpdmVyc2lkYWQsIGEgcGFydGlyIGRlbCBtdWVzdHJlbyBkZSBjb211bmlkYWRlcywgbsO6bWVybyBkZSB1bmlkYWRlcyBkZSBvYnNlcnZhY2nDs24gcHVlZGUgc2VyIHBlcXVlw7FvIHBhcmEgcmVhbGl6YXIgaW5mZXJlbmNpYSBwYXJhbcOpdHJpY2Egc29icmUgbGEgZGl2ZXJzaWRhZCBleGlzdGVudGUiDQo+DQo+ICoqKFBsYSwgMjAwNikqKg0KDQojIyMjICpSaXF1ZXphKg0KDQo+ICJwdWVkZSBjYWxjdWxhciBsYSByaXF1ZXphIG9ic2VydmFkYSBlbiBsYSBtdWVzdHJhIChgcmApLCBxdWUgZXMgZWwgbsO6bWVybyB0b3RhbCBkZSBlc3BlY2llcyBwcmVzZW50ZXMgZW4gZXNhIG11ZXN0cmEuIEVzdGEgZXN0aW1hY2nDs24gZXMgc2llbXByZSB1biB2YWxvciBubyBtYXlvciBhIGxhIHZlcmRhZGVyYSByaXF1ZXphIGRlIGxhIGNvbXVuaWRhZC4iDQo+DQo+ICoqQmxhemFyaW5pLCAyMDA4KioNCg0KUmlxdWV6YSBDaGFvOiBDaGFvICgxOTg3KSBkZXJpdsOzIHVuIGVzdGltYWRvciBwYXJhIGVsIG7Dum1lcm8gdG90YWwgZGUgZXNwZWNpZXMgcHJlc2VudGVzIGVuIHVuYSBjb211bmlkYWQgY29tbzogDQoNCiQkDQpTID0gciArIFxmcmFje2ZfMV4yfXsyZl8yfQ0KJCQNCg0KIyMjIyAqw41uZGljZSBkZSBTaGFubm9uKg0KDQo+ICJzZSBiYXNhIGVuIHN1cG9uZXIgcXVlIGxhIGhldGVyb2dlbmVpZGFkIGRlcGVuZGUgZGVsIG7Dum1lcm8gZGUgZXNwZWNpZXMgcHJlc2VudGVzIHkgZGUgc3UgYWJ1bmRhbmNpYSByZWxhdGl2YS4gRXMgdW5hIG1lZGlkYSBkZWwgZ3JhZG8gZGUgaW5jZXJ0aWR1bWJyZSBhc29jaWFkYSBhIGxhIHNlbGVjY2nDs24gYWxlYXRvcmlhIGRlIHVuIGluZGl2aWR1byBlbiBsYSBjb211bmlkYWQiDQo+DQo+ICoqQmFsemFyaW5pLCAyMDA4KioNCg0KIFNlIGNhbGN1bGEgY29tbzogDQogDQokJA0KSCA9IC1cc3VtX3tpPTF9XnggcF9pIGxuIHBfaQ0KJCQNCg0KIyMjIyAqw41uZGljZSBkZSBTaW1wc29uKg0KDQo+ICJNYW5pZmllc3RhIGxhIHByb2JhYmlsaWRhZCBkZSBxdWUgZG9zIGluZGl2aWR1b3MgdG9tYWRvcyBhbCBhemFyIGRlIHVuYSBtdWVzdHJhIHNlYW4gZGUgbGEgbWlzbWEgZXNwZWNpZSINCj4NCj4gKipNb3Jlbm8sIDIwMDEqKg0KDQokJA0KRCA9IFxzdW1feyB9cF9pXjINCiQkDQoNCiMjIyMgKsONbmRpY2UgZGUgTWNJbnRvc2gqDQoNCj4gImVzIHVuIMOtbmRpY2UgZGUgZG9taW5hbmNpYSBxdWUgc2UgYmFzYSBlbiBjb25zaWRlcmFyIHF1ZSBsYSBjb211bmlkYWQgZXMgdW4gcHVudG8gZW4gdW4gaGlwZXJlc3BhY2lvIGRlZmluaWRvIHBvciBsYXMgZXNwZWNpZXMsIHkgcXVlIHB1ZWRlIGN1YW50aWZpY2Fyc2UgY29tbyBsYSBkaXN0YW5jaWEgZXVjbGlkaWFuYSBkZXNkZSBlc2UgcHVudG8gYWwgb3JpZ2VuLCBzaSBoYXkgdGFudGFzIGVzcGVjaWVzIGNvbW8gaW5kaXZpZHVvcyBsYSBkaXZlcnNpZGFkIGVzIG3DoXhpbWEsIGxhIGRpZmVyZW5jaWEgZW50cmUgZXN0ZSBtw6F4aW1vICh0bykgeSBsYSBjb211bmlkYWQgZW4gZXN0dWRpbyBlcyB1bmEgbWVkaWRhIGRlIGxhIGRpdmVyc2lkYWQgYWJzb2x1dGEiDQo+DQo+ICoqQmFsemFyaW5pLCAyMDA4KioNCg0KRWwgZXN0aW1hZG9yIGRlbCDDrW5kaWNlIHNlIGNhbGN1bGEgY29tbzoNCg0KJCQNClUgPSBcZnJhY3t0byAtIFxzcXJ0e1xzdW1fe2k9MX1eciBYX2leMn19e3RvIC0gXHNxcnR7dG99fQ0KJCQgDQoNCiMjIyMgKsONbmRpY2UgZGUgQnVsbGEqDQoNCj4gIkVuIHVuIGdyw6FmaWNvIGRlIGxhIGZyZWN1ZW5jaWEgcmVsYXRpdmEgZGUgYXBhcmljacOzbiBkZSBsYXMgZXNwZWNpZXMgKG9yZGVuYWRhcykgdmVyc3VzIGVsIG7Dum1lcm8gZGUgZXNwZWNpZXMgKGFic2Npc2FzKSB1bmEgbMOtbmVhIGhvcml6b250YWwgZW4gYDEvcmAgcmVwcmVzZW50YXLDrWEgdW5hIGNvbXVuaWRhZCBjb24gZGl2ZXJzaWRhZCBtw6F4aW1hLiBTaSBzZSBzdXBlcnBvbmUgYSDDqXN0YSB1bmEgbMOtbmVhIHF1ZSByZXByZXNlbnRhIGxhIGZyZWN1ZW5jaWEgcmVsYXRpdmEgZW4gbGEgY29tdW5pZGFkIHkgc2UgY2FsY3VsYSBlbCBncmFkbyBkZSBzb2xhcGFtaWVudG8gZW50cmUgZXN0YXMgZG9zIGRpc3RyaWJ1Y2lvbmVzIg0KPg0KPiAqKkJhbHphcmluaSwgMjAwOCoqDQoNCkVsIMOtbmRpY2Ugc2UgY2FsY3VsYSBjb21vOiANCg0KJCQNCk8gPSBbXGZyYWN7XHN1bV97bD0xfV5yIG1pbihwX2ksXGZyYWN7MX17cn0pfXtyLTF9XQ0KJCQNCg0KIyMjIyAqw41uZGljZSBkZSBCZXJnZXItUGFya2VyKg0KDQo+ICJEb25kZSBgTm1heGAgZXMgZWwgbsO6bWVybyBkZSBpbmRpdmlkdW9zIGVuIGxhIGVzcGVjaWUgbcOhcyBhYnVuZGFudGUuIFVuIGluY3JlbWVudG8gZW4gZWwgdmFsb3IgZGUgZXN0ZSDDrW5kaWNlIHNlIGludGVycHJldGEgY29tbyB1biBhdW1lbnRvIGVuIGxhIGVxdWlkYWQgeSB1bmEgZGlzbWludWNpw7NuIGRlIGxhIGRvbWluYW5jaWEiDQo+DQo+ICoqTW9yZW5vLCAyMDAxKioNCg0KJCQNCmQgPSBcZnJhY3tOX3ttYXh9fXtOfQ0KJCQNCg0KIyMjIyAqw41uZGljZSBkZSBNZW5oaW5pY2sqDQoNCj4gIlNlIGJhc2EgZW4gbGEgcmVsYWNpw7NuIGVudHJlIGVsIG7Dum1lcm8gZGUgZXNwZWNpZXMgeSBlbCBuw7ptZXJvIHRvdGFsIGRlIGluZGl2aWR1b3Mgb2JzZXJ2YWRvcyINCj4NCj4gKipNb3JlbmksIDIwMDEqKg0KDQokJA0KRF9tID0gXGZyYWN7U317XHNxcnR7Tn19DQokJA0KDQojIyMjICrDjW5kaWNlIGRlIE1hcmdhbGVmKg0KDQo+IlRyYW5zZm9ybWEgZWwgbsO6bWVybyBkZSBlc3BlY2llcyBwb3IgbXVlc3RyYSBhIHVuYSBwcm9wb3JjacOzbiBhIGxhIGN1YWwgbGFzIGVzcGVjaWVzIHNvbiBhw7FhZGlkYXMgcG9yIGV4cGFuc2nDs24gZGUgbGEgbXVlc3RyYSINCj4NCj4gKipNb3Jlbm8sIDIwMDEqKg0KDQokJA0KRF97bWd9ID0gXGZyYWN7Uy0xfXtsbiBOfQ0KJCQNCg0KKioqDQoNCiMjIyAqKkdSw4FGSUNPUyoqDQoNCiMjIyMgKioqTGVuZ3VhamUgZGUgcHJvZ3JhbWFjacOzbjogUioqKg0KDQo8Y2VudGVyPg0KDQohW10oTG9nb19SLmpwZykNCg0KPC9jZW50ZXI+DQoNCiMjIyMgPHU+KipWaWRlbyBkZSBpbnRhbGFjacOzbioqPC91PiA8IS0tSFRNTCB0YWdzLS0+DQoNCjxjZW50ZXI+DQoNCjxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvazBvQ1pkSlBzRFUiIGZyYW1lYm9yZGVyPSIwIiAgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZXh0ZXJuYWw9MT48L2lmcmFtZT4NCg0KPC9jZW50ZXI+DQoNCioqKg0KDQpzZSBhY3RpdmFuIGxhcyBzaWd1aWVudGVzIGxpYnJlcmlhczoNCg0KICAgIGxpYnJhcnkoZ2dwbG90MikNCiAgICBsaWJyYXJ5KHRpZHl2ZXJzZSkNCiAgICBsaWJyYXJ5KGV4dHJhZm9udCkNCiAgICBsaWJyYXJ5KGdndGhlbWVzKQ0KDQoqKioNCg0KIyMjIyA8dT5HcsOhZmljbyBkZSBiYXJyYXM8L3U+IDwhLS1IVE1MIHRhZ3MtLT4NCg0KICAgIExleWVuZGEgPSBjKCJBbmZpYmlvcyIsICJSZXB0aWxlcyIpDQogICAgbnVtID0gYyg2MjIsNDY5KQ0KICAgIERhdG9zIDwtIGRhdGEuZnJhbWUoTGV5ZW5kYSxudW0pDQogICAgaGVhZChEYXRvcykNCiAgICANCiAgICBnZ3Bsb3QoRGF0b3MsIGFlcyh4PXJlb3JkZXIoTGV5ZW5kYSwgLW51bSksIHk9bnVtLCBmaWxsPUxleWVuZGEpKSArIA0KICAgIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArIA0KICAgIGdlb21fdGV4dChhZXMobGFiZWw9bnVtKSwgdmp1c3Q9LTAuMjUpICsNCiAgICBsYWJzKHg9IiIsIHk9ICJOw7ptZXJvIikrDQogICAgdGhlbWVfYmFzZSgpDQoNCkFkanVudGFtb3MgbGEgaW1hZ2VuIGRlbCBncmFmaWNvIG9idGVuaWRhIGNvbiBlbCBjb2RpZ28gYW50ZXJpb3I6DQoNCjxjZW50ZXI+DQoNCiFbXShCYXJyYXNfaGVycGV0b19ybWQucG5nKQ0KDQo8L2NlbnRlcj4NCg0KDQojICoqRUpFTVBMTyoqDQoNClN1cG9uaWVuZG8gcXVlIHRlbmVtb3MgbGEgc2lndWllbnRlIHRhYmxhIGRlIGVzcGVjaWVzOg0KDQp8ICAgICAgICAgRXNwZWNpZXMgICAgICAgICAgfCBRdWVicmFkYXMgfCBCb3NxdWUgIHwgICBDbGFzZSAgfFRvdGFsfA0KfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tOnw6LS0tLS0tLS0tOnw6LS0tLS0tLTp8Oi0tLS0tLS0tOnw6LS0tOnwNCnwgKlJoaW5lbGxhIE1hcmluYSogICAgICAgICB8ICAgIDMgICAgICB8ICAgIDUgICAgfCBBbXBoaWJpYSB8ICA4ICB8DQp8ICpJZ3VhbmEgaWd1YW5hKiAgICAgICAgICAgfCAgICA0ICAgICAgfCAgICAzICAgIHwgUmVwdGlsaWEgfCAgNyAgfA0KfCAqTWljcnVydXMgdHNjaHVkaWkqICAgICAgIHwgICAgMSAgICAgIHwgICAgMSAgICB8IFJlcHRpbGlhIHwgIDIgIHwgDQp8ICpIeWxveGFsdXMgZWxlY2hvaHlzdHVzKiAgfCAgICAxNCAgICAgfCAgICAyICAgIHwgQW1waGliaWEgfCAgMTYgfA0KfCAqUmhpbmVsbGEgc3BpbnVsb3NhKiAgICAgIHwgICAgOSAgICAgIHwgICAgMTIgICB8IEFtcGhpYmlhIHwgIDIxIHwNCnwgKkRpY3JvZG9uIGhldGVyb2xlcGlzKiAgICB8ICAgIDMgICAgICB8ICAgIDEgICAgfCBSZXB0aWxpYSB8ICA0ICB8DQp8ICpSaGluZWxsYSBwb2VwcGlnaWkqICAgICAgfCAgICA1ICAgICAgfCAgICAxICAgIHwgQW1waGliaWEgfCAgNiAgfA0KfCAqTWVkb3BoZW9zIGVkcmFjYW50dXMqICAgIHwgICAgNiAgICAgIHwgICAgOSAgICB8IFJlcHRpbGlhIHwgIDE1IHwNCnwgKk1pY3JvbG9waHVzIG9jY2lwaXRhbGlzKiB8ICAgIDIgICAgICB8ICAgIDEwICAgfCBSZXB0aWxpYSB8ICAxMiB8DQp8ICpFcGlwZWRvYmF0ZXMgYW50aG9ueWkqICAgfCAgICAxOCAgICAgfCAgICAyICAgIHwgQW1waGliaWEgfCAgMjAgfA0KDQoqKioNCg0KPHU+TGlzdGEgZGUgYW5maWJpb3M8L3U+IDwhLS1IVE1MIHRhZ3MtLT4NCg0KLSAgICpSaGluZWxsYSBNYXJpbmEqIA0KLSAgICpIeWxveGFsdXMgZWxlY2hvaHlzdHVzKg0KLSAgICpSaGluZWxsYSBzcGludWxvc2EqICANCi0gICAqUmhpbmVsbGEgcG9lcHBpZ2lpKiANCi0gICAqRXBpcGVkb2JhdGVzIGFudGhvbnlpKg0KDQo8dT5MaXN0YSBkZSByZXB0aWxlczwvdT4gPCEtLUhUTUwgdGFncy0tPg0KDQotICAgKklndWFuYSBpZ3VhbmEqDQotICAgKk1pY3J1cnVzIHRzY2h1ZGlpKiANCi0gICAqRGljcm9kb24gaGV0ZXJvbGVwaXMqIA0KLSAgICpNZWRvcGhlb3MgZWRyYWNhbnR1cyoNCi0gICAqTWljcm9sb3BodXMgb2NjaXBpdGFsaXMqIA0KDQojIEV2YWx1YWNpw7NuIGRlIMOtbmRpY2VzIGRlIGRpdmVyc2lkYWQNCg0KIyMjIyMgKsONbmRpY2UgTWVuaGluaWNrKg0KIA0KICAgIGRtID0gMTAvc3FydCgxMTEpIA0KICAgIGRtDQoNCsONbmRpY2UgZGUgcmlxdWV6YSBNZW5oaW5pY2sgcGFyYSBlc3RhIGNvbXVuaWRhZCBkZSBhbmZpYmlvcyB5IHJlcHRpbGVzIGVzIGRlIDAuOTQ5MTU4DQoNCiMjIyMjICogw41uZGljZSBkZSBCZXJnZXIg4oCTIFBhcmtlcioNCg0KICAgIERfQnAgPSAyMS8xMQ0KICAgIERfQnANCg0Kw41uZGljZSBkZSDDjW5kaWNlIGRlIEJlcmdlciDigJMgUGFya2VyIHBhcmEgZXN0YSBjb211bmlkYWQgZGUgYW5maWJpb3MgeSByZXB0aWxlcyBlcyBkZSAxLjkwOTA5MQ0KDQojIyMjICogw41uZGljZSBkZSBkaXZlcnNpZGFkIGRlIE1hcmdhbGVmKg0KDQogICAgRF9tZyA9ICgxMCAtIDEpIC8gbG9nKDExMSkNCiAgICBEX21nDQogICAgDQrDjW5kaWNlIGRlIMONbmRpY2UgZGUgTWFyZ2FsZWYgcGFyYSBlc3RhIGNvbXVuaWRhZCBkZSBhbmZpYmlvcyB5IHJlcHRpbGVzIGVzIGRlIDEuOTExMDE5DQoNCioqKg0KDQojIyMjICoqUmVzdWx0YWRvcyBkZSBsb3MgaW5kaWNlcyByZWFsaXphZG9zIGVuIGBQYXN0YCoqDQoNCjxjZW50ZXI+DQoNCiFbXShJbmRpY2VzX0Jpby5qcGcpDQoNCjwvY2VudGVyPg0KDQo8ZGl2IGNsYXNzPSJ0b2NpZnktZXh0ZW5kLXBhZ2UiIGRhdGEtdW5pcXVlPSJ0b2NpZnktZXh0ZW5kLXBhZ2UiIHN0eWxlPSJoZWlnaHQ6MDsiPjwvZGl2Pg0K