Introdução

As eleições presidenciais de 2026 ocorrem em um cenário de elevada atenção às perspectivas econômicas do país. Entre os candidatos mais bem colocados nas pesquisas de intenção de voto estão Luiz Inácio Lula da Silva, Flávio Bolsonaro e Augusto Cury, cujas propostas econômicas apresentam diferentes diretrizes para a condução da economia brasileira. Nesse contexto, este relatório busca responder à seguinte questão: como as principais propostas econômicas dos candidatos à Presidência da República em 2026 podem gerar riscos e pressões sobre o cenário macroeconômico esperado para 2027?

Incerteza econômica e períodos eleitorais

O IIE-Br é um indicador que busca mensurar a incerteza na economia brasileira a partir de informações coletadas dos principais jornais do país e das expectativas do mercado financeiro.

O índice é composto por dois componentes: o IIE-Br Mídia, que possui peso de 80% no indicador e acompanha a incidência de termos relacionados à incerteza nos principais jornais brasileiros, e o IIE-Br Expectativas, responsável pelos 20% restantes e baseado na dispersão das projeções de mercado para inflação, taxa de juros e câmbio.

No Gráfico 1, é apresentada a trajetória desse índice, com destaque para períodos eleitorais, buscando identificar possíveis relações entre períodos eleitorais e o comportamento da incerteza econômica no país.

Gráfico 1:

Evidências empíricas indicam que períodos de maior incerteza econômica tendem a afetar negativamente decisões de empresas e famílias, reduzindo os incentivos ao investimento e à produção, além de elevar a cautela dos consumidores e, consequentemente, reduzir o consumo.

Em 2014, o período eleitoral coincidiu com o início da crise econômica que se aprofundaria nos anos seguintes. Em 2018, o período eleitoral ocorreu em um ambiente de incerteza já elevado, devido a dúvidas sobre os ajustes fiscais que seriam realizados pelo próximo governo e a um cenário externo mais instável. Já em 2022, a FGV relacionou o nível elevado de incerteza à proximidade das eleições, à piora do cenário fiscal, à inflação persistente no Brasil e no mundo e às incertezas em relação ao crescimento mundial.

Em agosto de 2026, o IIE-Br atingiu 111,7 pontos, e a FGV associou parte do movimento ao debate sobre as contas públicas e às políticas econômicas apresentadas pelos candidatos, apesar de fatores externos à política também produzirem um efeito sobre o indicador.

Nesse contexto, as propostas analisadas podem afetar a incerteza por meio da previsibilidade da sua execução. Os três candidatos apresentam objetivos relacionados à sustentabilidade fiscal, entretanto, com estratégias, financiamento e implementação das medidas diferentes. Dessa forma, propostas entendidas como fiscalmente viáveis e previsíveis tendem a reduzir incertezas, enquanto dúvidas sobre financiamento, compensação e execução podem aumentá-las.

Cenário fiscal e trajetória da dívida pública

A Dívida Bruta do Governo Geral (DBGG) é um dos principais indicadores utilizados para acompanhar a situação fiscal do país, pois permite observar a evolução do endividamento público em relação ao tamanho do PIB. A dívida é influenciada por fatores como o resultado primário do governo, os juros que incidem sobre a dívida e o crescimento econômico.

Gráfico 2:

Após apresentar redução entre 2021 e 2022, a DBGG voltou a crescer nos anos seguintes. No cenário de referência do Tesouro Nacional, a dívida passa de 78,6% do PIB em 2025 para 83,5% em 2026 e 85,9% em 2027, seguindo uma trajetória crescente até atingir 87,9% em 2029, quando passa a apresentar redução.

Para 2027, as projeções do Tesouro indicam os juros nominais como a principal contribuição para o aumento da DBGG, somando 8,4p.p. à variação da dívida, enquanto o crescimento do PIB e o deflador do PIB contribuem com -2,1 e -4,0 p.p. atuando no sentido contrário, com o papel de reduzir a relação dívida/PIB, embora não seja suficiente para impedir o crescimento dessa relação no cenário projetado.

A partir da referência, as propostas fiscais dos candidatos podem alterar alguns dos fatores considerados na projeção. Flávio Bolsonaro propõe substituir a atual regra fiscal e alcançar superávits primários, utilizando medidas como contenção de despesas e limitação do crédito subsidiado pelo Tesouro. Caso essas medidas produzam um resultado primário superior ao esperado pelo Tesouro, a necessidade de financiamento do déficit seria menor, acarretando uma pressão para a redução da DBGG projetada. Entretanto, o programa também prevê redução da tributação sobre produção e consumo e não aborda como a possível redução na arrecadação seria compensada, fazendo com que o efeito final dependa da execução do ajuste fiscal.

Augusto Cury também vem com o objetivo de melhorar o resultado fiscal, buscando aproximar o déficit público de zero e reduzir gradualmente a dívida. Como mecanismo, ele propõe controle rigoroso dos gastos, eliminação de despesas consideradas improdutivas, metas de eficiência nos ministérios e modernização administrativa. Essas medidas poderiam melhorar o resultado primário e reduzir a pressão sobre a trajetória projetada da DBGG. Porém, como o impacto fiscal esperado com essas medidas não é quantificado, não é possível determinar se seria suficiente para alterar significativamente o cenário esperado pelo Tesouro.

Já Lula propõe a manutenção do atual arcabouço fiscal, limitando o crescimento das despesas à medida que as receitas forem evoluindo e mantendo metas para o resultado primário, além de prever revisão de gastos e fortalecimento das receitas. Como o cenário de referência do Tesouro já considera essa manutenção, essa proposta está bem alinhada em relação ao que foi projetado. Porém, o crescimento projetado das despesas obrigatórias pressiona o espaço disponível para ajuste das despesas discricionárias, exigindo atenção voltada para quais gastos serão revisados. Assim, o cumprimento das metas e limites previstos contribuiria para manter a trajetória da dívida próxima ao cenário projetado, enquanto resultados fiscais inferiores aos esperados pelo Tesouro poderiam ampliar a pressão sobre a dívida.

Efeitos sobre expectativas de inflação

Gráfico 3:

Tendo em vista que o IPCA é o principal indicador da inflação brasileira e é utilizado no sistema de metas para a inflação, como apresentado no gráfico acima, as expectativas de mercado indicam uma desaceleração da inflação ao longo de 2027, chegando em dezembro a 4,27%. Ainda que tenha reduzido, continua acima da meta estabelecida pelo Conselho Monetário Nacional (CMN) de 3%, mas está dentro do intervalo de tolerância de 1,5 ponto percentual para cima ou para baixo. Para que esse cenário se concretize, depende do comportamento da demanda agregada, das expectativas e da condução da política fiscal. Desse modo, as propostas econômicas dos candidatos podem interferir nos resultados esperados, uma vez que muitas estão relacionadas à condução das contas públicas.

Nas propostas de Flávio Bolsonaro, a reformulação da regra fiscal busca substituir o arcabouço fiscal vigente, buscar superávits primários e limitar a concessão de crédito subsidiado com recursos do Tesouro, medidas que se relacionam com o cenário inflacionário. A limitação do crédito subsidiado pode reduzir o estímulo ao consumo e ao investimento e, consequentemente, diminuir a demanda agregada. Ademais, a proposta também envolve redução de tributos, cuja compensação fiscal não foi bem especificada; desse modo, o efeito sobre o cenário esperado dependerá da habilidade de combinar essas medidas com os superávits pretendidos. A proposta de R$ 900 bilhões de investimento em infraestrutura influencia a demanda agregada: no curto prazo, pode exercer pressão sobre a inflação, mas, no médio e longo prazo, pode ampliar a capacidade produtiva, tornando a pressão inflacionária não permanente. Assim, as propostas analisadas podem exercer pressão baixista sobre a inflação, condicionada à execução.

Por outro lado, a proposta de Lula de manutenção do atual arcabouço fiscal estabelece relação com a inflação principalmente por meio da previsibilidade fiscal e do controle do crescimento das despesas. O cumprimento dessas metas pode contribuir para reduzir incertezas sobre a trajetória da dívida, favorecendo as expectativas dos agentes. Por se tratar de uma manutenção, isso não indica, por si só, uma nova expansão ou contração fiscal. Desse modo, os 4,27% esperados dependem da execução e de ela ser mais ou menos expansionista que a atualmente considerada. Além disso, o Novo PAC, por se tratar de investimentos, pode elevar a demanda agregada. Caso a execução seja concentrada em 2027, os investimentos podem exercer pressão sobre a inflação no curto prazo, os investimentos podem aumentar a capacidade produtiva, revertendo parte da pressão inflacionária no médio e longo prazo.

No caso de Augusto Cury, uma política fiscal mais restritiva pode reduzir a demanda agregada, e  contribuir para menores pressões inflacionárias. Porém, é difícil quantificar o efeito sobre o IPCA de 2027, pois o programa não especifica a redução de despesas necessária para atingir o objetivo. Além da proposta fiscal, Cury propõe a criação do Banco Empreendedor, com um fundo de R$ 30 bilhões a R$ 50 bilhões, visando expandir o crédito para pequenos empreendedores. Consequentemente, o aumento do investimento e da demanda agregada poderia exercer pressão sobre os preços. Contudo, como o programa possui horizonte de dez anos, o efeito dependerá do ritmo da concessão do crédito e de quanto do financiamento se transforma em investimento e consumo em 2027.

Impactos fiscais sobre a trajetória da Selic

A taxa Selic é uma variável de política monetária, é a taxa básica de juros da economia brasileira e constitui o principal instrumento utilizado pelo Banco Central para controlar a inflação. Portanto, as propostas dos candidatos não determinam diretamente a Selic: elas podem alterar inflação, demanda e expectativas e, assim, mudar o espaço para manobras do Banco Central. Assim, a trajetória de redução da Selic esperada para 2027 depende da continuidade do processo de queda da inflação.

Gráfico 4:

No caso de Flávio Bolsonaro, os efeitos sobre a Selic dependeriam principalmente do resultado fiscal efetivamente obtido e seus impactos sobre a inflação e expectativas. A proposta prevê redução da tributação, mas não especifica compensação fiscal; sendo assim, o efeito sobre a Selic dependeria da execução das medidas. Em contraste, uma expansão da demanda ou um déficit fiscal superior a projetada poderia limitar esse espaço. Assim, caso as medidas contribuam para reduzir as pressões inflacionárias, poderá haver maior espaço para redução do juros. Uma menor pressão inflacionária pode contribuir para juros mais baixos.

Segundo a proposta de Lula, a trajetória da Selic dependeria também da sua execução e dos resultados efetivos obtidos. Se o resultado for melhor que o esperado, poderá contribuir para uma trajetória mais favorável da inflação e ampliar o espaço para redução dos juros. Em sentido contrário, resultados fiscais inferiores aos esperados poderia limitar o espaço de ação.

Já para Cury, os efeitos sobre a Selic dependeriam da magnitude do ajuste fiscal e de seus impactos sobre a inflação. Em um cenário de cumprimento das medidas reducionistas, poderá reduzir pressões inflacionárias e, consequentemente, favorecer uma redução da Selic. Porém, como não foi suficientemente quantificada a redução das despesas necessária para atingir o objetivo, não é possível medir o efeito sobre a Selic em 2027.

Por outro lado, a expansão de crédito prevista pelo Banco Empreendedor pode estimular investimentos e demanda agregada. Caso esse estímulo gere pressões adicionais sobre a inflação, o Banco Central pode encontrar menor espaço para reduzir a Selic na trajetória atualmente esperada para 2027.

Conclusão

As propostas analisadas gravitam em torno de políticas fiscais, com medidas voltadas à redução do déficit e da dívida, à manutenção ou reforma do arcabouço fiscal atual e à continuidade ou criação de políticas de investimento. Sendo assim, essas medidas podem gerar diferentes impactos sobre o rumo da dívida pública, da inflação e da Selic em 2027. Porém, os efeitos das propostas não dependem apenas dos objetivos apresentados, mas principalmente de como as medidas serão implementadas e financiadas e da capacidade de cada candidato de alcançar os resultados fiscais previstos.

Diante disso, medidas de contenção de gastos podem colaborar para reduzir pressões inflacionárias e ampliar o espaço para a redução dos juros. Os investimentos públicos e a expansão do crédito podem elevar a demanda no curto prazo, ainda que também possam ampliar a capacidade produtiva no médio e longo prazo.

Sendo assim, o principal elemento de incerteza para 2027 está na possibilidade de os resultados efetivamente observados divergirem do planejamento utilizado como base para as projeções atuais. A relação entre políticas fiscais, inflação e política monetária faz com que variações no resultado fiscal ou nas expectativas possam incidir sobre a trajetória da dívida e sobre a possibilidade de redução da Selic. Portanto, a avaliação das propostas deve ser feita não apenas com base no que foi declarado, mas também na forma pela qual serão implementadas.

Referências

BANCO CENTRAL DO BRASIL. Expectativas de mercado – Relatório Focus de 4 de setembro de 2026. Brasília: Banco Central do Brasil, 2026. Disponível em: https://www.bcb.gov.br/publicacoes/focus/04092026. Acesso em: 10 set. 2026.

BANCO CENTRAL DO BRASIL. Metas para a inflação. Brasília: Banco Central do Brasil. Disponível em: https://www.bcb.gov.br/controleinflacao/metainflacao. Acesso em: 14 set. 2026.

