La base de datos whas500.dta, contiene la información de 500 participantes del estudio “Worcester Heart Attack Study”. Los autores tienen como objetivo evaluar factores asociados a la supervicencia desde la admisión al hospital en pacientes con infarto agudo de miocardio. La muestra total es de 276 participantes. Se analizaron factores medidos en la admisión como la edad (age, years), género (gender=1:Masculino), la frecuencia cardíaca (hr:heart rate, beats per minute), la presión arterial sistólica (sysbp, mmHg), la presión arterial diastólica (diabp, mmHg), índice de masa corporal (bmi), historia de enfermedad cardiovascular (cvd=1: SI), fibrilación atrial (afb=1: SI), choque cardiogénico (sho=1: SI), complicaciones cardíacas congestivas, ENTRE OTRAS. Se midieron los días de admisión al hospital hasta la fecha del evento (muerte) o último seguimiento (lenfol). La variable fstat corresponde al estado vital en el último seguimiento (0: Vivo, 1= Muerto).
Análisis de curvas de supervivencia
Curva de supervivencia para el tiempo a la muerte (en días) en pacientes con infarto agudo del miocardio y su relación con sexo
Call: survfit(formula = survObjectkm1 ~ gender, data = mydata, conf.type = "log-log")
n events median 0.95LCL 0.95UCL
gender=female 300 111 2160 1624 NA
gender=male 200 104 1317 865 1579

Call:
survdiff(formula = survObjectkm1 ~ gender, data = mydata)
N Observed Expected (O-E)^2/E (O-E)^2/V
gender=female 300 111 130.7 2.98 7.79
gender=male 200 104 84.3 4.62 7.79
Chisq= 7.8 on 1 degrees of freedom, p= 0.005
Comparación de modelos
Los siguientes son los resultados de 4 modelos propuestos para predecir la supervivencia en pacientes con infarto agudo de miocardio.
5. De acuerdo al modelo seleccionado, interprete el valor del hazard ratio para al menos 3 variables de dicho modelo
hr: \(HR_{hr} = e^{1.01} = 2.7456\) Por cada aumento en un latido por minuto de los pacientes con IAM, el riesgo instantaneo de muerte aumenta en 1.74 veces más el riesgo instantaneo de los pacientes de morir que no aumentan la frecuencia cardiaca.
diasbp: \(HR_{diasbp} = e^{0.99} = 2.69123\) Por cada aumento adicional de un mmHg en la presión diastólica de los pacientes con IAM, el riesgo instantaneo de muerte aumenta en 1.69 veces más el riesgo instantaneo de morir de los pacientes que no aumentan la presión diastólica.
bmi: \(HR_{bmi} = e^{0.96} = 2.6117\) Por cada aumento adicional de un kg/m^2 en el bmi de los pacientes con IAM, el riesgo instantaneo de muerte aumenta en 1.61 veces más el riesgo instantaneo de morir de los pacientes que no aumentan el bmi.
6. Análisis del supuesto de riesgos proporcionales
Para los siguientes resultados en una sub-muestra de pacientes mayores de 70 años (n=276), evalue para el modelo planteado y sus predictores, el cumplimiento del supuesto de riesgos proporcionales. Tenga en cuenta el método gráfico y los hallazgos del test de hipótesis para la valoración del supuesto desde el enfoque de la significación estadística (asumiendo alfa de 0.05, que limitaciones podría tener este enfoque para la valoración del supuesto)
chisq df p
age 0.06567 1 0.798
gender 0.00051 1 0.982
hr 1.44884 1 0.229
bmi 1.40541 1 0.236
cvd 0.24818 1 0.618
afb 0.01787 1 0.894
sho 5.05250 1 0.025
sysbp 6.02792 1 0.014
GLOBAL 11.88568 8 0.156
















Análisis de supuestos de riesgos proporcionales
Para el análisis de supuestos de riesgos proporcionales teniendo en cuenta el método gráfico y los hallazgos del test de hipótesis desde el enfoque de la significación estadística podemos observar que para las variables sho y sysbp se obtuvo un valor-p<0.05, lo que indica que en estas rechazamos la hipótesis de que la tendencia en el tiempo sea nula, y por tanto si presentan cambios en la tendencia en el tiempo. Además al evaluar las graficas se corrobora en las graficas de las dos variables descritas se observa una tendencia en el tiempo. Las demás variables si cumplen el supuesto de riesgos proporcionales de la regresión de Cox.
Análisis de un estudio con modelo de riesgos proporcionales
7. Seleccione en su área de interés un estudio en el cual se aplique el modelo de riesgos proporcionales de Cox. Evalúe según el artículo el propósito del modelo (fines explicativos vs fines predictivos). Analice según lo reportado por los autores la valoración de los supuestos del modelo (riesgos proporcionales, linealidad en los predictores contínuos). Presente un breve resumen del estudio, objetivos, y descripción del diseño del estudio y resultados principales según el modelo. Adjunte el artículo seleccionado.
Comparing Clinical and Economic Outcomes Associated with Early Initiation of Combination Therapy of an Alpha Blocker and Dutasteride or Finasteride in Men with Benign Prostatic Hyperplasia in the United States.
Maral DerSarkissian, PhD; Yongling Xiao, PhD; Mei Sheng Duh, MPH, ScD; Patrick Lefebvre, MA; Andrine R. Swensen, MS, PhD; and Christopher F. Bell, MS
J Manag Care Spec Pharm. 2016;22(10):1204-14
Este articulo tiene como propósito comparar dos medicamentos para el tratamiento de pacientes con HPB, este modelo se realiza con fines predictivos.
Objetivo: Comparar los resultados clínicos, económicos y de utilización de recursos en pacientes con hiperplasia prostática benigna (HPB) tratados tempranamente con combinación de alfa bloqueadores (AB) e inhibidores de 5 alfa reductasa (I5AR) (Dutasteride vs Finasteride).
Métodos: Análisis retrospectivo de datos recogidos entre 2003 y 2013 en hombres mayores de 50 años con HPB, para comparar los resultados entre pacientes que recibieron tempranamente dutasteride+AB o finasteride+AB. Los desenlaces de interés incluyó retención aguda de orina (RAO), cirugía prostática, progresía clínica, costos medico y utilización de recurso de salud publica. Se usaron modelos proporcionales de Cox, regresión lineal y Poisson para evaluar la asociación entre los resultados y la terapia combinada apropiada.
Resultados: 2778 pacientes se incluyeron en en grupo de finasteride+AB y 4125 en en grupo de dutasteride+AB. Luego de ajustar, no se encontraron diferencias estadísticamente significativas entre los grupos para RAO ([HR] = 0.845, 95% IC = 0.660-1.070, P = 0.1643), cirugía prostática (HR = 0.806, 95% IC = 0.568-1.171, P = 0.2525), y progresión clínica (HR = 0.834, 95% IC = 0.663-1.043, P = 0.1122).
Conclusiones: Segun el modelo, los resutados no muestran diferencias entre tratamiento con dutasteride + AB y finasteride + AB en pacientes con HPB.
LS0tCnRpdGxlOiAiVGFsbGVyIEFuw6FsaXNpcyBkZSBUaWVtcG8gYWwgRXZlbnRvIgphdXRob3I6ICJGcmFuY2lzY28gTHVpcyBDYXJvIFphcGF0YSIKZGF0ZTogIjIwLzMvMjAyMiIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2M6IHllcwogICAgdG9jX2RlcHRoOiAzCiAgICB0b2NfZmxvYXQ6IHllcwogICAgbnVtYmVyX3NlY3Rpb25zOiBubwogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICBoaWdobGlnaHQ6IHRhbmdvCiAgICB0aGVtZTogZmxhdGx5CiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6ICczJwogICAgZGZfcHJpbnQ6IHBhZ2VkCmFsd2F5c19hbGxvd19odG1sOiB5ZXMKLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRSwgZWNobz1GQUxTRX0KbGlicmFyeShrbml0cikKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG89RkFMU0UsIGNvbW1lbnQ9TkEsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIHRpZHk9VFJVRSwgZW5naW5lID0gJ1InLCBmaWcuYWxpZ24gPSAnY2VudGVyJywgZmlnLnBvcyA9ICdIJykKb3B0aW9ucyhrbml0ci5rYWJsZS5OQSA9ICcnKQpvcHRpb25zKGRpZ2l0cz02KQpsaWJyYXJ5KGZvcm1hdFIpCmBgYAoKYGBge3J9CmxpYnJhcnkoaGF2ZW4pCgpteWRhdGEgPC0gcmVhZF9kdGEoImRhdGFzZXRzL3doYXM1MDAuZHRhIikKCm15ZGF0YTwtbmEub21pdChteWRhdGEpIAoKYGBgCgpMYSBiYXNlIGRlIGRhdG9zIHdoYXM1MDAuZHRhLCBjb250aWVuZSBsYSBpbmZvcm1hY2nDs24gZGUgNTAwIHBhcnRpY2lwYW50ZXMgZGVsIGVzdHVkaW8g4oCcV29yY2VzdGVyIEhlYXJ0IEF0dGFjayBTdHVkeeKAnS4gTG9zIGF1dG9yZXMgdGllbmVuIGNvbW8gb2JqZXRpdm8gZXZhbHVhciBmYWN0b3JlcyBhc29jaWFkb3MgYSBsYSBzdXBlcnZpY2VuY2lhIGRlc2RlIGxhIGFkbWlzacOzbiBhbCBob3NwaXRhbCBlbiBwYWNpZW50ZXMgY29uIGluZmFydG8gYWd1ZG8gZGUgbWlvY2FyZGlvLiBMYSBtdWVzdHJhIHRvdGFsIGVzIGRlIDI3NiBwYXJ0aWNpcGFudGVzLgpTZSBhbmFsaXphcm9uIGZhY3RvcmVzIG1lZGlkb3MgZW4gbGEgYWRtaXNpw7NuIGNvbW8gbGEgZWRhZCAoYWdlLCB5ZWFycyksIGfDqW5lcm8gKGdlbmRlcj0xOk1hc2N1bGlubyksIGxhIGZyZWN1ZW5jaWEgY2FyZMOtYWNhIChocjpoZWFydCByYXRlLCBiZWF0cyBwZXIgbWludXRlKSwgbGEgcHJlc2nDs24gYXJ0ZXJpYWwgc2lzdMOzbGljYSAoc3lzYnAsIG1tSGcpLCBsYSBwcmVzacOzbiBhcnRlcmlhbCBkaWFzdMOzbGljYSAoZGlhYnAsIG1tSGcpLCDDrW5kaWNlIGRlIG1hc2EgY29ycG9yYWwgKGJtaSksIGhpc3RvcmlhIGRlIGVuZmVybWVkYWQgY2FyZGlvdmFzY3VsYXIgKGN2ZD0xOiBTSSksIGZpYnJpbGFjacOzbiBhdHJpYWwgKGFmYj0xOiBTSSksIGNob3F1ZSBjYXJkaW9nw6luaWNvIChzaG89MTogU0kpLCBjb21wbGljYWNpb25lcyBjYXJkw61hY2FzIGNvbmdlc3RpdmFzLCBFTlRSRSBPVFJBUy4KU2UgbWlkaWVyb24gbG9zIGTDrWFzIGRlIGFkbWlzacOzbiBhbCBob3NwaXRhbCBoYXN0YSBsYSBmZWNoYSBkZWwgZXZlbnRvIChtdWVydGUpIG8gw7psdGltbyBzZWd1aW1pZW50byAobGVuZm9sKS4gTGEgdmFyaWFibGUgZnN0YXQgY29ycmVzcG9uZGUgYWwgZXN0YWRvIHZpdGFsIGVuIGVsIMO6bHRpbW8gc2VndWltaWVudG8gKDA6IFZpdm8sIDE9IE11ZXJ0bykuCgoqKlBhcXVldGVzIG5lY2VzYXJpb3MqKgpgYGB7cn0KIyBQYXF1ZXRlcwpsaWJyYXJ5KHN1bW1hcnl0b29scykKbGlicmFyeShzdXJ2aXZhbCkKbGlicmFyeShnZ2ZvcnRpZnkpCmxpYnJhcnkoc3Vydm1pbmVyKQpsaWJyYXJ5KHNqUGxvdCkKYGBgCgpWYXJpYWJsZSB8IE5vbWJyZSB8IERlc2NyaXBjacOzbiB8IEPDs2RpZ29zL1ZhbG9yZXMgCjotLSB8IDotLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IDotLS0tLS0tLSAgCjEgfCBpZCB8IElkZW50aWZpY2Fkb3IgfCBOw7ptZXJvIGRlbCAxIGFsIDUwMAoyIHwgYWdlfCBFZGFkIHwgTsO6bWVybyBkZWwgMzAgYWwgMTA0CjMgfCBnZW5kZXIgfCBHw6luZXJvfCBGYWN0b3IgMD1mZW1lbmlubywgMT1tYXNjdWxpbm8KNCB8IGhyIHwgRnJlY3VlbmNpYSBjYXJkaWFjYSBlbiBsYXRpZG9zIHBvciBtaW51dG8gYWwgaW5ncmVzbyB8IE7Dum1lcm8gZGVsIDM1IGFsIDE4Ngo1IHwgc3lzYnAgfCBQcmVzacOzbiBhcnRlcmlhbCBzaXN0w7NsaWNhIGFsIGluZ3Jlc28gZW4gbW1IZyB8IE7Dum1lcm8gZGVsIDU3IGFsIDI0NAo2IHwgZGlhc2JwIHwgUHJlc2nDs24gYXJ0ZXJpYWwgZGlhc3TDs2xpY2EgYWwgaW5ncmVzbyBlbiBtbUhnIHwgTsO6bWVybyBkZWwgNiBhbCAxOTgKNyB8IGJtaSB8IMONbmRpY2UgZGUgbWFzYSBjb3Jwb3JhbCBlbiBrZy9tdF4yIHwgTsO6bWVybyBkZWwgMTMgYWwgNDQuOAo4IHwgY3ZkIHwgQW50ZWNlZGVudGUgZGUgZW5mZXJtZWRhZCBjYXJkaW92YXNjdWxhciB8IEZhY3RvciAwPU5vLCAxPVNpCjkgfCBhZmIgfCBGaWJyaWxhY2nDs24gYXVyaWN1bGFyIHwgRmFjdG9yIDA9Tm8sIDE9U2kKMTAgfCBzaG8gfCBQcmVzZW5jaWEgZGUgY2hvcXVlIGFsIGluZ3Jlc28gfCBGYWN0b3IgMD1ObywgMT1TaQoxMSB8IGNoZiB8IHwgRmFjdG9yIDA9Tm8sIDE9U2kKMTIgfCBhdjMgfCB8IEZhY3RvciAwPU5vLCAxPVNpCjEzIHwgbWlvcmQgfCBPcmRlbiBkZWwgcHJlc2VudGUgaW5mYXJ0byB8IEZhY3RvciAwPVByaW1lcm8sIDE9UmVjdXJyZW50ZQoxNCB8IG1pdHlwZSB8IFRpcG8gZGUgSW5mYXJ0byB8IEZhY3RvciAxID0gQ29uIG9uZGEgUS4gMiA9IFNpbiBvbmRhIFEuIDMgPSBJbmRldGVybWluYWRvCjE1IHwgeWVhciB8IGHDsW8gZGUgbGEgY29ob3J0ZSB8IE7Dum1lcm8gZGVsIDEgYWwgMwoxNiB8IGxvcyB8IETDrWFzIGRlIGVzdGFuZGlhIGhvc3BpdGFsYXJpYXwgTsO6bWVybyBkZWwgMCBhbCA0NwoxNyB8IGRzdGF0IHwgRXN0YXR1cyB2aXRhbCBhbCBlZ3Jlc28gaG9zcGl0YWxhcmlvIHwgRmFjdG9yIDA9Vml2bywgMT1NdWVydG8KMTggfCBsZW5mb2wgfCBEdXJhY2nDs24gZGVsIHNlZ3VpbWllbnRvIGVuIGTDrWFzIHwgIE7Dum1lcm8gZGVsICBhbCAyMzU4CjE5IHwgZnN0YXQgfCBFc3RhdHVzIHZpdGFsIGVuIGVsIMO6bHRpbW8gc2VndWltaWVudG8gfCAwOiBWaXZvLCAxPU11ZXJ0bwoKIyMgQW7DoWxpc2lzIGRlIGN1cnZhcyBkZSBzdXBlcnZpdmVuY2lhCgoqKkN1cnZhIGRlIHN1cGVydml2ZW5jaWEgcGFyYSBlbCB0aWVtcG8gYSBsYSBtdWVydGUgKGVuIGTDrWFzKSBlbiBwYWNpZW50ZXMgY29uIGluZmFydG8gYWd1ZG8gZGVsIG1pb2NhcmRpbyB5IHN1IHJlbGFjacOzbiBjb24gc2V4byoqIAoKYGBge3J9CiMgR2VuZXJhY2nDs24gZGVsIG1vZGVsbzoKIyBDb252ZXJ0aXIgbGEgdmFyaWFibGUgc2V4byBjb21vIGZhY3RvciB5IGFzaWduYXIgY29ycmVjdGFtZW50ZSBsb3Mgbml2ZWxlcyAwPWZlbWVuaW5vLCAxPW1hc2N1bGlubwpteWRhdGEkZ2VuZGVyIDwtIGZhY3RvciggbXlkYXRhJGdlbmRlciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscz0gYygwLDEpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzPWMoImZlbWFsZSIsICJtYWxlIikpCnN1cnZPYmplY3RrbTEgPC0gU3VydihteWRhdGEkbGVuZm9sLCBteWRhdGEkZnN0YXQpCmZpdGttMSA8LSBzdXJ2Zml0KHN1cnZPYmplY3RrbTEgfiBnZW5kZXIsIGRhdGEgPSBteWRhdGEsIGNvbmYudHlwZT0ibG9nLWxvZyIpCmZpdGttMQpgYGAKCgpgYGB7cn0KcGxvdChmaXRrbTEsCnhsYWI9IkTDrWFzIGRlIHNlZ3VpbWllbnRvIiwgeWxhYj0iU3VwZXJ2aXZlbmNpYSIsbHR5ID0gYygic29saWQiLCAiZGFzaGVkIiksIGNvbCA9IGMoInllbGxvdyIsICJibHVlIikpCmFibGluZShoID0gMC41MCkKbGVnZW5kKDE1MDAsIC45NSwgYygiRmVtZW5pbm8iLCAiTWFzY3VsaW5vIiksIGx0eSA9IGMoInNvbGlkIiwgImRhc2hlZCIpLCBjb2wgPSBjKCJ5ZWxsb3ciLCAiYmx1ZSIKKSkKdGl0bGUoIkN1cnZhcyBkZSBLYXBsYW4tTWVpZXIgZW4gcGFjaWVudGVzIGNvbiBJQU0geSBzdSByZWxhY2nDs24gY29uIGVsIFNleG8iKQpgYGAKYGBge3J9CmxvZ1JhbmsxICA8LSBzdXJ2ZGlmZihzdXJ2T2JqZWN0a20xIH4gZ2VuZGVyLCBkYXRhID0gbXlkYXRhKQpsb2dSYW5rMQpgYGAKCiMjIyAxLiBDb24gYmFzZSBlbiBsYSBpbmZvcm1hY2nDs24gYW50ZXJpb3IuIERlc2NyaWJhIHkgYW5hbGljZSBsYXMgY3VydmFzIGRlIHN1cGVydml2ZW5jaWEgc2Vnw7puIGfDqW5lcm8uCgpMYXMgY3VydmFzIGRlIHN1cGVydml2ZW5jaWEgZGUgS2FwbGFuIE1laWVyIGRlIGxvcyBwYWNpZW50ZXMgY29uIEFJTSBzZXBhcmFkYXMgcG9yIHNleG8geSBlbCBjYWxjdWxvIGRlbCB0ZXN0IGxvZy1yYW5rIHNlIHN1Z2llcmUgcXVlOgoKTGEgY3VydmEgc2Ugc3VwZXJ2aXZlbmNpYSBkZSBwYWNpZW50ZXMgY29uIElBTSBjb24gc2V4byBmZW1lbmlubyBzaWVtcHJlIHBvciBlbmNpbWEgZGUgbGEgY3VydmEgZGUgcGFjaWVudGVzIGNvbiBJQU0geSBzZXhvIG1hc2N1bGlubywgbG8gcXVlIGluZGljYSBxdWUgZW4gY3VhbHF1aWVyIHB1bnRvIGRlbCBzZWd1aW1pZW50byBsYSBtb3J0YWxpZGFkIGZ1ZSBtYXlvciBlbiBsb3MgaG9tYnJlcyBxdWUgZW4gbGFzIG11amVyZXMuCgpMYSBtZWRpYW5hIGRlIHN1cGVydml2ZW5jaWEgcGFyYSBlbCBzZXhvIG1hc2N1bGlubyBmdWUgZGUgMTMxNyBkw61hcyAoSUMgODY1OzE1NzkpIHkgcGFyYSBzZXhvIGZlbWVuaW5vIGZ1ZSBkZSAyMTYwIChJQyAxNjI0O05BKS4KCkRlc2RlIGVsIGVuZm9xdWUgZGUgbGEgc2lnbmlmaWNhbmNpYSBlc3RhZGlzdGljYSB5IGxhIGFwbGljYWNpw7NuIGRlbCB0ZXN0IGRlIGxvZy1yYW5rIHNlIG9idHV2byBwPSAwLjAwNSwgcG9yIGxvIHF1ZSBzZSByZWNoYXphIGxhIGhpcG90ZXNpcyBkZSBpZ3VhbGRhZCBlbiBhbWJhcyBjdXJ2YXMgZGUgc3VwZXJ2aXZlbmNpYSBlbnRyZSBsb3MgZ3J1cG9zIGRhZG9zIHBvciBlbCBzZXhvIHkgc2UgZW5jdWVudHJhIGRpZmVyZW5jaWFzIGVzdGFkaXN0aWNhbWVudGUgc2lnbmlmaWNhdGl2YXMuIAoKKipDdXJ2YSBkZSBzdXBlcnZpdmVuY2lhIHBhcmEgZWwgdGllbXBvIGEgbGEgbXVlcnRlIChlbiBkw61hcykgZW4gcGFjaWVudGVzIGNvbiBpbmZhcnRvIGFndWRvIGRlbCBtaW9jYXJkaW8geSBzdSByZWxhY2nDs24gY29uIGFudGVzY2VkZW50ZSBkZSBlbmZlcm1lZGFkIGNhcmRpb3Zhc2N1bGFyKioKCmBgYHtyfQojIEdlbmVyYWNpw7NuIGRlbCBtb2RlbG86CnN1cnZPYmplY3RrbTIgPC0gU3VydihteWRhdGEkbGVuZm9sLCBteWRhdGEkZnN0YXQpCmZpdGttMiA8LSBzdXJ2Zml0KHN1cnZPYmplY3RrbTIgfiBjdmQsIGRhdGEgPSBteWRhdGEsIGNvbmYudHlwZT0ibG9nLWxvZyIpCmZpdGttMgpgYGAKCmBgYHtyfQpwbG90KGZpdGttMiwKeGxhYj0iRMOtYXMgZGUgc2VndWltaWVudG8iLCB5bGFiPSJTdXBlcnZpdmVuY2lhIixsdHkgPSBjKCJzb2xpZCIsICJkYXNoZWQiKSwgY29sID0gYygiYmxhY2siLCAicmVkIikpCmFibGluZShoID0gMC41MCkKbGVnZW5kKDE1MDAsIC45NSwgYygiTm8tY3ZkIiwgIlNpLWN2ZCIpLCBsdHkgPSBjKCJzb2xpZCIsICJkYXNoZWQiKSwgY29sID0gYygiYmxhY2siLCAicmVkIikpCnRpdGxlKCJDdXJ2YXMgZGUgS2FwbGFuLU1laWVyIGVuIHBhY2llbnRlcyBjb24gSUFNIHkgc3UgcmVsYWNpw7NuIGNvbiBlbCBhbnRlY2VkZW50ZSBkZSBlbmZlcm1lZGFkIGNhcmRpb3Zhc2N1bGFyIikKYGBgCgpgYGB7cn0KbG9nUmFuazIgIDwtIHN1cnZkaWZmKHN1cnZPYmplY3RrbTEgfiBjdmQsIGRhdGEgPSBteWRhdGEpCmxvZ1JhbmsyCmBgYAoKIyMjIDIuIENvbiBiYXNlIGVuIGxhIGluZm9ybWFjacOzbiBhbnRlcmlvci4gRGVzY3JpYmEgeSBhbmFsaWNlIGxhcyBjdXJ2YXMgZGUgc3VwZXJ2aXZlbmNpYSBzZWfDum4gYW50ZWNlZGVudGUgZGUgZW5mZXJtZWRhZCBjYXJkaW92YXNjdWxhcgoKTGFzIGN1cnZhcyBkZSBzdXBlcnZpdmVuY2lhIGRlIEthcGxhbiBNZWllciBkZSBsb3MgcGFjaWVudGVzIGNvbiBBSU0gc2VwYXJhZGFzIHBvciBhbnRlY2VkZW50ZXMgZGUgZW5mZXJtZWRhZCBjYXJkaW92YXNjdWxhciB5IGVsIGPDoWxjdWxvIGRlbCB0ZXN0IGxvZy1yYW5rIHNlIHN1Z2llcmUgcXVlOgoKTGEgY3VydmEgc2Ugc3VwZXJ2aXZlbmNpYSBkZSBwYWNpZW50ZXMgY29uIElBTSBzaW4gYW50ZWNlZGVudGUgZGUgZW5mZXJtZWRhZCBjYXJkaW92YXNjdWxhciBzaWVtcHJlIHNlIGVuY29udHLDsyBwb3IgZW5jaW1hIGRlIGxhIGN1cnZhIGRlIHBhY2llbnRlcyBjb24gSUFNIGNvbiBkaWNobyBhbnRlY2VkZW50ZSwgbG8gcXVlIGluZGljYSBxdWUsIGVuIGdlbmVyYWwgbGEgbW9ydGFsaWRhZCBlcmEgbWF5b3IgZW4gbG9zIHF1ZSB0ZW5pYW4gYW50ZWNlZGVudGUgZGUgZW5mZXJtZWRhZCBjYXJkaW92YXNjdWxhci4gCgpMYSBtZWRpYW5hIGRlIHN1cGVydml2ZW5jaWEgcGFyYSBhcXVlbGxvcyBwYWNpZW50ZXMgY29uIElBTSBzaW4gYW50ZWNlZGVudGVzIGRlIGVuZmVybWVkYWQgY2FyZGlvdmFzY3VsYXIgZnVlIGRlIDIzNTMgZMOtYXMgKElDIDE1NzY7TkEpIHkgZGUgMTU3NyBkw61hcyAoSUMgMTM1OTsyMzUwKS4gU2Ugb2JzZXJ2YSBwb3IgdGFudG8gcXVlIGxvcyBpbnRlcnZhbG9zIGRlIGNvbmZpYW56YSBzZSBzdXBlcnBvbmVuLgoKQWRlbcOhcyBkZXNkZSBlbCBlbmZvcXVlIGRlIGxhIHNpZ25pZmljYW5jaWEgZXN0YWRpc3RpY2EgeSBsYSBhcGxpY2FjacOzbiBkZWwgdGVzdCBkZSBsb2ctcmFuayBzZSBvYnR1dm8gcD0gMC4wOSwgcG9yIGxvIHF1ZSBubyBzZSByZWNoYXphIGxhIGhpcG90ZXNpcyBkZSBpZ3VhbGRhZCB5IG5vIHNlIGVuY3VlbnRyYW4gZGlmZXJlbmNpYXMgZXN0YWRpc3RpY2FtZW50ZSBzaWduaWZpY2F0aXZhcy4gCgpUYW50byBsYSBzdXBlcnBvc2ljacOzbiBkZSBsb3MgaW50ZXJ2YWxvcyBkZSBjb25maWFuemEgY29tbyBlbCB2YWxvciBkZSBwIGRlIDAuMDksIGRlc2RlIGVsIGVuZm9xdWUgZGUgbGEgc2lnbmlmaWNhbmNpYSBlc3RhZGlzdGljYSwgaW5kaWNhbiBxdWUgZW4gcGFjaWVudGVzIGNvbiBJQU0geSBsYSBwcmVzZW5jaWEgbyBubyBkZSBhbnRlY2VkZW50ZSBkZSBlbmZlcm1lZGFkIGNhcmRpb3Zhc2N1bGFyIG5vIGluZmx1eWUgZW4gbGEgbW9ydGFsaWRhZC4KCgpgYGB7cn0KIyBHZW5lcmFjacOzbiBkZWwgbW9kZWxvOgpzdXJ2T2JqZWN0a20zIDwtIFN1cnYobXlkYXRhJGxlbmZvbCwgbXlkYXRhJGZzdGF0KQpmaXRrbTMgPC0gc3VydmZpdChzdXJ2T2JqZWN0a20zIH4gc2hvLCBkYXRhID0gbXlkYXRhLCBjb25mLnR5cGU9ImxvZy1sb2ciKQpmaXRrbTMKYGBgCgpgYGB7cn0KcGxvdChmaXRrbTMsCnhsYWI9IkTDrWFzIGRlIHNlZ3VpbWllbnRvIiwgeWxhYj0iU3giLGx0eSA9IGMoInNvbGlkIiwgImRhc2hlZCIpLCBjb2wgPSBjKCJvcmFuZ2UiLCAiYmxhY2siKSkKYWJsaW5lKGggPSAwLjUwKQpsZWdlbmQoMTUwMCwgLjk1LCBjKCJOby1DaG9xdWUgQ2FyZC4iLCAiU2ktQ2hvcXVlIENhcmQuIiksIGx0eSA9IGMoInNvbGlkIiwgImRhc2hlZCIpLCBjb2wgPSBjKCJvcmFuZ2UiLCAiYmxhY2siKSkKdGl0bGUoIkN1cnZhcyBkZSBLYXBsYW4tTWVpZXIgZW4gcGFjaWVudGVzIGNvbiBJQU0geSBzdSByZWxhY2nDs24gY29uIGxhIHByZXNlbmNpYSBkZSBjaG9xdWUgYWwgaW5ncmVzbyIpCmBgYApgYGB7cn0KbG9nUmFuazEgIDwtIHN1cnZkaWZmKHN1cnZPYmplY3RrbTEgfiBzaG8sIGRhdGEgPSBteWRhdGEpCmxvZ1JhbmsxCmBgYAoKIyMjIDMuIENvbiBiYXNlIGVuIGxhIGluZm9ybWFjacOzbiBhbnRlcmlvci4gRGVzY3JpYmEgeSBhbmFsaWNlIGxhcyBjdXJ2YXMgZGUgc3VwZXJ2aXZlbmNpYSBzZWfDum4gY2hvcXVlIGNhcmRpb2fDqW5pY28KCkxhcyBjdXJ2YXMgZGUgc3VwZXJ2aXZlbmNpYSBkZSBLYXBsYW4gTWVpZXIgZGUgbG9zIHBhY2llbnRlcyBjb24gQUlNIHNlcGFyYWRhcyBwb3IgbGEgcHJlc2VuY2lhIGRlIGNob3F1ZSBjYXJkaW9nw6luaWNvIGEgbGEgYWRtaXNpw7NuIGFsIGhvc3BpdGFsLgoKTGEgY3VydmEgc2Ugc3VwZXJ2aXZlbmNpYSBkZSBwYWNpZW50ZXMgY29uIElBTSB5IGxhIHByZXNlbnRhY2nDs24gYWwgc2VydmljaW8gZGUgdXJnZW5jaWFzIGNvbiBvIHNpbiBjaG9xdWUgY2FyZGlvZ8OpbmljbyBzaWVtcHJlIGVzdHV2aWVyb24gc2VwYXJhZGFzIGR1cmFudGUgZWwgc2VndWltaWVudG8sIGNvbiBkaWZlcmVuY2lhcyBlbiBsYSBzdXBlcnZpdmllbmNpYSBhIGZhdm9yIGRlIG5vIHByZXNlbnRhciBjaG9xdWUgY2FyZGlvZ8OpbmljbyBlbiBlbCBtb21lbnRvIGRlIGxhIGFkbWlzacOzbiB5IGNvbiB1bmEgY2xhcmEgaW5mbHVlbmNpYSBkZSBkaWNoYSB2YXJpYWJsZSBlbiBsYSBtb3J0YWxpZGFkIGRlIGxvcyBwYWNpZW50ZXMgY29uIElBTS4KCkxhIG1lZGlhbmEgZGUgc3VwZXJ2aXZlbmNpYSBkZSBsb3MgcGFjaWVudGVzIGNvbiBJQU0geSBsYSBwcmVzZW50YWNpw7NuIGNob3F1ZSBjYXJkaW9nw6luaWNvIGVuIGVsIG1vbWVudG8gZGUgbGEgYWRtaXNpw7NuIGZ1ZSBkZSAxOS41IGTDrWFzIChJQyA0OzQ0NiksIG1pZW50cmFzIHF1ZSBwYXJhIGFxdWVsbG9zIHNpbiBkaWNobyBjdWFkcm8gYWwgaW5ncmVzbyBmdWUgZGUgMTkyNiBkw61hcyAoSUMgMTUzNjtOQSkuCgpEZXNkZSBlbCBlbmZvcXVlIGRlIGxhIHNpZ25pZmljYW5jaWEgZXN0YWRpc3RpY2EgeSBsYSBhcGxpY2FjacOzbiBkZWwgdGVzdCBkZSBsb2ctcmFuayBzZSBvYnR1dm8gcD0gMWUtMDYsIHBvciBsbyBxdWUgc2UgcmVjaGF6YSBsYSBoaXBvdGVzaXMgZGUgaWd1YWxkYWQgZW4gYW1iYXMgY3VydmFzIGRlIHN1cGVydml2ZW5jaWEgZW50cmUgbG9zIGdydXBvcyB5IGFwb3lhIGxhIGlkZWEgYW50ZXMgbWVuY2lvbmFkYS4KCgojIyBDb21wYXJhY2nDs24gZGUgbW9kZWxvcwoKTG9zIHNpZ3VpZW50ZXMgc29uIGxvcyByZXN1bHRhZG9zIGRlIDQgbW9kZWxvcyBwcm9wdWVzdG9zIHBhcmEgcHJlZGVjaXIgbGEgc3VwZXJ2aXZlbmNpYSBlbiBwYWNpZW50ZXMgY29uIGluZmFydG8gYWd1ZG8gZGUgbWlvY2FyZGlvLgoKYGBge3J9CiMgTW9kZWxvIDEKZml0Y294cGgxPC1jb3hwaChTdXJ2KG15ZGF0YSRsZW5mb2wsIG15ZGF0YSRmc3RhdCkgfiBhZ2UrZ2VuZGVyK2hyK3N5c2JwK2JtaSwgZGF0YSA9IG15ZGF0YSkKIyBNb2RlbG8gMgpmaXRjb3hwaDI8LWNveHBoKFN1cnYobXlkYXRhJGxlbmZvbCwgbXlkYXRhJGZzdGF0KSB+IGFnZStnZW5kZXIraHIrZGlhc2JwK2JtaSwgZGF0YSA9IG15ZGF0YSkKIyBNb2RlbG8gMwpmaXRjb3hwaDM8LWNveHBoKFN1cnYobXlkYXRhJGxlbmZvbCwgbXlkYXRhJGZzdGF0KSB+IGFnZStnZW5kZXIrY3ZkK2FmYitibWksIGRhdGEgPSBteWRhdGEpCiMgTW9kZWxvIDQKZml0Y294cGg0PC1jb3hwaChTdXJ2KG15ZGF0YSRsZW5mb2wsIG15ZGF0YSRmc3RhdCkgfiBhZ2UrZ2VuZGVyK3NobywgZGF0YSA9IG15ZGF0YSkKdGFiX21vZGVsKGZpdGNveHBoMSwgZml0Y294cGgyLCBmaXRjb3hwaDMsIGZpdGNveHBoNCwKICAgICAgICAgIHNob3cuYWljID0gVFJVRSxkdi5sYWJlbHMgPSBjKCJNb2RlbG8gMSIsIk1vZGVsbyAyIiwgIk1vZGVsbzMiLCAgICJNb2RlbG80IikpCmBgYAoKIyMjIDQuIENvbiBiYXNlIGVuIGxvcyByZXN1bHRhZG9zIGFudGVyaW9yZXMsIHNlbGVjY2lvbmUgZWwgbWVqb3IgbW9kZWxvIGJhc2FkbyBlbiBlbCBjcml0ZXJpbyBkZSBpbmZvcm1hY2nDs24gZGUgYWthaWtlIEFJQy4gU2Vnw7puIGVzdGUgbW9kZWxvIGludGVycHJldGUgZWwgaGF6YXJkIHJhdGlvIHBhcmEgbGEgZWRhZCB5IGVsICBnw6luZXJvLgoKQmFzYWRvIGVuIGVsIGNyaXRlcmlvIGRlIGluZm9ybWFjacOzbiBkZSBha2Fpa2UgQUlDLCBwYXJhIHNlbGVjY2lvbmFyIGVsIG1lam9yIG1vZGVsbyBub3MgYmFzYWRvcyBlbiBlbCBtZW5vciB2YWxvciBkZWwgQUlDLgpEZSBsb3MgNCBtb2RlbG9zIHByZXNlbnRhZG9zLCBlbCBxdWUgdGVuaWEgbWVub3IgQUlDIGZ1ZSBlbCBtb2RlbG8gMiwgY29uIHVuIHZhbG9yIGRlIDIyODQuOTMuCgpFbiBlc3RlIG1vZGVsbyBzZSBpbmNsdXllcm9uIGxhcyB2YXJpYWJsZXMgZWRhZCB5IGdlbmVybyBxdWUgZnVlcm9uIGNvbXVuZXMgYSBsb3MgNCBtb2RlbG9zIHkgYWRlbcOhcyBzZSBpbmNsdXnDsyBsYXMgdmFyaWFibGVzIGhyLCBkaWFzYnAgeSBibWkuCgpIUiBwYXJhIGxhIGVkYWQ6CiRIUl97ZWRhZH0gPSBlXnsxLjA2fSA9IDIuODg2MzckCkNvbW8gJFxiZXRhX3tlZGFkfT4wJCwgbGEgZWRhZCB0aWVuZGUgYSBhdW1lbnRhciBlbCByaWVzZ28gZGVsIGV2ZW50by4gCgpJbnRlcnByZXRhY2nDs246IEhSPTIuODgKUG9yIGNhZGEgYcOxbyBhZGljaW9uYWwgZW4gbGEgZWRhZCBkZSBsb3MgIHBhY2llbnRlcyBjb24gSUFNLCBlbCByaWVzZ28gaW5zdGFudGFuZW8gZGUgbXVlcnRlIGF1bWVudGEgZW4gMS44OCB2ZWNlcyBtw6FzIGVsIHJpZXNnbyBpbnN0YW50YW5lbyBkZSBtb3JpciBkZSBsb3MgcGFjaWVudGVzIHF1ZSBubyBhdW1lbnRhbiBkZSBlZGFkLgpTaW4gZW1iYXJnbyBjb24gbGEgYXBsaWNhY2nDs24gZGUgZGljaG8gZGF0byBhIGxhIHJlYWxpZGFkIGNsw61uaWNhIGVsIHJpZXNnbyBkZSBtdWVydGUgZXMgbXV5IGFsdG8gcG9yIGNhZGEgYcOxbyBxdWUgYXVtZW50YSBsYSBlZGFkLgoKSFIgcGFyYSBlbCBnw6luZXJvOgokSFJfe2dlbmVyb30gPSBlXnswLjg0fSA9IDIuMzE2MzckCkNvbW8gJFxiZXRhX3tlZGFkfT4wJCwgZWwgZ8OpbmVybyBtYWN1bGlubyB0aWVuZGUgYSBhdW1lbnRhciBlbCByaWVzZ28gZGVsIGV2ZW50by4gCgpFbCByaWVzZ28gaW5zdGFudGFuZW8gZGUgbW9yaXIgcG9yIElBTSBkZSBsb3MgaG9tYnJlcyBlcyAxLjMxIHZlY2VzIG3DoXMgZWwgcmllc2dvIGluc3RhbnRhbmVvIGRlIG1vcmlyIHBvciBJQU0gZGUgbGFzIG11amVyZXMuCgoKIyMjIDUuIERlIGFjdWVyZG8gYWwgbW9kZWxvIHNlbGVjY2lvbmFkbywgaW50ZXJwcmV0ZSBlbCB2YWxvciBkZWwgaGF6YXJkIHJhdGlvIHBhcmEgYWwgbWVub3MgMyB2YXJpYWJsZXMgZGUgZGljaG8gbW9kZWxvCgpocjogJEhSX3tocn0gPSBlXnsxLjAxfSA9IDIuNzQ1NiQKUG9yIGNhZGEgYXVtZW50byBlbiB1biBsYXRpZG8gcG9yIG1pbnV0byBkZSBsb3MgIHBhY2llbnRlcyBjb24gSUFNLCBlbCByaWVzZ28gaW5zdGFudGFuZW8gZGUgbXVlcnRlIGF1bWVudGEgZW4gMS43NCB2ZWNlcyBtw6FzIGVsIHJpZXNnbyBpbnN0YW50YW5lbyBkZSBsb3MgcGFjaWVudGVzIGRlIG1vcmlyIHF1ZSBubyBhdW1lbnRhbiBsYSBmcmVjdWVuY2lhIGNhcmRpYWNhLgoKZGlhc2JwOiAkSFJfe2RpYXNicH0gPSBlXnswLjk5fSA9IDIuNjkxMjMkClBvciBjYWRhIGF1bWVudG8gYWRpY2lvbmFsIGRlIHVuIG1tSGcgZW4gbGEgcHJlc2nDs24gZGlhc3TDs2xpY2EgZGUgbG9zICBwYWNpZW50ZXMgY29uIElBTSwgZWwgcmllc2dvIGluc3RhbnRhbmVvIGRlIG11ZXJ0ZSBhdW1lbnRhIGVuIDEuNjkgdmVjZXMgbcOhcyBlbCByaWVzZ28gaW5zdGFudGFuZW8gZGUgbW9yaXIgZGUgbG9zIHBhY2llbnRlcyBxdWUgbm8gYXVtZW50YW4gbGEgcHJlc2nDs24gZGlhc3TDs2xpY2EuCgpibWk6ICRIUl97Ym1pfSA9IGVeezAuOTZ9ID0gMi42MTE3JApQb3IgY2FkYSBhdW1lbnRvIGFkaWNpb25hbCBkZSB1biBrZy9tXjIgZW4gZWwgYm1pIGRlIGxvcyAgcGFjaWVudGVzIGNvbiBJQU0sIGVsIHJpZXNnbyBpbnN0YW50YW5lbyBkZSBtdWVydGUgYXVtZW50YSBlbiAxLjYxIHZlY2VzIG3DoXMgZWwgcmllc2dvIGluc3RhbnRhbmVvIGRlIG1vcmlyIGRlIGxvcyBwYWNpZW50ZXMgcXVlIG5vIGF1bWVudGFuIGVsIGJtaS4KCgojIyMgNi4gQW7DoWxpc2lzIGRlbCBzdXB1ZXN0byBkZSByaWVzZ29zIHByb3BvcmNpb25hbGVzCgpQYXJhIGxvcyBzaWd1aWVudGVzIHJlc3VsdGFkb3MgZW4gdW5hIHN1Yi1tdWVzdHJhIGRlIHBhY2llbnRlcyBtYXlvcmVzIGRlIDcwIGHDsW9zIChuPTI3NiksIGV2YWx1ZSBwYXJhIGVsIG1vZGVsbyBwbGFudGVhZG8geSBzdXMgcHJlZGljdG9yZXMsIGVsIGN1bXBsaW1pZW50byBkZWwgc3VwdWVzdG8gZGUgcmllc2dvcyBwcm9wb3JjaW9uYWxlcy4gVGVuZ2EgZW4gY3VlbnRhIGVsIG3DqXRvZG8gZ3LDoWZpY28geSBsb3MgaGFsbGF6Z29zIGRlbCB0ZXN0IGRlIGhpcMOzdGVzaXMgcGFyYSBsYSB2YWxvcmFjacOzbiBkZWwgc3VwdWVzdG8gZGVzZGUgZWwgZW5mb3F1ZSBkZSBsYSBzaWduaWZpY2FjacOzbiBlc3RhZMOtc3RpY2EgKiooYXN1bWllbmRvIGFsZmEgZGUgMC4wNSwgcXVlIGxpbWl0YWNpb25lcyBwb2Ryw61hIHRlbmVyIGVzdGUgZW5mb3F1ZSBwYXJhIGxhIHZhbG9yYWNpw7NuIGRlbCBzdXB1ZXN0bykqKgoKCgpgYGB7cn0KIyBGaWx0cm8gTWF5b3JlcyBkZSA3MCBhw7FvcywgY29uIGZpbmVzIGFjYWTDqW1pY29zLgogbXlkYXRhIDwtIHN1YnNldChteWRhdGEsIGFnZSA+PSA3MCkKbGlicmFyeShzdXJ2bWluZXIpCmZpdGNveHBoPC1jb3hwaChTdXJ2KG15ZGF0YSRsZW5mb2wsIG15ZGF0YSRmc3RhdCkgfiBhZ2UrZ2VuZGVyK2hyK2JtaStjdmQrYWZiK3NobytzeXNicCwgZGF0YSA9IG15ZGF0YSkKIyBGdW5jaW9uIHBhcmEgZXZhbHVhciBlbCBzdXB1ZXN0byAocGFxdWV0ZSBzdXJ2aXZhbCkKdGVzdC5waCA8LSBjb3guenBoKGZpdGNveHBoLCBnbG9iYWw9VFJVRSkKIyBSZXN1bHRhZG9zIGRlbCB0ZXN0CnRlc3QucGgKYGBgCgoKYGBge3J9CiMgQ3JlYXIgZmlndXJhIGNvbiBlbCBwYXF1ZXRlIHN1cm1pbmVyIHkgbGEgZnVuY2nDs24gZ2djb3h6cGggcG9yIHByZWRpY3RvciBhZ2UrZ2VuZGVyK2hyK3N5c2JwK2JtaQoKIGdnY294enBoKHRlc3QucGgsIHZhciA9IGMoImFnZSIpKQpgYGAKCmBgYHtyfQogZ2djb3h6cGgodGVzdC5waCwgdmFyID0gYygiZ2VuZGVyIikpCmBgYAoKYGBge3J9CiBnZ2NveHpwaCh0ZXN0LnBoLCB2YXIgPSBjKCJociIpKQpgYGAKCmBgYHtyfQpnZ2NveHpwaCh0ZXN0LnBoLCB2YXIgPSBjKCJibWkiKSkKYGBgCgpgYGB7cn0KIGdnY294enBoKHRlc3QucGgsIHZhciA9IGMoImN2ZCIpKQpgYGAKCgpgYGB7cn0KZ2djb3h6cGgodGVzdC5waCwgdmFyID0gYygiYWZiIikpCmBgYAoKYGBge3J9CiBnZ2NveHpwaCh0ZXN0LnBoLCB2YXIgPSBjKCJzaG8iKSkKYGBgCgpgYGB7cn0KZ2djb3h6cGgodGVzdC5waCwgdmFyID0gYygic3lzYnAiKSkKYGBgCgoqKkFuw6FsaXNpcyBkZSBzdXB1ZXN0b3MgZGUgcmllc2dvcyBwcm9wb3JjaW9uYWxlcyoqCgpQYXJhIGVsIGFuw6FsaXNpcyBkZSBzdXB1ZXN0b3MgZGUgcmllc2dvcyBwcm9wb3JjaW9uYWxlcyB0ZW5pZW5kbyBlbiBjdWVudGEgZWwgbcOpdG9kbyBncsOhZmljbyB5IGxvcyBoYWxsYXpnb3MgZGVsIHRlc3QgZGUgaGlww7N0ZXNpcyBkZXNkZSBlbCBlbmZvcXVlIGRlIGxhIHNpZ25pZmljYWNpw7NuIGVzdGFkw61zdGljYSBwb2RlbW9zIG9ic2VydmFyIHF1ZSBwYXJhIGxhcyB2YXJpYWJsZXMgc2hvIHkgc3lzYnAgc2Ugb2J0dXZvIHVuIHZhbG9yLXA8MC4wNSwgbG8gcXVlIGluZGljYSBxdWUgZW4gZXN0YXMgcmVjaGF6YW1vcyBsYSBoaXDDs3Rlc2lzIGRlIHF1ZSBsYSB0ZW5kZW5jaWEgZW4gZWwgdGllbXBvIHNlYSBudWxhLCB5IHBvciB0YW50byBzaSBwcmVzZW50YW4gY2FtYmlvcyBlbiBsYSB0ZW5kZW5jaWEgZW4gZWwgdGllbXBvLiBBZGVtw6FzIGFsIGV2YWx1YXIgbGFzIGdyYWZpY2FzIHNlIGNvcnJvYm9yYSBlbiBsYXMgZ3JhZmljYXMgZGUgbGFzIGRvcyB2YXJpYWJsZXMgZGVzY3JpdGFzIHNlIG9ic2VydmEgdW5hIHRlbmRlbmNpYSBlbiBlbCB0aWVtcG8uCkxhcyBkZW3DoXMgdmFyaWFibGVzIHNpIGN1bXBsZW4gZWwgc3VwdWVzdG8gZGUgcmllc2dvcyBwcm9wb3JjaW9uYWxlcyBkZSBsYSByZWdyZXNpw7NuIGRlIENveC4KCiMjIyBBbsOhbGlzaXMgZGUgdW4gZXN0dWRpbyBjb24gbW9kZWxvIGRlIHJpZXNnb3MgcHJvcG9yY2lvbmFsZXMKCiMjIyA3LiBTZWxlY2Npb25lIGVuIHN1IMOhcmVhIGRlIGludGVyw6lzIHVuIGVzdHVkaW8gZW4gZWwgY3VhbCBzZSBhcGxpcXVlIGVsIG1vZGVsbyBkZSByaWVzZ29zIHByb3BvcmNpb25hbGVzIGRlIENveC4gRXZhbMO6ZSBzZWfDum4gZWwgYXJ0w61jdWxvIGVsIHByb3DDs3NpdG8gZGVsIG1vZGVsbyAoZmluZXMgZXhwbGljYXRpdm9zIHZzIGZpbmVzIHByZWRpY3Rpdm9zKS4gQW5hbGljZSBzZWfDum4gbG8gcmVwb3J0YWRvIHBvciBsb3MgYXV0b3JlcyBsYSB2YWxvcmFjacOzbiBkZSBsb3Mgc3VwdWVzdG9zIGRlbCBtb2RlbG8gKHJpZXNnb3MgcHJvcG9yY2lvbmFsZXMsIGxpbmVhbGlkYWQgZW4gbG9zIHByZWRpY3RvcmVzIGNvbnTDrW51b3MpLiBQcmVzZW50ZSB1biBicmV2ZSByZXN1bWVuIGRlbCBlc3R1ZGlvLCBvYmpldGl2b3MsIHkgZGVzY3JpcGNpw7NuIGRlbCBkaXNlw7FvIGRlbCBlc3R1ZGlvIHkgcmVzdWx0YWRvcyBwcmluY2lwYWxlcyBzZWfDum4gZWwgbW9kZWxvLiBBZGp1bnRlIGVsIGFydMOtY3VsbyBzZWxlY2Npb25hZG8uCgpDb21wYXJpbmcgQ2xpbmljYWwgYW5kIEVjb25vbWljIE91dGNvbWVzIEFzc29jaWF0ZWQgd2l0aCBFYXJseSBJbml0aWF0aW9uIG9mIENvbWJpbmF0aW9uIFRoZXJhcHkgb2YgYW4gQWxwaGEgQmxvY2tlciBhbmQgRHV0YXN0ZXJpZGUgb3IgRmluYXN0ZXJpZGUgaW4gTWVuIHdpdGggQmVuaWduIFByb3N0YXRpYyBIeXBlcnBsYXNpYSBpbiB0aGUgVW5pdGVkIFN0YXRlcy4KCk1hcmFsIERlclNhcmtpc3NpYW4sIFBoRDsgWW9uZ2xpbmcgWGlhbywgUGhEOyBNZWkgU2hlbmcgRHVoLCBNUEgsIFNjRDsKUGF0cmljayBMZWZlYnZyZSwgTUE7IEFuZHJpbmUgUi4gU3dlbnNlbiwgTVMsIFBoRDsgYW5kIENocmlzdG9waGVyIEYuIEJlbGwsIE1TCgpKIE1hbmFnIENhcmUgU3BlYyBQaGFybS4gMjAxNjsyMigxMCk6MTIwNC0xNAoKRXN0ZSBhcnRpY3VsbyB0aWVuZSBjb21vIHByb3DDs3NpdG8gY29tcGFyYXIgZG9zIG1lZGljYW1lbnRvcyBwYXJhIGVsIHRyYXRhbWllbnRvIGRlIHBhY2llbnRlcyBjb24gSFBCLCBlc3RlIG1vZGVsbyBzZSByZWFsaXphIGNvbiBmaW5lcyBwcmVkaWN0aXZvcy4KCk9iamV0aXZvOiBDb21wYXJhciBsb3MgcmVzdWx0YWRvcyBjbMOtbmljb3MsIGVjb27Ds21pY29zIHkgZGUgdXRpbGl6YWNpw7NuIGRlIHJlY3Vyc29zIGVuIHBhY2llbnRlcyBjb24gaGlwZXJwbGFzaWEgcHJvc3TDoXRpY2EgYmVuaWduYSAoSFBCKSB0cmF0YWRvcyB0ZW1wcmFuYW1lbnRlIGNvbiBjb21iaW5hY2nDs24gZGUgYWxmYSBibG9xdWVhZG9yZXMgKEFCKSBlIGluaGliaWRvcmVzIGRlIDUgYWxmYSByZWR1Y3Rhc2EgKEk1QVIpIChEdXRhc3RlcmlkZSB2cyBGaW5hc3RlcmlkZSkuIAoKTcOpdG9kb3M6IEFuw6FsaXNpcyByZXRyb3NwZWN0aXZvIGRlIGRhdG9zIHJlY29naWRvcyBlbnRyZSAyMDAzIHkgMjAxMyBlbiBob21icmVzIG1heW9yZXMgZGUgNTAgYcOxb3MgY29uIEhQQiwgcGFyYSBjb21wYXJhciBsb3MgcmVzdWx0YWRvcyBlbnRyZSBwYWNpZW50ZXMgcXVlIHJlY2liaWVyb24gdGVtcHJhbmFtZW50ZSBkdXRhc3RlcmlkZStBQiBvIGZpbmFzdGVyaWRlK0FCLgpMb3MgZGVzZW5sYWNlcyBkZSBpbnRlcsOpcyBpbmNsdXnDsyByZXRlbmNpw7NuIGFndWRhIGRlIG9yaW5hIChSQU8pLCBjaXJ1Z8OtYSBwcm9zdMOhdGljYSwgcHJvZ3Jlc8OtYSBjbMOtbmljYSwgY29zdG9zIG1lZGljbyB5IHV0aWxpemFjacOzbiBkZSByZWN1cnNvIGRlIHNhbHVkIHB1YmxpY2EuClNlIHVzYXJvbiBtb2RlbG9zIHByb3BvcmNpb25hbGVzIGRlIENveCwgcmVncmVzacOzbiBsaW5lYWwgeSBQb2lzc29uIHBhcmEgZXZhbHVhciBsYSBhc29jaWFjacOzbiBlbnRyZSBsb3MgcmVzdWx0YWRvcyB5IGxhIHRlcmFwaWEgY29tYmluYWRhIGFwcm9waWFkYS4KClJlc3VsdGFkb3M6IDI3NzggcGFjaWVudGVzIHNlIGluY2x1eWVyb24gZW4gZW4gZ3J1cG8gZGUgZmluYXN0ZXJpZGUrQUIgeSA0MTI1IGVuIGVuIGdydXBvIGRlIGR1dGFzdGVyaWRlK0FCLiAKTHVlZ28gZGUgYWp1c3Rhciwgbm8gc2UgZW5jb250cmFyb24gZGlmZXJlbmNpYXMgZXN0YWTDrXN0aWNhbWVudGUgc2lnbmlmaWNhdGl2YXMgZW50cmUgbG9zIGdydXBvcyBwYXJhIFJBTyAoW0hSXSA9IDAuODQ1LCA5NSUgSUMgPSAwLjY2MC0xLjA3MCwgUCA9IDAuMTY0MyksIGNpcnVnw61hIHByb3N0w6F0aWNhIChIUiA9IDAuODA2LCA5NSUgSUMgPSAwLjU2OC0xLjE3MSwgUCA9IDAuMjUyNSksIHkgcHJvZ3Jlc2nDs24gY2zDrW5pY2EgKEhSID0gMC44MzQsIDk1JSBJQyA9IDAuNjYzLTEuMDQzLCBQID0gMC4xMTIyKS4KCkNvbmNsdXNpb25lczogU2VndW4gZWwgbW9kZWxvLCBsb3MgcmVzdXRhZG9zIG5vIG11ZXN0cmFuIGRpZmVyZW5jaWFzIGVudHJlIHRyYXRhbWllbnRvIGNvbiBkdXRhc3RlcmlkZSArIEFCIHkgZmluYXN0ZXJpZGUgKyBBQiBlbiBwYWNpZW50ZXMgY29uIEhQQi4KCgo=