BANCO CENTRAL DO BRASIL. Preços. Brasília: Banco Central do Brasil. Disponível em: https://www.bcb.gov.br/estatisticas/detalhamentoGrafico/graficosestatisticas/precos. Acesso em: 14 set. 2026.

BANCO CENTRAL DO BRASIL. Sistema Gerenciador de Séries Temporais (SGS). Brasília: Banco Central do Brasil. Disponível em: https://www3.bcb.gov.br/sgspub/consultarvalores/consultarValoresSeries.do?method=consultarValores. Acesso em: 12 set. 2026.

BRASIL. Câmara dos Deputados. Novo Arcabouço Fiscal. Brasília: Câmara dos Deputados. Disponível em: https://www.camara.leg.br/internet/agencia/infograficos-html5/novo-arcabouco-fiscal/index.html. Acesso em: 14 set. 2026.

BRASIL. Casa Civil da Presidência da República. Novo PAC: transparência. Brasília: Casa Civil. Disponível em: https://www.gov.br/casacivil/pt-br/novopac/transparencia. Acesso em: 14 set. 2026.

BRASIL. Presidência da República. Lei nº 15.321: anexos. Brasília: Presidência da República, 2025. Disponível em: https://www.planalto.gov.br/ccivil_03/_ato2023-2026/2025/lei/anexo/lei15321-anexos.pdf. Acesso em: 15 set. 2026.

BRASIL. Tesouro Nacional. Relatório de Projeções Fiscais. Brasília: Tesouro Nacional. Disponível em: https://thot-arquivos.tesouro.gov.br/publicacao/54970. Acesso em: 14 set. 2026.

BROADCAST. Plano de governo de Flávio prevê superávit primário e redução da dívida pública. 2026. Disponível em: https://www.broadcast.com.br/ultimas-noticias/plano-de-governo-de-flavio-preve-superavit-primario-e-reducao-da-divida-publica/. Acesso em: 14 set. 2026.

CNN BRASIL. Flávio promete estabilizar dívida pública, mas “esconde” medidas fiscais. 2026. Disponível em: https://www.cnnbrasil.com.br/eleicoes/flavio-promete-estabilizar-divida-publica-mas-esconde-medidas-fiscais/. Acesso em: 14 set. 2026.

CURY, Augusto. Plano de Governo – O Brasil dos Nossos Sonhos. 2026. Disponível em: https://static.poder360.com.br/uploads/2026/08/Plano_gov_Augusto_Cury_2026.pdf. Acesso em: 09 set. 2026.

FUNDAÇÃO GETULIO VARGAS. Instituto Brasileiro de Economia (FGV IBRE). Indicador de Incerteza da Economia. Rio de Janeiro: FGV IBRE. Disponível em: https://portalibre.fgv.br/indicador-de-incerteza-da-economia. Acesso em: 10 set. 2026.

FUNDAÇÃO GETULIO VARGAS. Instituto Brasileiro de Economia (FGV IBRE). Indicador de Incerteza da Economia sobe 0,5 ponto em junho. Disponível em: https://portalibre.fgv.br/noticias/indicador-de-incerteza-da-economia-sobe-05-ponto-em-junho. Acesso em: 14 set. 2026.

FUNDAÇÃO GETULIO VARGAS. Instituto Brasileiro de Economia (FGV IBRE). Incerteza econômica cresce em agosto. Disponível em: https://portalibre.fgv.br/noticias/incerteza-economica-cresce-em-agosto. Acesso em: 14 set. 2026.

FUNDAÇÃO GETULIO VARGAS. Instituto Brasileiro de Economia (FGV IBRE). Indicador de Incerteza Brasil FGV – outubro de 2018. Rio de Janeiro: FGV IBRE, 2018. Disponível em: https://portalibre.fgv.br/sites/default/files/2020-10/indicador_de_incerteza_brasil_fgv_press-release_out18.pdf. Acesso em: 14 set. 2026.

G1. Arcabouço fiscal com regras atuais é insustentável, apontam especialistas em contas públicas. 20 abr. 2025. Disponível em: https://g1.globo.com/economia/noticia/2025/04/20/arcabouco-fiscal-com-regras-atuais-e-insustentavel-apontam-especialistas-em-contas-publicas.ghtml. Acesso em: 14 set. 2026.

INFOMONEY. Campanha de Flávio prepara regra com aperto maior de gastos em caso de dívida alta. 2026. Disponível em: https://www.infomoney.com.br/politica/campanha-de-flavio-prepara-regra-com-aperto-maior-de-gastos-em-caso-de-divida-alta/. Acesso em: 14 set. 2026.

PLANO DE GOVERNO – FLÁVIO BOLSONARO. 2026. Disponível em: https://planodegoverno2026.com.br/planos/flavio-bolsonaro-0a34723b.pdf#page=43. Acesso em: 09 set. 2026.

PLANO DE GOVERNO – LUIZ INÁCIO LULA DA SILVA. 2026. Disponível em: https://planodegoverno2026.com.br/planos/lula-e48f1c29.pdf#page=12. Acesso em: 09 set. 2026.

LS0tDQp0aXRsZTogIkVsZWnDp8O1ZXMgMjAyNiBlIG8gY2Vuw6FyaW8gbWFjcm9lY29uw7RtaWNvIGRlIDIwMjciDQphdXRob3I6ICJKdWxpYW5hIEJyYWdhIGUgUGVkcm8gU291emEiDQpkYXRlOiAiMjAyNi0wOS0xNiINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlDQogICAgdGhlbWU6IGx1bWVuDQogICAgaGlnaGxpZ2h0OiB0YW5nbw0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgcGRmX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KICBlY2hvID0gRkFMU0UsDQogIHdhcm5pbmcgPSBGQUxTRSwNCiAgbWVzc2FnZSA9IEZBTFNFLA0KICBmaWcuYWxpZ24gPSAiY2VudGVyIg0KKQ0KDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShsdWJyaWRhdGUpDQpsaWJyYXJ5KGhpZ2hjaGFydGVyKQ0KbGlicmFyeShyZWFkeGwpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeShrbml0cikNCg0KIyBQYXN0YSBkZSBkYWRvcw0KcGFzdGFfZGFkb3MgPC0gIkM6L1VzZXJzL3NvZmlhL09uZURyaXZlL8OBcmVhIGRlIFRyYWJhbGhvL0liTWFjcm8vMcKwIFJlbGF0w7NyaW8iDQoNCiMgVGVtYSBwYWRyw6NvIEliTWFjcm8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KdGVtYV9pYm1hY3JvIDwtIGhjX3RoZW1lX21lcmdlKA0KICBoY190aGVtZV9zbXBsKCksDQogIGhjX3RoZW1lKA0KICAgIGNvbG9ycyA9IGMoIiNGRUI3MTIiLCAiIzAyMDIzQyIsICIjMzYzRTZCIiwgIiNGRkQ1N0EiLA0KICAgICAgICAgICAgICAgIiM0NkIxRTEiLCAiI0E2QTZBNiIsICIjMTExODI3IiksDQogICAgY2hhcnQgPSBsaXN0KA0KICAgICAgYmFja2dyb3VuZENvbG9yID0gIiNGRkZGRkYiLA0KICAgICAgc3R5bGUgPSBsaXN0KGZvbnRGYW1pbHkgPSAiQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiIpDQogICAgKSwNCiAgICB0aXRsZSA9IGxpc3QoDQogICAgICBzdHlsZSA9IGxpc3QoY29sb3IgPSAiIzAyMDIzQyIsIGZvbnRXZWlnaHQgPSAiYm9sZCIsIGZvbnRTaXplID0gIjE4cHgiKQ0KICAgICksDQogICAgc3VidGl0bGUgPSBsaXN0KA0KICAgICAgc3R5bGUgPSBsaXN0KGNvbG9yID0gIiM0QjU1NjMiLCBmb250U2l6ZSA9ICIxM3B4IikNCiAgICApLA0KICAgIHhBeGlzID0gbGlzdCgNCiAgICAgIGdyaWRMaW5lV2lkdGggPSAxLA0KICAgICAgZ3JpZExpbmVDb2xvciA9ICIjRTVFN0VCIiwNCiAgICAgIGxpbmVDb2xvciA9ICIjOUNBM0FGIiwNCiAgICAgIHRpY2tDb2xvciA9ICIjOUNBM0FGIiwNCiAgICAgIGxhYmVscyA9IGxpc3Qoc3R5bGUgPSBsaXN0KGNvbG9yID0gIiM0QjU1NjMiKSkNCiAgICApLA0KICAgIHlBeGlzID0gbGlzdCgNCiAgICAgIGdyaWRMaW5lQ29sb3IgPSAiI0U1RTdFQiIsDQogICAgICBsaW5lQ29sb3IgPSAiIzlDQTNBRiIsDQogICAgICBsYWJlbHMgPSBsaXN0KHN0eWxlID0gbGlzdChjb2xvciA9ICIjNEI1NTYzIikpDQogICAgKSwNCiAgICBsZWdlbmQgPSBsaXN0KA0KICAgICAgZW5hYmxlZCA9IFRSVUUsDQogICAgICBpdGVtU3R5bGUgPSBsaXN0KGNvbG9yID0gIiMxMTE4MjciLCBmb250V2VpZ2h0ID0gIm5vcm1hbCIpDQogICAgKQ0KICApDQopDQpgYGANCg0KIyBJbnRyb2R1w6fDo28NCg0KQXMgZWxlacOnw7VlcyBwcmVzaWRlbmNpYWlzIGRlIDIwMjYgb2NvcnJlbSBlbSB1bSBjZW7DoXJpbyBkZSBlbGV2YWRhIGF0ZW7Dp8OjbyDDoHMgcGVyc3BlY3RpdmFzIGVjb27DtG1pY2FzIGRvIHBhw61zLiBFbnRyZSBvcyBjYW5kaWRhdG9zIG1haXMgYmVtIGNvbG9jYWRvcyBuYXMgcGVzcXVpc2FzIGRlIGludGVuw6fDo28gZGUgdm90byBlc3TDo28gTHVpeiBJbsOhY2lvIEx1bGEgZGEgU2lsdmEsIEZsw6F2aW8gQm9sc29uYXJvIGUgQXVndXN0byBDdXJ5LCBjdWphcyBwcm9wb3N0YXMgZWNvbsO0bWljYXMgYXByZXNlbnRhbSBkaWZlcmVudGVzIGRpcmV0cml6ZXMgcGFyYSBhIGNvbmR1w6fDo28gZGEgZWNvbm9taWEgYnJhc2lsZWlyYS4gTmVzc2UgY29udGV4dG8sIGVzdGUgcmVsYXTDs3JpbyBidXNjYSByZXNwb25kZXIgw6Agc2VndWludGUgcXVlc3TDo286IGNvbW8gYXMgcHJpbmNpcGFpcyBwcm9wb3N0YXMgZWNvbsO0bWljYXMgZG9zIGNhbmRpZGF0b3Mgw6AgUHJlc2lkw6puY2lhIGRhIFJlcMO6YmxpY2EgZW0gMjAyNiBwb2RlbSBnZXJhciByaXNjb3MgZSBwcmVzc8O1ZXMgc29icmUgbyBjZW7DoXJpbyBtYWNyb2Vjb27DtG1pY28gZXNwZXJhZG8gcGFyYSAyMDI3Pw0KDQojIEluY2VydGV6YSBlY29uw7RtaWNhIGUgcGVyw61vZG9zIGVsZWl0b3JhaXMNCg0KTyBJSUUtQnIgw6kgdW0gaW5kaWNhZG9yIHF1ZSBidXNjYSBtZW5zdXJhciBhIGluY2VydGV6YSBuYSBlY29ub21pYSBicmFzaWxlaXJhIGEgcGFydGlyIGRlIGluZm9ybWHDp8O1ZXMgY29sZXRhZGFzIGRvcyBwcmluY2lwYWlzIGpvcm5haXMgZG8gcGHDrXMgZSBkYXMgZXhwZWN0YXRpdmFzIGRvIG1lcmNhZG8gZmluYW5jZWlyby4NCg0KTyDDrW5kaWNlIMOpIGNvbXBvc3RvIHBvciBkb2lzIGNvbXBvbmVudGVzOiBvIElJRS1CciBNw61kaWEsIHF1ZSBwb3NzdWkgcGVzbyBkZSA4MCUgbm8gaW5kaWNhZG9yIGUgYWNvbXBhbmhhIGEgaW5jaWTDqm5jaWEgZGUgdGVybW9zIHJlbGFjaW9uYWRvcyDDoCBpbmNlcnRlemEgbm9zIHByaW5jaXBhaXMgam9ybmFpcyBicmFzaWxlaXJvcywgZSBvIElJRS1CciBFeHBlY3RhdGl2YXMsIHJlc3BvbnPDoXZlbCBwZWxvcyAyMCUgcmVzdGFudGVzIGUgYmFzZWFkbyBuYSBkaXNwZXJzw6NvIGRhcyBwcm9qZcOnw7VlcyBkZSBtZXJjYWRvIHBhcmEgaW5mbGHDp8OjbywgdGF4YSBkZSBqdXJvcyBlIGPDom1iaW8uDQoNCk5vIEdyw6FmaWNvIDEsIMOpIGFwcmVzZW50YWRhIGEgdHJhamV0w7NyaWEgZGVzc2Ugw61uZGljZSwgY29tIGRlc3RhcXVlIHBhcmEgcGVyw61vZG9zIGVsZWl0b3JhaXMsIGJ1c2NhbmRvIGlkZW50aWZpY2FyIHBvc3PDrXZlaXMgcmVsYcOnw7VlcyBlbnRyZSBwZXLDrW9kb3MgZWxlaXRvcmFpcyBlIG8gY29tcG9ydGFtZW50byBkYSBpbmNlcnRlemEgZWNvbsO0bWljYSBubyBwYcOtcy4NCg0KKipHcsOhZmljbyAxOioqDQpgYGB7ciBncmFmaWNvLWlpZX0NCmlpZSA8LSByZWFkLmNzdjIoDQogIGZpbGUucGF0aChwYXN0YV9kYWRvcywgImlpZV9mZ3YuY3N2IiksDQogIGNoZWNrLm5hbWVzID0gRkFMU0UNCikgJT4lDQogIHJlbmFtZSgNCiAgICBkYXRhID0gRGF0YSwNCiAgICBpaWUgPSBgSW5kaWNhZG9yIGRlIEluY2VydGV6YSBkYSBFY29ub21pYSBCcmFzaWwgKElJRS1CcikoMTQyODQ1MilgDQogICkgJT4lDQogIG11dGF0ZSgNCiAgICBkYXRhID0gZG15KHBhc3RlMCgiMDEvIiwgZGF0YSkpLA0KICAgIGlpZSA9IGFzLm51bWVyaWMoaWllKQ0KICApDQoNCmZhaXhhX2VsZWl0b3JhbCA8LSBmdW5jdGlvbihhbm8pIHsNCiAgbGlzdCgNCiAgICBmcm9tID0gZGF0ZXRpbWVfdG9fdGltZXN0YW1wKGFzLkRhdGUoc3ByaW50ZigiJWQtMDEtMDEiLCBhbm8pKSksDQogICAgdG8gPSBkYXRldGltZV90b190aW1lc3RhbXAoYXMuRGF0ZShzcHJpbnRmKCIlZC0xMC0zMSIsIGFubykpKSwNCiAgICBjb2xvciA9ICJyZ2JhKDEwNywgMTM5LCAxNjQsIDAuMTUpIiwNCiAgICBsYWJlbCA9IGxpc3QoDQogICAgICB0ZXh0ID0gcGFzdGUoIlBlcsOtb2RvIGVsZWl0b3JhbCIsIGFubyksDQogICAgICByb3RhdGlvbiA9IDkwLA0KICAgICAgYWxpZ24gPSAiY2VudGVyIiwNCiAgICAgIHZlcnRpY2FsQWxpZ24gPSAibWlkZGxlIiwNCiAgICAgIHggPSAwLA0KICAgICAgeSA9IC0zNQ0KICAgICkNCiAgKQ0KfQ0KDQpoaWdoY2hhcnQodHlwZSA9ICJzdG9jayIpICU+JQ0KICBoY19hZGRfdGhlbWUodGVtYV9pYm1hY3JvKSAlPiUNCiAgaGNfYWRkX3NlcmllcygNCiAgICBpaWUsIHR5cGUgPSAibGluZSIsIGhjYWVzKHggPSBkYXRhLCB5ID0gaWllKSwNCiAgICBuYW1lID0gIklJRS1CciIsIGNvbG9yID0gIiMwMDJDNUUiLCBsaW5lV2lkdGggPSAxLjYNCiAgKSAlPiUNCiAgaGNfcGxvdE9wdGlvbnMoc2VyaWVzID0gbGlzdChtYXJrZXIgPSBsaXN0KA0KICAgIGVuYWJsZWQgPSBGQUxTRSwNCiAgICBzdGF0ZXMgPSBsaXN0KGhvdmVyID0gbGlzdChlbmFibGVkID0gRkFMU0UpKQ0KICApKSkgJT4lDQogIGhjX3RpdGxlKHRleHQgPSAiSW5kaWNhZG9yIGRlIEluY2VydGV6YSBkYSBFY29ub21pYSDigJMgQnJhc2lsIikgJT4lDQogIGhjX3N1YnRpdGxlKHRleHQgPSAiw41uZGljZSBlbSBwb250b3MgfCBqYW4uIDIwMTQgLSBhZ28uIDIwMjYiKSAlPiUNCiAgaGNfeUF4aXModGl0bGUgPSBsaXN0KHRleHQgPSAiSUlFLUJyIChwb250b3MpIiksIG9wcG9zaXRlID0gRkFMU0UpICU+JQ0KICBoY194QXhpcygNCiAgICB0eXBlID0gImRhdGV0aW1lIiwNCiAgICBwbG90QmFuZHMgPSBsYXBwbHkoYygyMDE0LCAyMDE4LCAyMDIyLCAyMDI2KSwgZmFpeGFfZWxlaXRvcmFsKQ0KICApICU+JQ0KICBoY190b29sdGlwKA0KICAgIHNoYXJlZCA9IFRSVUUsDQogICAgdmFsdWVEZWNpbWFscyA9IDEsDQogICAgaGVhZGVyRm9ybWF0ID0gIjxiPntwb2ludC54OiViLyVZfTwvYj48YnIvPiIsDQogICAgcG9pbnRGb3JtYXQgPSAiPGI+e3Nlcmllcy5uYW1lfTwvYj46IHtwb2ludC55Oi4xZn0gcG9udG9zPGJyLz4iDQogICkgJT4lDQogIGhjX25hdmlnYXRvcihlbmFibGVkID0gRkFMU0UpICU+JQ0KICBoY19zY3JvbGxiYXIoZW5hYmxlZCA9IEZBTFNFKSAlPiUNCiAgaGNfcmFuZ2VTZWxlY3RvcihlbmFibGVkID0gRkFMU0UpICU+JQ0KICBoY19leHBvcnRpbmcoZW5hYmxlZCA9IFRSVUUpICU+JQ0KICBoY19jcmVkaXRzKA0KICAgIGVuYWJsZWQgPSBUUlVFLA0KICAgIHRleHQgPSAiRm9udGU6IEZHViBJQlJFIHwgR3LDoWZpY286IEVsYWJvcmHDp8OjbyBQcsOzcHJpYSBJYk1hY3JvIEJIIg0KICApICU+JQ0KICBoY19sZWdlbmQoZW5hYmxlZCA9IFRSVUUpDQpgYGANCg0KRXZpZMOqbmNpYXMgZW1ww61yaWNhcyBpbmRpY2FtIHF1ZSBwZXLDrW9kb3MgZGUgbWFpb3IgaW5jZXJ0ZXphIGVjb27DtG1pY2EgdGVuZGVtIGEgYWZldGFyIG5lZ2F0aXZhbWVudGUgZGVjaXPDtWVzIGRlIGVtcHJlc2FzIGUgZmFtw61saWFzLCByZWR1emluZG8gb3MgaW5jZW50aXZvcyBhbyBpbnZlc3RpbWVudG8gZSDDoCBwcm9kdcOnw6NvLCBhbMOpbSBkZSBlbGV2YXIgYSBjYXV0ZWxhIGRvcyBjb25zdW1pZG9yZXMgZSwgY29uc2VxdWVudGVtZW50ZSwgcmVkdXppciBvIGNvbnN1bW8uDQoNCkVtIDIwMTQsIG8gcGVyw61vZG8gZWxlaXRvcmFsIGNvaW5jaWRpdSBjb20gbyBpbsOtY2lvIGRhIGNyaXNlIGVjb27DtG1pY2EgcXVlIHNlIGFwcm9mdW5kYXJpYSBub3MgYW5vcyBzZWd1aW50ZXMuIEVtIDIwMTgsIG8gcGVyw61vZG8gZWxlaXRvcmFsIG9jb3JyZXUgZW0gdW0gYW1iaWVudGUgZGUgaW5jZXJ0ZXphIGrDoSBlbGV2YWRvLCBkZXZpZG8gYSBkw7p2aWRhcyBzb2JyZSBvcyBhanVzdGVzIGZpc2NhaXMgcXVlIHNlcmlhbSByZWFsaXphZG9zIHBlbG8gcHLDs3hpbW8gZ292ZXJubyBlIGEgdW0gY2Vuw6FyaW8gZXh0ZXJubyBtYWlzIGluc3TDoXZlbC4gSsOhIGVtIDIwMjIsIGEgRkdWIHJlbGFjaW9ub3UgbyBuw612ZWwgZWxldmFkbyBkZSBpbmNlcnRlemEgw6AgcHJveGltaWRhZGUgZGFzIGVsZWnDp8O1ZXMsIMOgIHBpb3JhIGRvIGNlbsOhcmlvIGZpc2NhbCwgw6AgaW5mbGHDp8OjbyBwZXJzaXN0ZW50ZSBubyBCcmFzaWwgZSBubyBtdW5kbyBlIMOgcyBpbmNlcnRlemFzIGVtIHJlbGHDp8OjbyBhbyBjcmVzY2ltZW50byBtdW5kaWFsLg0KDQpFbSBhZ29zdG8gZGUgMjAyNiwgbyBJSUUtQnIgYXRpbmdpdSAxMTEsNyBwb250b3MsIGUgYSBGR1YgYXNzb2Npb3UgcGFydGUgZG8gbW92aW1lbnRvIGFvIGRlYmF0ZSBzb2JyZSBhcyBjb250YXMgcMO6YmxpY2FzIGUgw6BzIHBvbMOtdGljYXMgZWNvbsO0bWljYXMgYXByZXNlbnRhZGFzIHBlbG9zIGNhbmRpZGF0b3MsIGFwZXNhciBkZSBmYXRvcmVzIGV4dGVybm9zIMOgIHBvbMOtdGljYSB0YW1iw6ltIHByb2R1emlyZW0gdW0gZWZlaXRvIHNvYnJlIG8gaW5kaWNhZG9yLg0KDQpOZXNzZSBjb250ZXh0bywgYXMgcHJvcG9zdGFzIGFuYWxpc2FkYXMgcG9kZW0gYWZldGFyIGEgaW5jZXJ0ZXphIHBvciBtZWlvIGRhIHByZXZpc2liaWxpZGFkZSBkYSBzdWEgZXhlY3XDp8Ojby4gT3MgdHLDqnMgY2FuZGlkYXRvcyBhcHJlc2VudGFtIG9iamV0aXZvcyByZWxhY2lvbmFkb3Mgw6Agc3VzdGVudGFiaWxpZGFkZSBmaXNjYWwsIGVudHJldGFudG8sIGNvbSBlc3RyYXTDqWdpYXMsIGZpbmFuY2lhbWVudG8gZSBpbXBsZW1lbnRhw6fDo28gZGFzIG1lZGlkYXMgZGlmZXJlbnRlcy4gRGVzc2EgZm9ybWEsIHByb3Bvc3RhcyBlbnRlbmRpZGFzIGNvbW8gZmlzY2FsbWVudGUgdmnDoXZlaXMgZSBwcmV2aXPDrXZlaXMgdGVuZGVtIGEgcmVkdXppciBpbmNlcnRlemFzLCBlbnF1YW50byBkw7p2aWRhcyBzb2JyZSBmaW5hbmNpYW1lbnRvLCBjb21wZW5zYcOnw6NvIGUgZXhlY3XDp8OjbyBwb2RlbSBhdW1lbnTDoS1sYXMuDQoNCg0KIyBDZW7DoXJpbyBmaXNjYWwgZSB0cmFqZXTDs3JpYSBkYSBkw612aWRhIHDDumJsaWNhDQoNCkEgRMOtdmlkYSBCcnV0YSBkbyBHb3Zlcm5vIEdlcmFsIChEQkdHKSDDqSB1bSBkb3MgcHJpbmNpcGFpcyBpbmRpY2Fkb3JlcyB1dGlsaXphZG9zIHBhcmEgYWNvbXBhbmhhciBhIHNpdHVhw6fDo28gZmlzY2FsIGRvIHBhw61zLCBwb2lzIHBlcm1pdGUgb2JzZXJ2YXIgYSBldm9sdcOnw6NvIGRvIGVuZGl2aWRhbWVudG8gcMO6YmxpY28gZW0gcmVsYcOnw6NvIGFvIHRhbWFuaG8gZG8gUElCLiBBIGTDrXZpZGEgw6kgaW5mbHVlbmNpYWRhIHBvciBmYXRvcmVzIGNvbW8gbyByZXN1bHRhZG8gcHJpbcOhcmlvIGRvIGdvdmVybm8sIG9zIGp1cm9zIHF1ZSBpbmNpZGVtIHNvYnJlIGEgZMOtdmlkYSBlIG8gY3Jlc2NpbWVudG8gZWNvbsO0bWljby4NCg0KKipHcsOhZmljbyAyOioqDQpgYGB7ciBncmFmaWNvLWRiZ2d9DQpkYmdnX2JjYiA8LSByZWFkLmNzdjIoDQogIGZpbGUucGF0aChwYXN0YV9kYWRvcywgIlNUUC0yMDI2MDkxNTExMDA1NzM0NC5jc3YiKSwNCiAgY2hlY2submFtZXMgPSBGQUxTRSwNCiAgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFDQopDQpuYW1lcyhkYmdnX2JjYilbMToyXSA8LSBjKCJkYXRhIiwgImRiZ2ciKQ0KDQpkYmdnX2JjYiA8LSBkYmdnX2JjYiAlPiUNCiAgZmlsdGVyKGRhdGEgIT0gIkZvbnRlIikgJT4lDQogIG11dGF0ZSgNCiAgICBkYXRhID0gZG15KHBhc3RlMCgiMDEvIiwgZGF0YSkpLA0KICAgIGRiZ2cgPSBhcy5udW1lcmljKGdzdWIoIiwiLCAiLiIsIGRiZ2csIGZpeGVkID0gVFJVRSkpDQogICkgJT4lDQogIGZpbHRlcigNCiAgICBkYXRhID49IGFzLkRhdGUoIjIwMjEtMDEtMDEiKSwNCiAgICBkYXRhIDw9IGFzLkRhdGUoIjIwMjUtMTItMzEiKSwNCiAgICAhaXMubmEoZGF0YSksDQogICAgIWlzLm5hKGRiZ2cpDQogICkgJT4lDQogIGFycmFuZ2UoZGF0YSkNCg0KdGVzb3VybyA8LSByZWFkX2V4Y2VsKA0KICBmaWxlLnBhdGgocGFzdGFfZGFkb3MsICJSZWxhdMOzcmlvIGRlIFByb2plw6fDtWVzIEZpc2NhaXMgbjggSnVuaG8gMjAyNiAtIEFuZXhvIEVzdGF0w61zdGljby54bHN4IiksDQogIHNoZWV0ID0gIlRhYmVsYSAyIiwNCiAgc2tpcCA9IDMNCikNCg0KcHJpbWVpcmFfY29sdW5hIDwtIG5hbWVzKHRlc291cm8pWzFdDQpsaW5oYV9kYmdnIDwtIHRlc291cm8gJT4lDQogIGZpbHRlcihncmVwbCgNCiAgICAiXjEzXFwuIETDjVZJREEgQlJVVEEgRE8gR09WRVJOTyBHRVJBTCIsDQogICAgdG91cHBlcihhcy5jaGFyYWN0ZXIoLmRhdGFbW3ByaW1laXJhX2NvbHVuYV1dKSkNCiAgKSkNCg0KaWYgKG5yb3cobGluaGFfZGJnZykgIT0gMSkgew0KICBzdG9wKCJFcnJvIGFvIGxvY2FsaXphciBhIERCR0cgbmEgVGFiZWxhIDIuIExpbmhhcyBlbmNvbnRyYWRhczogIiwgbnJvdyhsaW5oYV9kYmdnKSkNCn0NCg0KZGJnZ19wcm9qZWNhbyA8LSBsaW5oYV9kYmdnICU+JQ0KICBzZWxlY3QoYDIwMjVgLCBgMjAyNmAsIGAyMDI3YCwgYDIwMjhgLCBgMjAyOWAsIGAyMDMwYCkgJT4lDQogIHBpdm90X2xvbmdlcihldmVyeXRoaW5nKCksIG5hbWVzX3RvID0gImFubyIsIHZhbHVlc190byA9ICJkYmdnIikgJT4lDQogIG11dGF0ZSgNCiAgICBhbm8gPSBhcy5pbnRlZ2VyKGFubyksDQogICAgZGJnZyA9IGFzLm51bWVyaWMoZGJnZyksDQogICAgZGF0YSA9IGFzLkRhdGUocGFzdGUwKGFubywgIi0xMi0wMSIpKQ0KICApICU+JQ0KICBzZWxlY3QoZGF0YSwgZGJnZykgJT4lDQogIGFycmFuZ2UoZGF0YSkNCg0KaGlnaGNoYXJ0KHR5cGUgPSAic3RvY2siKSAlPiUNCiAgaGNfYWRkX3RoZW1lKHRlbWFfaWJtYWNybykgJT4lDQogIGhjX2FkZF9zZXJpZXMoDQogICAgZGJnZ19iY2IsIHR5cGUgPSAibGluZSIsIGhjYWVzKHggPSBkYXRhLCB5ID0gZGJnZyksDQogICAgbmFtZSA9ICJEQkdHIHJlYWxpemFkYSIsIGNvbG9yID0gIiMwMDJDNUUiLCBsaW5lV2lkdGggPSAyLA0KICAgIG1hcmtlciA9IGxpc3QoZW5hYmxlZCA9IEZBTFNFKQ0KICApICU+JQ0KICBoY19hZGRfc2VyaWVzKA0KICAgIGRiZ2dfcHJvamVjYW8sIHR5cGUgPSAibGluZSIsIGhjYWVzKHggPSBkYXRhLCB5ID0gZGJnZyksDQogICAgbmFtZSA9ICJEQkdHIHByb2pldGFkYSIsIGNvbG9yID0gIiMzNjNFNkIiLCBsaW5lV2lkdGggPSAyLA0KICAgIGRhc2hTdHlsZSA9ICJTaG9ydERhc2giLCBtYXJrZXIgPSBsaXN0KGVuYWJsZWQgPSBGQUxTRSkNCiAgKSAlPiUNCiAgaGNfdGl0bGUodGV4dCA9ICJEw612aWRhIEJydXRhIGRvIEdvdmVybm8gR2VyYWw6IGhpc3TDs3JpY28gZSBwcm9qZcOnw7VlcyIpICU+JQ0KICBoY19zdWJ0aXRsZSh0ZXh0ID0gIlBlcmNlbnR1YWwgZG8gUElCICglKSB8IFNHUyAxMzc2MiB8IDIwMjEgLSAyMDMwIikgJT4lDQogIGhjX3hBeGlzKA0KICAgIHR5cGUgPSAiZGF0ZXRpbWUiLA0KICAgIHRpY2tQb3NpdGlvbnMgPSBkYXRldGltZV90b190aW1lc3RhbXAoYXMuRGF0ZShjKA0KICAgICAgIjIwMjEtMDEtMDEiLCAiMjAyMy0wMS0wMSIsICIyMDI1LTAxLTAxIiwgIjIwMjctMDEtMDEiLCAiMjAzMC0wMS0wMSINCiAgICApKSksDQogICAgbGFiZWxzID0gbGlzdChmb3JtYXQgPSAie3ZhbHVlOiVZfSIpLA0KICAgIG1pbiA9IGRhdGV0aW1lX3RvX3RpbWVzdGFtcChhcy5EYXRlKCIyMDIxLTAxLTAxIikpLA0KICAgIG1heCA9IGRhdGV0aW1lX3RvX3RpbWVzdGFtcChhcy5EYXRlKCIyMDMwLTEyLTMxIikpDQogICkgJT4lDQogIGhjX3lBeGlzKHRpdGxlID0gbGlzdCh0ZXh0ID0gIiUgZG8gUElCIiksIG9wcG9zaXRlID0gRkFMU0UpICU+JQ0KICBoY190b29sdGlwKA0KICAgIHVzZUhUTUwgPSBUUlVFLCBzaGFyZWQgPSBUUlVFLCB2YWx1ZURlY2ltYWxzID0gMiwgdmFsdWVTdWZmaXggPSAiJSIsDQogICAgaGVhZGVyRm9ybWF0ID0gIjxiPntwb2ludC54OiViLyVZfTwvYj48YnIvPiINCiAgKSAlPiUNCiAgaGNfcGxvdE9wdGlvbnMoc2VyaWVzID0gbGlzdChtYXJrZXIgPSBsaXN0KA0KICAgIGVuYWJsZWQgPSBGQUxTRSwNCiAgICBzdGF0ZXMgPSBsaXN0KGhvdmVyID0gbGlzdChlbmFibGVkID0gRkFMU0UpKQ0KICApKSkgJT4lDQogIGhjX2xlZ2VuZChlbmFibGVkID0gVFJVRSkgJT4lDQogIGhjX25hdmlnYXRvcihlbmFibGVkID0gRkFMU0UpICU+JQ0KICBoY19zY3JvbGxiYXIoZW5hYmxlZCA9IEZBTFNFKSAlPiUNCiAgaGNfcmFuZ2VTZWxlY3RvcihlbmFibGVkID0gRkFMU0UpICU+JQ0KICBoY19leHBvcnRpbmcoZW5hYmxlZCA9IFRSVUUpICU+JQ0KICBoY19jcmVkaXRzKA0KICAgIGVuYWJsZWQgPSBUUlVFLA0KICAgIHRleHQgPSAiRm9udGU6IEJDQiBlIFRlc291cm8gTmFjaW9uYWwgfCBHcsOhZmljbzogRWxhYm9yYcOnw6NvIFByw7NwcmlhIEliTWFjcm8gQkgiDQogICkNCmBgYA0KDQpBcMOzcyBhcHJlc2VudGFyIHJlZHXDp8OjbyBlbnRyZSAyMDIxIGUgMjAyMiwgYSBEQkdHIHZvbHRvdSBhIGNyZXNjZXIgbm9zIGFub3Mgc2VndWludGVzLiBObyBjZW7DoXJpbyBkZSByZWZlcsOqbmNpYSBkbyBUZXNvdXJvIE5hY2lvbmFsLCBhIGTDrXZpZGEgcGFzc2EgZGUgNzgsNiUgZG8gUElCIGVtIDIwMjUgcGFyYSA4Myw1JSBlbSAyMDI2IGUgODUsOSUgZW0gMjAyNywgc2VndWluZG8gdW1hIHRyYWpldMOzcmlhIGNyZXNjZW50ZSBhdMOpIGF0aW5naXIgODcsOSUgZW0gMjAyOSwgcXVhbmRvIHBhc3NhIGEgYXByZXNlbnRhciByZWR1w6fDo28uDQoNClBhcmEgMjAyNywgYXMgcHJvamXDp8O1ZXMgZG8gVGVzb3VybyBpbmRpY2FtIG9zIGp1cm9zIG5vbWluYWlzIGNvbW8gYSBwcmluY2lwYWwgY29udHJpYnVpw6fDo28gcGFyYSBvIGF1bWVudG8gZGEgREJHRywgc29tYW5kbyA4LDRwLnAuIMOgIHZhcmlhw6fDo28gZGEgZMOtdmlkYSwgZW5xdWFudG8gbyBjcmVzY2ltZW50byBkbyBQSUIgZSBvIGRlZmxhZG9yIGRvIFBJQiBjb250cmlidWVtIGNvbSAtMiwxIGUgLTQsMCBwLnAuIGF0dWFuZG8gbm8gc2VudGlkbyBjb250csOhcmlvLCBjb20gbyBwYXBlbCBkZSByZWR1emlyIGEgcmVsYcOnw6NvIGTDrXZpZGEvUElCLCBlbWJvcmEgbsOjbyBzZWphIHN1ZmljaWVudGUgcGFyYSBpbXBlZGlyIG8gY3Jlc2NpbWVudG8gZGVzc2EgcmVsYcOnw6NvIG5vIGNlbsOhcmlvIHByb2pldGFkby4NCg0KQSBwYXJ0aXIgZGEgcmVmZXLDqm5jaWEsIGFzIHByb3Bvc3RhcyBmaXNjYWlzIGRvcyBjYW5kaWRhdG9zIHBvZGVtIGFsdGVyYXIgYWxndW5zIGRvcyBmYXRvcmVzIGNvbnNpZGVyYWRvcyBuYSBwcm9qZcOnw6NvLiBGbMOhdmlvIEJvbHNvbmFybyBwcm9ww7VlIHN1YnN0aXR1aXIgYSBhdHVhbCByZWdyYSBmaXNjYWwgZSBhbGNhbsOnYXIgc3VwZXLDoXZpdHMgcHJpbcOhcmlvcywgdXRpbGl6YW5kbyBtZWRpZGFzIGNvbW8gY29udGVuw6fDo28gZGUgZGVzcGVzYXMgZSBsaW1pdGHDp8OjbyBkbyBjcsOpZGl0byBzdWJzaWRpYWRvIHBlbG8gVGVzb3Vyby4gQ2FzbyBlc3NhcyBtZWRpZGFzIHByb2R1emFtIHVtIHJlc3VsdGFkbyBwcmltw6FyaW8gc3VwZXJpb3IgYW8gZXNwZXJhZG8gcGVsbyBUZXNvdXJvLCBhIG5lY2Vzc2lkYWRlIGRlIGZpbmFuY2lhbWVudG8gZG8gZMOpZmljaXQgc2VyaWEgbWVub3IsIGFjYXJyZXRhbmRvIHVtYSBwcmVzc8OjbyBwYXJhIGEgcmVkdcOnw6NvIGRhIERCR0cgcHJvamV0YWRhLiBFbnRyZXRhbnRvLCBvIHByb2dyYW1hIHRhbWLDqW0gcHJldsOqIHJlZHXDp8OjbyBkYSB0cmlidXRhw6fDo28gc29icmUgcHJvZHXDp8OjbyBlIGNvbnN1bW8gZSBuw6NvIGFib3JkYSBjb21vIGEgcG9zc8OtdmVsIHJlZHXDp8OjbyBuYSBhcnJlY2FkYcOnw6NvIHNlcmlhIGNvbXBlbnNhZGEsIGZhemVuZG8gY29tIHF1ZSBvIGVmZWl0byBmaW5hbCBkZXBlbmRhIGRhIGV4ZWN1w6fDo28gZG8gYWp1c3RlIGZpc2NhbC4NCg0KQXVndXN0byBDdXJ5IHRhbWLDqW0gdmVtIGNvbSBvIG9iamV0aXZvIGRlIG1lbGhvcmFyIG8gcmVzdWx0YWRvIGZpc2NhbCwgYnVzY2FuZG8gYXByb3hpbWFyIG8gZMOpZmljaXQgcMO6YmxpY28gZGUgemVybyBlIHJlZHV6aXIgZ3JhZHVhbG1lbnRlIGEgZMOtdmlkYS4gQ29tbyBtZWNhbmlzbW8sIGVsZSBwcm9ww7VlIGNvbnRyb2xlIHJpZ29yb3NvIGRvcyBnYXN0b3MsIGVsaW1pbmHDp8OjbyBkZSBkZXNwZXNhcyBjb25zaWRlcmFkYXMgaW1wcm9kdXRpdmFzLCBtZXRhcyBkZSBlZmljacOqbmNpYSBub3MgbWluaXN0w6lyaW9zIGUgbW9kZXJuaXphw6fDo28gYWRtaW5pc3RyYXRpdmEuIEVzc2FzIG1lZGlkYXMgcG9kZXJpYW0gbWVsaG9yYXIgbyByZXN1bHRhZG8gcHJpbcOhcmlvIGUgcmVkdXppciBhIHByZXNzw6NvIHNvYnJlIGEgdHJhamV0w7NyaWEgcHJvamV0YWRhIGRhIERCR0cuIFBvcsOpbSwgY29tbyBvIGltcGFjdG8gZmlzY2FsIGVzcGVyYWRvIGNvbSBlc3NhcyBtZWRpZGFzIG7Do28gw6kgcXVhbnRpZmljYWRvLCBuw6NvIMOpIHBvc3PDrXZlbCBkZXRlcm1pbmFyIHNlIHNlcmlhIHN1ZmljaWVudGUgcGFyYSBhbHRlcmFyIHNpZ25pZmljYXRpdmFtZW50ZSBvIGNlbsOhcmlvIGVzcGVyYWRvIHBlbG8gVGVzb3Vyby4NCg0KSsOhIEx1bGEgcHJvcMO1ZSBhIG1hbnV0ZW7Dp8OjbyBkbyBhdHVhbCBhcmNhYm91w6dvIGZpc2NhbCwgbGltaXRhbmRvIG8gY3Jlc2NpbWVudG8gZGFzIGRlc3Blc2FzIMOgIG1lZGlkYSBxdWUgYXMgcmVjZWl0YXMgZm9yZW0gZXZvbHVpbmRvIGUgbWFudGVuZG8gbWV0YXMgcGFyYSBvIHJlc3VsdGFkbyBwcmltw6FyaW8sIGFsw6ltIGRlIHByZXZlciByZXZpc8OjbyBkZSBnYXN0b3MgZSBmb3J0YWxlY2ltZW50byBkYXMgcmVjZWl0YXMuIENvbW8gbyBjZW7DoXJpbyBkZSByZWZlcsOqbmNpYSBkbyBUZXNvdXJvIGrDoSBjb25zaWRlcmEgZXNzYSBtYW51dGVuw6fDo28sIGVzc2EgcHJvcG9zdGEgZXN0w6EgYmVtIGFsaW5oYWRhIGVtIHJlbGHDp8OjbyBhbyBxdWUgZm9pIHByb2pldGFkby4gUG9yw6ltLCBvIGNyZXNjaW1lbnRvIHByb2pldGFkbyBkYXMgZGVzcGVzYXMgb2JyaWdhdMOzcmlhcyBwcmVzc2lvbmEgbyBlc3Bhw6dvIGRpc3BvbsOtdmVsIHBhcmEgYWp1c3RlIGRhcyBkZXNwZXNhcyBkaXNjcmljaW9uw6FyaWFzLCBleGlnaW5kbyBhdGVuw6fDo28gdm9sdGFkYSBwYXJhIHF1YWlzIGdhc3RvcyBzZXLDo28gcmV2aXNhZG9zLiBBc3NpbSwgbyBjdW1wcmltZW50byBkYXMgbWV0YXMgZSBsaW1pdGVzIHByZXZpc3RvcyBjb250cmlidWlyaWEgcGFyYSBtYW50ZXIgYSB0cmFqZXTDs3JpYSBkYSBkw612aWRhIHByw7N4aW1hIGFvIGNlbsOhcmlvIHByb2pldGFkbywgZW5xdWFudG8gcmVzdWx0YWRvcyBmaXNjYWlzIGluZmVyaW9yZXMgYW9zIGVzcGVyYWRvcyBwZWxvIFRlc291cm8gcG9kZXJpYW0gYW1wbGlhciBhIHByZXNzw6NvIHNvYnJlIGEgZMOtdmlkYS4NCg0KDQojIEVmZWl0b3Mgc29icmUgZXhwZWN0YXRpdmFzIGRlIGluZmxhw6fDo28NCg0KKipHcsOhZmljbyAzOioqDQpgYGB7ciBncmFmaWNvLWlwY2F9DQpkYWRvcyA8LSByZWFkLmNzdjIoDQogIGZpbGUucGF0aChwYXN0YV9kYWRvcywgImlwY2FfYmNiLmNzdiIpLA0KICBjaGVjay5uYW1lcyA9IEZBTFNFDQopICU+JQ0KICByZW5hbWUoDQogICAgZGF0YSA9IERhdGVUaW1lLA0KICAgIG1ldGEgPSBgbWV0YSBwYXJhIGEgaW5mbGHDp8Ojb2AsDQogICAgaXBjYSA9IGBJUENBIG9jb3JyaWRvYCwNCiAgICBmb2N1cyA9IGBGb2N1cyBtYWlzIHJlY2VudGVgLA0KICAgIGxpbWl0ZV9tYXggPSBgbGltaXRlIG3DoXhpbW9gLA0KICAgIGxpbWl0ZV9taW4gPSBgbGltaXRlIG3DrW5pbW9gDQogICkgJT4lDQogIG11dGF0ZShkYXRhID0gYXMuRGF0ZShkYXRhKSkgJT4lDQogIGZpbHRlcihkYXRhID49IGFzLkRhdGUoIjIwMjItMDEtMDEiKSwgZGF0YSA8PSBhcy5EYXRlKCIyMDI3LTEyLTMxIikpICU+JQ0KICBmaWxsKG1ldGEsIGxpbWl0ZV9tYXgsIGxpbWl0ZV9taW4sIC5kaXJlY3Rpb24gPSAiZG93biIpDQoNCmhpZ2hjaGFydCh0eXBlID0gInN0b2NrIikgJT4lDQogIGhjX2FkZF90aGVtZSh0ZW1hX2libWFjcm8pICU+JQ0KICBoY19hZGRfc2VyaWVzKA0KICAgIGRhZG9zLCB0eXBlID0gImFyZWFyYW5nZSIsDQogICAgaGNhZXMoeCA9IGRhdGEsIGxvdyA9IGxpbWl0ZV9taW4sIGhpZ2ggPSBsaW1pdGVfbWF4KSwNCiAgICBuYW1lID0gIkludGVydmFsbyBkZSB0b2xlcsOibmNpYSIsIGNvbG9yID0gIiM2QjhCQTQiLA0KICAgIGZpbGxPcGFjaXR5ID0gMC4xMiwgbGluZVdpZHRoID0gMA0KICApICU+JQ0KICBoY19hZGRfc2VyaWVzKA0KICAgIGRhZG9zLCB0eXBlID0gImxpbmUiLCBoY2Flcyh4ID0gZGF0YSwgeSA9IG1ldGEpLA0KICAgIG5hbWUgPSAiTWV0YSBkZSBpbmZsYcOnw6NvIiwgY29sb3IgPSAiIzAyMDIzQyIsDQogICAgZGFzaFN0eWxlID0gIlNob3J0RGFzaCIsIGxpbmVXaWR0aCA9IDEuNCwgc3RlcCA9ICJsZWZ0Ig0KICApICU+JQ0KICBoY19hZGRfc2VyaWVzKA0KICAgIGZpbHRlcihkYWRvcywgIWlzLm5hKGlwY2EpKSwgdHlwZSA9ICJsaW5lIiwNCiAgICBoY2Flcyh4ID0gZGF0YSwgeSA9IGlwY2EpLCBuYW1lID0gIklQQ0EgYWN1bXVsYWRvIGVtIDEyIG1lc2VzIiwNCiAgICBjb2xvciA9ICIjRkZCODFGIiwgbGluZVdpZHRoID0gMS42DQogICkgJT4lDQogIGhjX2FkZF9zZXJpZXMoDQogICAgZmlsdGVyKGRhZG9zLCAhaXMubmEoZm9jdXMpKSwgdHlwZSA9ICJsaW5lIiwNCiAgICBoY2Flcyh4ID0gZGF0YSwgeSA9IGZvY3VzKSwgbmFtZSA9ICJFeHBlY3RhdGl2YSBGb2N1cyIsDQogICAgY29sb3IgPSAiIzNBM0EzQSIsIGRhc2hTdHlsZSA9ICJTaG9ydERhc2giLCBsaW5lV2lkdGggPSAxLjYNCiAgKSAlPiUNCiAgaGNfcGxvdE9wdGlvbnMoc2VyaWVzID0gbGlzdChtYXJrZXIgPSBsaXN0KA0KICAgIGVuYWJsZWQgPSBGQUxTRSwNCiAgICBzdGF0ZXMgPSBsaXN0KGhvdmVyID0gbGlzdChlbmFibGVkID0gRkFMU0UpKQ0KICApKSkgJT4lDQogIGhjX3RpdGxlKHRleHQgPSAiSVBDQSByZWFsaXphZG8gZSBFeHBlY3RhdGl2YXMgZGUgTWVyY2FkbyIpICU+JQ0KICBoY19zdWJ0aXRsZSh0ZXh0ID0gIlZhcmlhw6fDo28gYWN1bXVsYWRhIGVtIDEyIG1lc2VzICglKSB8IGphbi4gMjAyMiAtIGRlei4gMjAyNyIpICU+JQ0KICBoY195QXhpcygNCiAgICB0aXRsZSA9IGxpc3QodGV4dCA9ICJJUENBICglKSIpLCBvcHBvc2l0ZSA9IEZBTFNFLA0KICAgIG1pbiA9IDAsIG1heCA9IDgsIHRpY2tQb3NpdGlvbnMgPSBjKDAsIDUsIDEwLCAxNSkNCiAgKSAlPiUNCiAgaGNfeEF4aXModHlwZSA9ICJkYXRldGltZSIsIHBsb3RMaW5lcyA9IGxpc3QoDQogICAgbGlzdCgNCiAgICAgIHZhbHVlID0gZGF0ZXRpbWVfdG9fdGltZXN0YW1wKGFzLkRhdGUoIjIwMjUtMDEtMDEiKSksDQogICAgICBjb2xvciA9ICIjQTZBNkE2Iiwgd2lkdGggPSAxLCBkYXNoU3R5bGUgPSAiRG90IiwNCiAgICAgIGxhYmVsID0gbGlzdCh0ZXh0ID0gIkluw61jaW8gZGEgbWV0YSBjb250w61udWEiLCByb3RhdGlvbiA9IDAsIHkgPSAxNSkNCiAgICApLA0KICAgIGxpc3QoDQogICAgICB2YWx1ZSA9IGRhdGV0aW1lX3RvX3RpbWVzdGFtcChtaW4oZGFkb3MkZGF0YVshaXMubmEoZGFkb3MkZm9jdXMpXSkpLA0KICAgICAgY29sb3IgPSAiI0E2QTZBNiIsIHdpZHRoID0gMSwgZGFzaFN0eWxlID0gIkRvdCIsDQogICAgICBsYWJlbCA9IGxpc3QodGV4dCA9ICJFeHBlY3RhdGl2YXMiLCByb3RhdGlvbiA9IDAsIHkgPSAxNSkNCiAgICApDQogICkpICU+JQ0KICBoY19uYXZpZ2F0b3IoZW5hYmxlZCA9IEZBTFNFKSAlPiUNCiAgaGNfc2Nyb2xsYmFyKGVuYWJsZWQgPSBGQUxTRSkgJT4lDQogIGhjX3JhbmdlU2VsZWN0b3IoZW5hYmxlZCA9IEZBTFNFKSAlPiUNCiAgaGNfZXhwb3J0aW5nKGVuYWJsZWQgPSBUUlVFKSAlPiUNCiAgaGNfdG9vbHRpcCgNCiAgICB1c2VIVE1MID0gVFJVRSwgc2hhcmVkID0gVFJVRSwgdmFsdWVEZWNpbWFscyA9IDIsIHZhbHVlU3VmZml4ID0gIiUiLA0KICAgIGhlYWRlckZvcm1hdCA9ICI8Yj57cG9pbnQueDolYi8lWX08L2I+PGJyLz4iDQogICkgJT4lDQogIGhjX2NyZWRpdHMoDQogICAgZW5hYmxlZCA9IFRSVUUsDQogICAgdGV4dCA9ICJGb250ZTogQkNCIHwgR3LDoWZpY286IEVsYWJvcmHDp8OjbyBQcsOzcHJpYSBJYk1hY3JvIEJIIg0KICApICU+JQ0KICBoY19sZWdlbmQoZW5hYmxlZCA9IFRSVUUpDQpgYGANCg0KVGVuZG8gZW0gdmlzdGEgcXVlIG8gSVBDQSDDqSBvIHByaW5jaXBhbCBpbmRpY2Fkb3IgZGEgaW5mbGHDp8OjbyBicmFzaWxlaXJhIGUgw6kgdXRpbGl6YWRvIG5vIHNpc3RlbWEgZGUgbWV0YXMgcGFyYSBhIGluZmxhw6fDo28sIGNvbW8gYXByZXNlbnRhZG8gbm8gZ3LDoWZpY28gYWNpbWEsIGFzIGV4cGVjdGF0aXZhcyBkZSBtZXJjYWRvIGluZGljYW0gdW1hIGRlc2FjZWxlcmHDp8OjbyBkYSBpbmZsYcOnw6NvIGFvIGxvbmdvIGRlIDIwMjcsIGNoZWdhbmRvIGVtIGRlemVtYnJvIGEgNCwyNyUuIEFpbmRhIHF1ZSB0ZW5oYSByZWR1emlkbywgY29udGludWEgYWNpbWEgZGEgbWV0YSBlc3RhYmVsZWNpZGEgcGVsbyBDb25zZWxobyBNb25ldMOhcmlvIE5hY2lvbmFsIChDTU4pIGRlIDMlLCBtYXMgZXN0w6EgZGVudHJvIGRvIGludGVydmFsbyBkZSB0b2xlcsOibmNpYSBkZSAxLDUgcG9udG8gcGVyY2VudHVhbCBwYXJhIGNpbWEgb3UgcGFyYSBiYWl4by4gUGFyYSBxdWUgZXNzZSBjZW7DoXJpbyBzZSBjb25jcmV0aXplLCBkZXBlbmRlIGRvIGNvbXBvcnRhbWVudG8gZGEgZGVtYW5kYSBhZ3JlZ2FkYSwgZGFzIGV4cGVjdGF0aXZhcyBlIGRhIGNvbmR1w6fDo28gZGEgcG9sw610aWNhIGZpc2NhbC4gRGVzc2UgbW9kbywgYXMgcHJvcG9zdGFzIGVjb27DtG1pY2FzIGRvcyBjYW5kaWRhdG9zIHBvZGVtIGludGVyZmVyaXIgbm9zIHJlc3VsdGFkb3MgZXNwZXJhZG9zLCB1bWEgdmV6IHF1ZSBtdWl0YXMgZXN0w6NvIHJlbGFjaW9uYWRhcyDDoCBjb25kdcOnw6NvIGRhcyBjb250YXMgcMO6YmxpY2FzLg0KDQpOYXMgcHJvcG9zdGFzIGRlIEZsw6F2aW8gQm9sc29uYXJvLCBhIHJlZm9ybXVsYcOnw6NvIGRhIHJlZ3JhIGZpc2NhbCBidXNjYSBzdWJzdGl0dWlyIG8gYXJjYWJvdcOnbyBmaXNjYWwgdmlnZW50ZSwgYnVzY2FyIHN1cGVyw6F2aXRzIHByaW3DoXJpb3MgZSBsaW1pdGFyIGEgY29uY2Vzc8OjbyBkZSBjcsOpZGl0byBzdWJzaWRpYWRvIGNvbSByZWN1cnNvcyBkbyBUZXNvdXJvLCBtZWRpZGFzIHF1ZSBzZSByZWxhY2lvbmFtIGNvbSBvIGNlbsOhcmlvIGluZmxhY2lvbsOhcmlvLiBBIGxpbWl0YcOnw6NvIGRvIGNyw6lkaXRvIHN1YnNpZGlhZG8gcG9kZSByZWR1emlyIG8gZXN0w61tdWxvIGFvIGNvbnN1bW8gZSBhbyBpbnZlc3RpbWVudG8gZSwgY29uc2VxdWVudGVtZW50ZSwgZGltaW51aXIgYSBkZW1hbmRhIGFncmVnYWRhLiBBZGVtYWlzLCBhIHByb3Bvc3RhIHRhbWLDqW0gZW52b2x2ZSByZWR1w6fDo28gZGUgdHJpYnV0b3MsIGN1amEgY29tcGVuc2HDp8OjbyBmaXNjYWwgbsOjbyBmb2kgYmVtIGVzcGVjaWZpY2FkYTsgZGVzc2UgbW9kbywgbyBlZmVpdG8gc29icmUgbyBjZW7DoXJpbyBlc3BlcmFkbyBkZXBlbmRlcsOhIGRhIGhhYmlsaWRhZGUgZGUgY29tYmluYXIgZXNzYXMgbWVkaWRhcyBjb20gb3Mgc3VwZXLDoXZpdHMgcHJldGVuZGlkb3MuIEEgcHJvcG9zdGEgZGUgUiQgOTAwIGJpbGjDtWVzIGRlIGludmVzdGltZW50byBlbSBpbmZyYWVzdHJ1dHVyYSBpbmZsdWVuY2lhIGEgZGVtYW5kYSBhZ3JlZ2FkYTogbm8gY3VydG8gcHJhem8sIHBvZGUgZXhlcmNlciBwcmVzc8OjbyBzb2JyZSBhIGluZmxhw6fDo28sIG1hcywgbm8gbcOpZGlvIGUgbG9uZ28gcHJhem8sIHBvZGUgYW1wbGlhciBhIGNhcGFjaWRhZGUgcHJvZHV0aXZhLCB0b3JuYW5kbyBhIHByZXNzw6NvIGluZmxhY2lvbsOhcmlhIG7Do28gcGVybWFuZW50ZS4gQXNzaW0sIGFzIHByb3Bvc3RhcyBhbmFsaXNhZGFzIHBvZGVtIGV4ZXJjZXIgcHJlc3PDo28gYmFpeGlzdGEgc29icmUgYSBpbmZsYcOnw6NvLCBjb25kaWNpb25hZGEgw6AgZXhlY3XDp8Ojby4NCg0KUG9yIG91dHJvIGxhZG8sIGEgcHJvcG9zdGEgZGUgTHVsYSBkZSBtYW51dGVuw6fDo28gZG8gYXR1YWwgYXJjYWJvdcOnbyBmaXNjYWwgZXN0YWJlbGVjZSByZWxhw6fDo28gY29tIGEgaW5mbGHDp8OjbyBwcmluY2lwYWxtZW50ZSBwb3IgbWVpbyBkYSBwcmV2aXNpYmlsaWRhZGUgZmlzY2FsIGUgZG8gY29udHJvbGUgZG8gY3Jlc2NpbWVudG8gZGFzIGRlc3Blc2FzLiBPIGN1bXByaW1lbnRvIGRlc3NhcyBtZXRhcyBwb2RlIGNvbnRyaWJ1aXIgcGFyYSByZWR1emlyIGluY2VydGV6YXMgc29icmUgYSB0cmFqZXTDs3JpYSBkYSBkw612aWRhLCBmYXZvcmVjZW5kbyBhcyBleHBlY3RhdGl2YXMgZG9zIGFnZW50ZXMuIFBvciBzZSB0cmF0YXIgZGUgdW1hIG1hbnV0ZW7Dp8OjbywgaXNzbyBuw6NvIGluZGljYSwgcG9yIHNpIHPDsywgdW1hIG5vdmEgZXhwYW5zw6NvIG91IGNvbnRyYcOnw6NvIGZpc2NhbC4gRGVzc2UgbW9kbywgb3MgNCwyNyUgZXNwZXJhZG9zIGRlcGVuZGVtIGRhIGV4ZWN1w6fDo28gZSBkZSBlbGEgc2VyIG1haXMgb3UgbWVub3MgZXhwYW5zaW9uaXN0YSBxdWUgYSBhdHVhbG1lbnRlIGNvbnNpZGVyYWRhLiBBbMOpbSBkaXNzbywgbyBOb3ZvIFBBQywgcG9yIHNlIHRyYXRhciBkZSBpbnZlc3RpbWVudG9zLCBwb2RlIGVsZXZhciBhIGRlbWFuZGEgYWdyZWdhZGEuIENhc28gYSBleGVjdcOnw6NvIHNlamEgY29uY2VudHJhZGEgZW0gMjAyNywgb3MgaW52ZXN0aW1lbnRvcyBwb2RlbSBleGVyY2VyIHByZXNzw6NvIHNvYnJlIGEgaW5mbGHDp8OjbyBubyBjdXJ0byBwcmF6bywgb3MgaW52ZXN0aW1lbnRvcyBwb2RlbSBhdW1lbnRhciBhIGNhcGFjaWRhZGUgcHJvZHV0aXZhLCByZXZlcnRlbmRvIHBhcnRlIGRhIHByZXNzw6NvIGluZmxhY2lvbsOhcmlhIG5vIG3DqWRpbyBlIGxvbmdvIHByYXpvLg0KDQpObyBjYXNvIGRlIEF1Z3VzdG8gQ3VyeSwgdW1hIHBvbMOtdGljYSBmaXNjYWwgbWFpcyByZXN0cml0aXZhIHBvZGUgcmVkdXppciBhIGRlbWFuZGEgYWdyZWdhZGEsIGXCoCBjb250cmlidWlyIHBhcmEgbWVub3JlcyBwcmVzc8O1ZXMgaW5mbGFjaW9uw6FyaWFzLiBQb3LDqW0sIMOpIGRpZsOtY2lsIHF1YW50aWZpY2FyIG8gZWZlaXRvIHNvYnJlIG8gSVBDQSBkZSAyMDI3LCBwb2lzIG8gcHJvZ3JhbWEgbsOjbyBlc3BlY2lmaWNhIGEgcmVkdcOnw6NvIGRlIGRlc3Blc2FzIG5lY2Vzc8OhcmlhIHBhcmEgYXRpbmdpciBvIG9iamV0aXZvLiBBbMOpbSBkYSBwcm9wb3N0YSBmaXNjYWwsIEN1cnkgcHJvcMO1ZSBhIGNyaWHDp8OjbyBkbyBCYW5jbyBFbXByZWVuZGVkb3IsIGNvbSB1bSBmdW5kbyBkZSBSXCQgMzAgYmlsaMO1ZXMgYSBSXCQgNTAgYmlsaMO1ZXMsIHZpc2FuZG8gZXhwYW5kaXIgbyBjcsOpZGl0byBwYXJhIHBlcXVlbm9zIGVtcHJlZW5kZWRvcmVzLiBDb25zZXF1ZW50ZW1lbnRlLCBvIGF1bWVudG8gZG8gaW52ZXN0aW1lbnRvIGUgZGEgZGVtYW5kYSBhZ3JlZ2FkYSBwb2RlcmlhIGV4ZXJjZXIgcHJlc3PDo28gc29icmUgb3MgcHJlw6dvcy4gQ29udHVkbywgY29tbyBvIHByb2dyYW1hIHBvc3N1aSBob3Jpem9udGUgZGUgZGV6IGFub3MsIG8gZWZlaXRvIGRlcGVuZGVyw6EgZG8gcml0bW8gZGEgY29uY2Vzc8OjbyBkbyBjcsOpZGl0byBlIGRlIHF1YW50byBkbyBmaW5hbmNpYW1lbnRvIHNlIHRyYW5zZm9ybWEgZW0gaW52ZXN0aW1lbnRvIGUgY29uc3VtbyBlbSAyMDI3Lg0KDQoNCiMgSW1wYWN0b3MgZmlzY2FpcyBzb2JyZSBhIHRyYWpldMOzcmlhIGRhIFNlbGljDQoNCkEgdGF4YSBTZWxpYyDDqSB1bWEgdmFyacOhdmVsIGRlIHBvbMOtdGljYSBtb25ldMOhcmlhLCDDqSBhIHRheGEgYsOhc2ljYSBkZSBqdXJvcyBkYSBlY29ub21pYSBicmFzaWxlaXJhIGUgY29uc3RpdHVpIG8gcHJpbmNpcGFsIGluc3RydW1lbnRvIHV0aWxpemFkbyBwZWxvIEJhbmNvIENlbnRyYWwgcGFyYSBjb250cm9sYXIgYSBpbmZsYcOnw6NvLiBQb3J0YW50bywgYXMgcHJvcG9zdGFzIGRvcyBjYW5kaWRhdG9zIG7Do28gZGV0ZXJtaW5hbSBkaXJldGFtZW50ZSBhIFNlbGljOiBlbGFzIHBvZGVtIGFsdGVyYXIgaW5mbGHDp8OjbywgZGVtYW5kYSBlIGV4cGVjdGF0aXZhcyBlLCBhc3NpbSwgbXVkYXIgbyBlc3Bhw6dvIHBhcmEgbWFub2JyYXMgZG8gQmFuY28gQ2VudHJhbC4gQXNzaW0sIGEgdHJhamV0w7NyaWEgZGUgcmVkdcOnw6NvIGRhIFNlbGljIGVzcGVyYWRhIHBhcmEgMjAyNyBkZXBlbmRlIGRhIGNvbnRpbnVpZGFkZSBkbyBwcm9jZXNzbyBkZSBxdWVkYSBkYSBpbmZsYcOnw6NvLg0KDQoqKkdyw6FmaWNvIDQ6KioNCmBgYHtyIGdyYWZpY28tc2VsaWN9DQpzZWxpYyA8LSByZWFkLmNzdjIoDQogIGZpbGUucGF0aChwYXN0YV9kYWRvcywgInNlbGljX3Nncy5jc3YiKSwNCiAgY2hlY2submFtZXMgPSBGQUxTRSwNCiAgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFDQopDQpuYW1lcyhzZWxpYylbMToyXSA8LSBjKCJkYXRhIiwgInNlbGljIikNCg0Kc2VsaWMgPC0gc2VsaWMgJT4lDQogIG11dGF0ZSgNCiAgICBkYXRhID0gZG15KGRhdGEpLA0KICAgIHNlbGljID0gYXMubnVtZXJpYyhnc3ViKCIsIiwgIi4iLCBzZWxpYywgZml4ZWQgPSBUUlVFKSkNCiAgKSAlPiUNCiAgZmlsdGVyKGRhdGEgPj0gYXMuRGF0ZSgiMjAyMi0wMS0wMSIpLCAhaXMubmEoc2VsaWMpKQ0KDQpoaWdoY2hhcnQodHlwZSA9ICJzdG9jayIpICU+JQ0KICBoY19hZGRfdGhlbWUodGVtYV9pYm1hY3JvKSAlPiUNCiAgaGNfYWRkX3NlcmllcygNCiAgICBzZWxpYywgdHlwZSA9ICJsaW5lIiwgaGNhZXMoeCA9IGRhdGEsIHkgPSBzZWxpYyksDQogICAgbmFtZSA9ICJNZXRhIFNlbGljIiwgY29sb3IgPSAiIzAwMkM1RSIsIGxpbmVXaWR0aCA9IDIsIHN0ZXAgPSAibGVmdCINCiAgKSAlPiUNCiAgaGNfcGxvdE9wdGlvbnMoc2VyaWVzID0gbGlzdChtYXJrZXIgPSBsaXN0KA0KICAgIGVuYWJsZWQgPSBGQUxTRSwNCiAgICBzdGF0ZXMgPSBsaXN0KGhvdmVyID0gbGlzdChlbmFibGVkID0gRkFMU0UpKQ0KICApKSkgJT4lDQogIGhjX3RpdGxlKHRleHQgPSAiRXZvbHXDp8OjbyBkYSBUYXhhIFNlbGljIikgJT4lDQogIGhjX3N1YnRpdGxlKHRleHQgPSAiVGF4YSBkZSBqdXJvcyAoJSBhLmEuKSB8IGRlei4gMjAyMSAtIGFnby4gMjAyNiIpICU+JQ0KICBoY195QXhpcyh0aXRsZSA9IGxpc3QodGV4dCA9IE5VTEwpLCBvcHBvc2l0ZSA9IEZBTFNFKSAlPiUNCiAgaGNfeEF4aXModHlwZSA9ICJkYXRldGltZSIpICU+JQ0KICBoY190b29sdGlwKA0KICAgIHNoYXJlZCA9IFRSVUUsDQogICAgdmFsdWVEZWNpbWFscyA9IDIsDQogICAgaGVhZGVyRm9ybWF0ID0gIjxiPntwb2ludC54OiVkLyVtLyVZfTwvYj48YnIvPiIsDQogICAgcG9pbnRGb3JtYXQgPSAiPGI+e3Nlcmllcy5uYW1lfTwvYj46IHtwb2ludC55Oi4yZn0lIGEuYS48YnIvPiINCiAgKSAlPiUNCiAgaGNfbmF2aWdhdG9yKGVuYWJsZWQgPSBGQUxTRSkgJT4lDQogIGhjX3Njcm9sbGJhcihlbmFibGVkID0gRkFMU0UpICU+JQ0KICBoY19yYW5nZVNlbGVjdG9yKGVuYWJsZWQgPSBGQUxTRSkgJT4lDQogIGhjX2V4cG9ydGluZyhlbmFibGVkID0gVFJVRSkgJT4lDQogIGhjX2NyZWRpdHMoDQogICAgZW5hYmxlZCA9IFRSVUUsDQogICAgdGV4dCA9ICJGb250ZTogQkNCL1NHUyB8IEdyw6FmaWNvOiBFbGFib3Jhw6fDo28gUHLDs3ByaWEgSWJNYWNybyBCSCINCiAgKSAlPiUNCiAgaGNfbGVnZW5kKGVuYWJsZWQgPSBUUlVFKQ0KYGBgDQoNCk5vIGNhc28gZGUgRmzDoXZpbyBCb2xzb25hcm8sIG9zIGVmZWl0b3Mgc29icmUgYSBTZWxpYyBkZXBlbmRlcmlhbSBwcmluY2lwYWxtZW50ZSBkbyByZXN1bHRhZG8gZmlzY2FsIGVmZXRpdmFtZW50ZSBvYnRpZG8gZSBzZXVzIGltcGFjdG9zIHNvYnJlIGEgaW5mbGHDp8OjbyBlIGV4cGVjdGF0aXZhcy4gQSBwcm9wb3N0YSBwcmV2w6ogcmVkdcOnw6NvIGRhIHRyaWJ1dGHDp8OjbywgbWFzIG7Do28gZXNwZWNpZmljYSBjb21wZW5zYcOnw6NvIGZpc2NhbDsgc2VuZG8gYXNzaW0sIG8gZWZlaXRvIHNvYnJlIGEgU2VsaWMgZGVwZW5kZXJpYSBkYSBleGVjdcOnw6NvIGRhcyBtZWRpZGFzLiBFbSBjb250cmFzdGUsIHVtYSBleHBhbnPDo28gZGEgZGVtYW5kYSBvdSB1bSBkw6lmaWNpdCBmaXNjYWwgc3VwZXJpb3IgYSBwcm9qZXRhZGEgcG9kZXJpYSBsaW1pdGFyIGVzc2UgZXNwYcOnby4gQXNzaW0sIGNhc28gYXMgbWVkaWRhcyBjb250cmlidWFtIHBhcmEgcmVkdXppciBhcyBwcmVzc8O1ZXMgaW5mbGFjaW9uw6FyaWFzLCBwb2RlcsOhIGhhdmVyIG1haW9yIGVzcGHDp28gcGFyYSByZWR1w6fDo28gZG8ganVyb3MuIFVtYSBtZW5vciBwcmVzc8OjbyBpbmZsYWNpb27DoXJpYSBwb2RlIGNvbnRyaWJ1aXIgcGFyYSBqdXJvcyBtYWlzIGJhaXhvcy4NCg0KU2VndW5kbyBhIHByb3Bvc3RhIGRlIEx1bGEsIGEgdHJhamV0w7NyaWEgZGEgU2VsaWMgZGVwZW5kZXJpYSB0YW1iw6ltIGRhIHN1YSBleGVjdcOnw6NvIGUgZG9zIHJlc3VsdGFkb3MgZWZldGl2b3Mgb2J0aWRvcy4gU2UgbyByZXN1bHRhZG8gZm9yIG1lbGhvciBxdWUgbyBlc3BlcmFkbywgcG9kZXLDoSBjb250cmlidWlyIHBhcmEgdW1hIHRyYWpldMOzcmlhIG1haXMgZmF2b3LDoXZlbCBkYSBpbmZsYcOnw6NvIGUgYW1wbGlhciBvIGVzcGHDp28gcGFyYSByZWR1w6fDo28gZG9zIGp1cm9zLiBFbSBzZW50aWRvIGNvbnRyw6FyaW8sIHJlc3VsdGFkb3MgZmlzY2FpcyBpbmZlcmlvcmVzIGFvcyBlc3BlcmFkb3MgcG9kZXJpYSBsaW1pdGFyIG8gZXNwYcOnbyBkZSBhw6fDo28uIA0KDQpKw6EgcGFyYSBDdXJ5LCBvcyBlZmVpdG9zIHNvYnJlIGEgU2VsaWMgZGVwZW5kZXJpYW0gZGEgbWFnbml0dWRlIGRvIGFqdXN0ZSBmaXNjYWwgZSBkZSBzZXVzIGltcGFjdG9zIHNvYnJlIGEgaW5mbGHDp8Ojby4gRW0gdW0gY2Vuw6FyaW8gZGUgY3VtcHJpbWVudG8gZGFzIG1lZGlkYXMgcmVkdWNpb25pc3RhcywgcG9kZXLDoSByZWR1emlyIHByZXNzw7VlcyBpbmZsYWNpb27DoXJpYXMgZSwgY29uc2VxdWVudGVtZW50ZSwgZmF2b3JlY2VyIHVtYSByZWR1w6fDo28gZGEgU2VsaWMuIFBvcsOpbSwgY29tbyBuw6NvIGZvaSBzdWZpY2llbnRlbWVudGUgcXVhbnRpZmljYWRhIGEgcmVkdcOnw6NvIGRhcyBkZXNwZXNhcyBuZWNlc3PDoXJpYSBwYXJhIGF0aW5naXIgbyBvYmpldGl2bywgbsOjbyDDqSBwb3Nzw612ZWwgbWVkaXIgbyBlZmVpdG8gc29icmUgYSBTZWxpYyBlbSAyMDI3Lg0KDQpQb3Igb3V0cm8gbGFkbywgYSBleHBhbnPDo28gZGUgY3LDqWRpdG8gcHJldmlzdGEgcGVsbyBCYW5jbyBFbXByZWVuZGVkb3IgcG9kZSBlc3RpbXVsYXIgaW52ZXN0aW1lbnRvcyBlIGRlbWFuZGEgYWdyZWdhZGEuIENhc28gZXNzZSBlc3TDrW11bG8gZ2VyZSBwcmVzc8O1ZXMgYWRpY2lvbmFpcyBzb2JyZSBhIGluZmxhw6fDo28sIG8gQmFuY28gQ2VudHJhbCBwb2RlIGVuY29udHJhciBtZW5vciBlc3Bhw6dvIHBhcmEgcmVkdXppciBhIFNlbGljIG5hIHRyYWpldMOzcmlhIGF0dWFsbWVudGUgZXNwZXJhZGEgcGFyYSAyMDI3Lg0KDQoNCiMgQ29uY2x1c8Ojbw0KDQpBcyBwcm9wb3N0YXMgYW5hbGlzYWRhcyBncmF2aXRhbSBlbSB0b3JubyBkZSBwb2zDrXRpY2FzIGZpc2NhaXMsIGNvbSBtZWRpZGFzIHZvbHRhZGFzIMOgIHJlZHXDp8OjbyBkbyBkw6lmaWNpdCBlIGRhIGTDrXZpZGEsIMOgIG1hbnV0ZW7Dp8OjbyBvdSByZWZvcm1hIGRvIGFyY2Fib3XDp28gZmlzY2FsIGF0dWFsIGUgw6AgY29udGludWlkYWRlIG91IGNyaWHDp8OjbyBkZSBwb2zDrXRpY2FzIGRlIGludmVzdGltZW50by4gU2VuZG8gYXNzaW0sIGVzc2FzIG1lZGlkYXMgcG9kZW0gZ2VyYXIgZGlmZXJlbnRlcyBpbXBhY3RvcyBzb2JyZSBvIHJ1bW8gZGEgZMOtdmlkYSBww7pibGljYSwgZGEgaW5mbGHDp8OjbyBlIGRhIFNlbGljIGVtIDIwMjcuIFBvcsOpbSwgb3MgZWZlaXRvcyBkYXMgcHJvcG9zdGFzIG7Do28gZGVwZW5kZW0gYXBlbmFzIGRvcyBvYmpldGl2b3MgYXByZXNlbnRhZG9zLCBtYXMgcHJpbmNpcGFsbWVudGUgZGUgY29tbyBhcyBtZWRpZGFzIHNlcsOjbyBpbXBsZW1lbnRhZGFzIGUgZmluYW5jaWFkYXMgZSBkYSBjYXBhY2lkYWRlIGRlIGNhZGEgY2FuZGlkYXRvIGRlIGFsY2Fuw6dhciBvcyByZXN1bHRhZG9zIGZpc2NhaXMgcHJldmlzdG9zLg0KDQpEaWFudGUgZGlzc28sIG1lZGlkYXMgZGUgY29udGVuw6fDo28gZGUgZ2FzdG9zIHBvZGVtIGNvbGFib3JhciBwYXJhIHJlZHV6aXIgcHJlc3PDtWVzIGluZmxhY2lvbsOhcmlhcyBlIGFtcGxpYXIgbyBlc3Bhw6dvIHBhcmEgYSByZWR1w6fDo28gZG9zIGp1cm9zLiBPcyBpbnZlc3RpbWVudG9zIHDDumJsaWNvcyBlIGEgZXhwYW5zw6NvIGRvIGNyw6lkaXRvIHBvZGVtIGVsZXZhciBhIGRlbWFuZGEgbm8gY3VydG8gcHJhem8sIGFpbmRhIHF1ZSB0YW1iw6ltIHBvc3NhbSBhbXBsaWFyIGEgY2FwYWNpZGFkZSBwcm9kdXRpdmEgbm8gbcOpZGlvIGUgbG9uZ28gcHJhem8uDQoNClNlbmRvIGFzc2ltLCBvIHByaW5jaXBhbCBlbGVtZW50byBkZSBpbmNlcnRlemEgcGFyYSAyMDI3IGVzdMOhIG5hIHBvc3NpYmlsaWRhZGUgZGUgb3MgcmVzdWx0YWRvcyBlZmV0aXZhbWVudGUgb2JzZXJ2YWRvcyBkaXZlcmdpcmVtIGRvIHBsYW5lamFtZW50byB1dGlsaXphZG8gY29tbyBiYXNlIHBhcmEgYXMgcHJvamXDp8O1ZXMgYXR1YWlzLiBBIHJlbGHDp8OjbyBlbnRyZSBwb2zDrXRpY2FzIGZpc2NhaXMsIGluZmxhw6fDo28gZSBwb2zDrXRpY2EgbW9uZXTDoXJpYSBmYXogY29tIHF1ZSB2YXJpYcOnw7VlcyBubyByZXN1bHRhZG8gZmlzY2FsIG91IG5hcyBleHBlY3RhdGl2YXMgcG9zc2FtIGluY2lkaXIgc29icmUgYSB0cmFqZXTDs3JpYSBkYSBkw612aWRhIGUgc29icmUgYSBwb3NzaWJpbGlkYWRlIGRlIHJlZHXDp8OjbyBkYSBTZWxpYy4gUG9ydGFudG8sIGEgYXZhbGlhw6fDo28gZGFzIHByb3Bvc3RhcyBkZXZlIHNlciBmZWl0YSBuw6NvIGFwZW5hcyBjb20gYmFzZSBubyBxdWUgZm9pIGRlY2xhcmFkbywgbWFzIHRhbWLDqW0gbmEgZm9ybWEgcGVsYSBxdWFsIHNlcsOjbyBpbXBsZW1lbnRhZGFzLg0KDQoNCiMgUmVmZXLDqm5jaWFzDQoNCkJBTkNPIENFTlRSQUwgRE8gQlJBU0lMLiBFeHBlY3RhdGl2YXMgZGUgbWVyY2FkbyDigJMgUmVsYXTDs3JpbyBGb2N1cyBkZSA0IGRlIHNldGVtYnJvIGRlIDIwMjYuIEJyYXPDrWxpYTogQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwsIDIwMjYuIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly93d3cuYmNiLmdvdi5ici9wdWJsaWNhY29lcy9mb2N1cy8wNDA5MjAyNj4uIEFjZXNzbyBlbTogMTAgc2V0LiAyMDI2Lg0KDQpCQU5DTyBDRU5UUkFMIERPIEJSQVNJTC4gTWV0YXMgcGFyYSBhIGluZmxhw6fDo28uIEJyYXPDrWxpYTogQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwuIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly93d3cuYmNiLmdvdi5ici9jb250cm9sZWluZmxhY2FvL21ldGFpbmZsYWNhbz4uIEFjZXNzbyBlbTogMTQgc2V0LiAyMDI2Lg0KDQpCQU5DTyBDRU5UUkFMIERPIEJSQVNJTC4gUHJlw6dvcy4gQnJhc8OtbGlhOiBCYW5jbyBDZW50cmFsIGRvIEJyYXNpbC4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3d3dy5iY2IuZ292LmJyL2VzdGF0aXN0aWNhcy9kZXRhbGhhbWVudG9HcmFmaWNvL2dyYWZpY29zZXN0YXRpc3RpY2FzL3ByZWNvcz4uIEFjZXNzbyBlbTogMTQgc2V0LiAyMDI2Lg0KDQpCQU5DTyBDRU5UUkFMIERPIEJSQVNJTC4gU2lzdGVtYSBHZXJlbmNpYWRvciBkZSBTw6lyaWVzIFRlbXBvcmFpcyAoU0dTKS4gQnJhc8OtbGlhOiBCYW5jbyBDZW50cmFsIGRvIEJyYXNpbC4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3d3dzMuYmNiLmdvdi5ici9zZ3NwdWIvY29uc3VsdGFydmFsb3Jlcy9jb25zdWx0YXJWYWxvcmVzU2VyaWVzLmRvP21ldGhvZD1jb25zdWx0YXJWYWxvcmVzPi4gQWNlc3NvIGVtOiAxMiBzZXQuIDIwMjYuDQoNCkJSQVNJTC4gQ8OibWFyYSBkb3MgRGVwdXRhZG9zLiBOb3ZvIEFyY2Fib3XDp28gRmlzY2FsLiBCcmFzw61saWE6IEPDom1hcmEgZG9zIERlcHV0YWRvcy4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3d3dy5jYW1hcmEubGVnLmJyL2ludGVybmV0L2FnZW5jaWEvaW5mb2dyYWZpY29zLWh0bWw1L25vdm8tYXJjYWJvdWNvLWZpc2NhbC9pbmRleC5odG1sPi4gQWNlc3NvIGVtOiAxNCBzZXQuIDIwMjYuDQoNCkJSQVNJTC4gQ2FzYSBDaXZpbCBkYSBQcmVzaWTDqm5jaWEgZGEgUmVww7pibGljYS4gTm92byBQQUM6IHRyYW5zcGFyw6puY2lhLiBCcmFzw61saWE6IENhc2EgQ2l2aWwuIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly93d3cuZ292LmJyL2Nhc2FjaXZpbC9wdC1ici9ub3ZvcGFjL3RyYW5zcGFyZW5jaWE+LiBBY2Vzc28gZW06IDE0IHNldC4gMjAyNi4NCg0KQlJBU0lMLiBQcmVzaWTDqm5jaWEgZGEgUmVww7pibGljYS4gTGVpIG7CuiAxNS4zMjE6IGFuZXhvcy4gQnJhc8OtbGlhOiBQcmVzaWTDqm5jaWEgZGEgUmVww7pibGljYSwgMjAyNS4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3d3dy5wbGFuYWx0by5nb3YuYnIvY2NpdmlsXzAzL19hdG8yMDIzLTIwMjYvMjAyNS9sZWkvYW5leG8vbGVpMTUzMjEtYW5leG9zLnBkZj4uIEFjZXNzbyBlbTogMTUgc2V0LiAyMDI2Lg0KDQpCUkFTSUwuIFRlc291cm8gTmFjaW9uYWwuIFJlbGF0w7NyaW8gZGUgUHJvamXDp8O1ZXMgRmlzY2Fpcy4gQnJhc8OtbGlhOiBUZXNvdXJvIE5hY2lvbmFsLiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vdGhvdC1hcnF1aXZvcy50ZXNvdXJvLmdvdi5ici9wdWJsaWNhY2FvLzU0OTcwPi4gQWNlc3NvIGVtOiAxNCBzZXQuIDIwMjYuDQoNCkJST0FEQ0FTVC4gUGxhbm8gZGUgZ292ZXJubyBkZSBGbMOhdmlvIHByZXbDqiBzdXBlcsOhdml0IHByaW3DoXJpbyBlIHJlZHXDp8OjbyBkYSBkw612aWRhIHDDumJsaWNhLiAyMDI2LiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vd3d3LmJyb2FkY2FzdC5jb20uYnIvdWx0aW1hcy1ub3RpY2lhcy9wbGFuby1kZS1nb3Zlcm5vLWRlLWZsYXZpby1wcmV2ZS1zdXBlcmF2aXQtcHJpbWFyaW8tZS1yZWR1Y2FvLWRhLWRpdmlkYS1wdWJsaWNhLz4uIEFjZXNzbyBlbTogMTQgc2V0LiAyMDI2Lg0KDQpDTk4gQlJBU0lMLiBGbMOhdmlvIHByb21ldGUgZXN0YWJpbGl6YXIgZMOtdmlkYSBww7pibGljYSwgbWFzIOKAnGVzY29uZGXigJ0gbWVkaWRhcyBmaXNjYWlzLiAyMDI2LiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vd3d3LmNubmJyYXNpbC5jb20uYnIvZWxlaWNvZXMvZmxhdmlvLXByb21ldGUtZXN0YWJpbGl6YXItZGl2aWRhLXB1YmxpY2EtbWFzLWVzY29uZGUtbWVkaWRhcy1maXNjYWlzLz4uIEFjZXNzbyBlbTogMTQgc2V0LiAyMDI2Lg0KDQpDVVJZLCBBdWd1c3RvLiBQbGFubyBkZSBHb3Zlcm5vIOKAkyBPIEJyYXNpbCBkb3MgTm9zc29zIFNvbmhvcy4gMjAyNi4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3N0YXRpYy5wb2RlcjM2MC5jb20uYnIvdXBsb2Fkcy8yMDI2LzA4L1BsYW5vX2dvdl9BdWd1c3RvX0N1cnlfMjAyNi5wZGY+LiBBY2Vzc28gZW06IDA5IHNldC4gMjAyNi4NCg0KRlVOREHDh8ODTyBHRVRVTElPIFZBUkdBUy4gSW5zdGl0dXRvIEJyYXNpbGVpcm8gZGUgRWNvbm9taWEgKEZHViBJQlJFKS4gSW5kaWNhZG9yIGRlIEluY2VydGV6YSBkYSBFY29ub21pYS4gUmlvIGRlIEphbmVpcm86IEZHViBJQlJFLiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vcG9ydGFsaWJyZS5mZ3YuYnIvaW5kaWNhZG9yLWRlLWluY2VydGV6YS1kYS1lY29ub21pYT4uIEFjZXNzbyBlbTogMTAgc2V0LiAyMDI2Lg0KDQpGVU5EQcOHw4NPIEdFVFVMSU8gVkFSR0FTLiBJbnN0aXR1dG8gQnJhc2lsZWlybyBkZSBFY29ub21pYSAoRkdWIElCUkUpLiBJbmRpY2Fkb3IgZGUgSW5jZXJ0ZXphIGRhIEVjb25vbWlhIHNvYmUgMCw1IHBvbnRvIGVtIGp1bmhvLiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vcG9ydGFsaWJyZS5mZ3YuYnIvbm90aWNpYXMvaW5kaWNhZG9yLWRlLWluY2VydGV6YS1kYS1lY29ub21pYS1zb2JlLTA1LXBvbnRvLWVtLWp1bmhvPi4gQWNlc3NvIGVtOiAxNCBzZXQuIDIwMjYuDQoNCkZVTkRBw4fDg08gR0VUVUxJTyBWQVJHQVMuIEluc3RpdHV0byBCcmFzaWxlaXJvIGRlIEVjb25vbWlhIChGR1YgSUJSRSkuIEluY2VydGV6YSBlY29uw7RtaWNhIGNyZXNjZSBlbSBhZ29zdG8uIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly9wb3J0YWxpYnJlLmZndi5ici9ub3RpY2lhcy9pbmNlcnRlemEtZWNvbm9taWNhLWNyZXNjZS1lbS1hZ29zdG8+LiBBY2Vzc28gZW06IDE0IHNldC4gMjAyNi4NCg0KRlVOREHDh8ODTyBHRVRVTElPIFZBUkdBUy4gSW5zdGl0dXRvIEJyYXNpbGVpcm8gZGUgRWNvbm9taWEgKEZHViBJQlJFKS4gSW5kaWNhZG9yIGRlIEluY2VydGV6YSBCcmFzaWwgRkdWIOKAkyBvdXR1YnJvIGRlIDIwMTguIFJpbyBkZSBKYW5laXJvOiBGR1YgSUJSRSwgMjAxOC4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3BvcnRhbGlicmUuZmd2LmJyL3NpdGVzL2RlZmF1bHQvZmlsZXMvMjAyMC0xMC9pbmRpY2Fkb3JfZGVfaW5jZXJ0ZXphX2JyYXNpbF9mZ3ZfcHJlc3MtcmVsZWFzZV9vdXQxOC5wZGY+LiBBY2Vzc28gZW06IDE0IHNldC4gMjAyNi4NCg0KRzEuIEFyY2Fib3XDp28gZmlzY2FsIGNvbSByZWdyYXMgYXR1YWlzIMOpIGluc3VzdGVudMOhdmVsLCBhcG9udGFtIGVzcGVjaWFsaXN0YXMgZW0gY29udGFzIHDDumJsaWNhcy4gMjAgYWJyLiAyMDI1LiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vZzEuZ2xvYm8uY29tL2Vjb25vbWlhL25vdGljaWEvMjAyNS8wNC8yMC9hcmNhYm91Y28tZmlzY2FsLWNvbS1yZWdyYXMtYXR1YWlzLWUtaW5zdXN0ZW50YXZlbC1hcG9udGFtLWVzcGVjaWFsaXN0YXMtZW0tY29udGFzLXB1YmxpY2FzLmdodG1sPi4gQWNlc3NvIGVtOiAxNCBzZXQuIDIwMjYuDQoNCklORk9NT05FWS4gQ2FtcGFuaGEgZGUgRmzDoXZpbyBwcmVwYXJhIHJlZ3JhIGNvbSBhcGVydG8gbWFpb3IgZGUgZ2FzdG9zIGVtIGNhc28gZGUgZMOtdmlkYSBhbHRhLiAyMDI2LiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vd3d3LmluZm9tb25leS5jb20uYnIvcG9saXRpY2EvY2FtcGFuaGEtZGUtZmxhdmlvLXByZXBhcmEtcmVncmEtY29tLWFwZXJ0by1tYWlvci1kZS1nYXN0b3MtZW0tY2Fzby1kZS1kaXZpZGEtYWx0YS8+LiBBY2Vzc28gZW06IDE0IHNldC4gMjAyNi4NCg0KUExBTk8gREUgR09WRVJOTyDigJMgRkzDgVZJTyBCT0xTT05BUk8uIDIwMjYuIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly9wbGFub2RlZ292ZXJubzIwMjYuY29tLmJyL3BsYW5vcy9mbGF2aW8tYm9sc29uYXJvLTBhMzQ3MjNiLnBkZiNwYWdlPTQzPi4gQWNlc3NvIGVtOiAwOSBzZXQuIDIwMjYuDQoNClBMQU5PIERFIEdPVkVSTk8g4oCTIExVSVogSU7DgUNJTyBMVUxBIERBIFNJTFZBLiAyMDI2LiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vcGxhbm9kZWdvdmVybm8yMDI2LmNvbS5ici9wbGFub3MvbHVsYS1lNDhmMWMyOS5wZGYjcGFnZT0xMj4uIEFjZXNzbyBlbTogMDkgc2V0LiAyMDI2Lg==