Carteira
Nacional de Habilitação(CNH)
O Que è a
CNH?
- A CNH é a sigla de Carteira Nacional de Habilitação, documento
obrigatório para conduzir um veículos automotores e elétricos no
território nacional.
- Segundo o CTB - Lei
nº9.503/1997, para poder ter a CNH são requisito
obrigatórios (Artigo 140):
- Ser Penalmente Imputável, ou seja, alguém que
responda pelos seus atos perante a Lei;
- Saber Ler e Escrever, ou seja, não depende de grau
de escolaridade, basta ser alfabetizado;
- Ter 18 anos Completo;
- Possuir Documento de Identificação: podendo ser
qualquer documento de identificação emitido por Órgão Público que tenha
fé pública (RG/ Carteira de Trabalho, Passaporte, ect.);
- Possuir Cadastro de Pessoa Física (CPF);
- Ter Cursado a Carga Horária e Ser Aprovado em todos
os Teste do Processo de habilitação:
- Aula Teórica de 45 horas;
- Aula Prática de Direção Veicular de 20 horas;
- Exame de Aptidão Físico;
- Exame Psicotécnico;
- Prova Teórica;
- Prova Prática de Direção Veicular;
- Fazer o Cadastro Biométrico em um DETRAN
É Possível
Tirar a CNH antes dos 18 anos?
No Brasil não é possível tirar a CNH antes dos 18 anos.
Porém, existem Projetos de Lei que sugerem alterar essa regra. Um
deles é o PL
nº3973/2019, que pretende alterar o Código de Trânsito
Brasileiro para autorizar a emissão de Permissão para Dirigir (PPD) a
partir dos dezesseis anos de idade.
Tenho 16 anos de idade e já sou emancipado. Posso tirar minha
CNH? A resposta é NÃO
- A legislação diz que o candidato tem que ser Penalmente
Imputável, e a maioridade que se adquire quando com a
emancipação não é uma Maioridade Penal, mas uma
Maioridade Civil.
- Nesse caso, mesmo sendo civilmente maior de idade, a pessoa não é
penalmente maior de idade, e por este motivo não é penalmente
imputável.
Quais os
Tipos de CNH?
Existem vários tipos de CNH em vigor no Brasil com destaque para os
ultimos 4 modelos que estavam e/ou estão em vigor.
- Modelo Emitido de 30 de março de 2006 até dezembro de 2016;
- Modelo Emitido de janeiro de 2017 até junho de 2019;
- Modelo Emitido a partir de julho de 2019.
- Modelo Emitido a partir de dezembro de 2021.
Mudanças
Siginificantes na CNH
Primeira
Mudança
Apresentada com novas cores e itens para dificultar a
falsificação, o modelo apresentado atendia à nova Resolução
nº598/2016 do Contran e foi a primeira das modificações
apresentadas.
Em maio 2017, a CNH recebeu um sistema de código que permitia ser
lido por câmeras de celular, o QR Code. A medida atendi
à Resolução
n°668/2017, na qual consta que a CNH deverá, a partir de
fevereiro de 2018, possuir códigos de barras bidimensionais, gerados a
partir de algoritmo específico, de propriedade do Denatran, armazenando
todas as informações contidas no documento.
Segunda
Mudança
- A nova CNH 2018 é chamada de Carteira Nacional de
Habilitação Eletrônica, ou CNH-e. Ela está
regulamentada pela Portaria
Nº 184/2017 do Denatran.
Terceira
Mudança
No dia 13 de dezembro de 2021, o Conselho Nacional de Trânsito
(Contran) publicou a Resolução
do CONTRAN nº886/2021., que apresenta a nova Carteira
Nacional de Habilitação (CNH).
O modelo vai entrar em vigor a partir de 1º de junho de 2022 e
substituirá a atual carteira. Porém, a troca não será obrigatória e
ocorrerá apenas para novas emissões.
A CNH atualizada adota novo visual e continua com o QR
Code. Outro detalhe é uma Tabela com os
Veículos que o motorista pode conduzir. A Carteira Nacional de
Habilitação poderá ser expedida de forma física ou digital.
Resumo
Estas mudanças permitem, portanto, que o agente de fiscalização
de trânsito ou qualquer pessoa, ao fazer a leitura do código, tenha
acesso aos dados do motorista, além daqueles apresentados pelo documento
de papel.
Isto irá ajudar em caso de falsificações em que a foto, por
exemplo, for modificada na CNH.
Quais as
Categorias da CNH?
De acordo com o CTB (Artigo 143), as categorias da
CNH são:
- Categoria A : Condutor de veículo motorizado de
duas ou três rodas, com ou sem carro lateral, com mais que 50 de
cilindrada;
- Categoria B : Condutor de veículos de quatro rodas,
com até 3,5 toneladas de peso bruto total e capacidade para até oito
passageiros, além do motorista – nessa categoria ainda é permitido
acoplar reboques e semirreboques, desde que não ultrapasse o peso ou
lotação máximos.
- Categoria C : Nessa categoria, os motoristas podem
dirigir todos os tipos de automóveis da categoria B, e também os
veículos de carga, com mais de 3,5 toneladas de peso bruto total, como
caminhões, tratores, máquinas agrícolas e de movimentação de carga.
- Categoria D : Com a carteira D, é possível dirigir
veículos para o transporte de passageiros que acomodam mais de 8
passageiros. Aqui, entram os ônibus, micro-ônibus e vans além dos
permitidos nas categorias B e C.
- Categoria E : O condutor com a CNH da categoria E
pode conduzir todos os veículos inclusos nos tipos B, C e D, além de
veículos com unidades acopladas que excedam 6 toneladas, como as
carretas e caminhões com reboques e semirreboques articulados.
Regras de
Manter a CNH Dentro da Lei?
- Não ultrapassar o limite de pontos estipulados (20/30/40);
- Não tomar Multas Auto Suspensivas (2 a 8 meses) tais como:
- Andar de Motocicleta Sem Capacete;
- Recusar a Fazer o Teste do Etilômetro ou qualquer outro exame
clínico;
- Dirigir acima de 50% da Velocidade Permitida;
Processo de
Renovação da CNH
O Que é a
Renovação da CNH?
- Renovação da CNH consiste no processo de solicitação de uma nova
carteira nacional de habilitação para os motoristas do estado de moradia
do condutor;
- O procedimento de Renovação deve ser realizado obrigatoriamente,
quando a CNH:
- Estiver perto de Vencer;
- Estiver Vencida a mais de 30 dias;
- Quando Precisa Incluir novas informações no Campo
Observação tais como exemplo;
- EAR (Exerce Atividade Remunerada);
- A (Obrigatório uso de lentes corretivas);
- B (Obrigatório uso de próteses auditivas);
- C (Obrigatório uso de acelerador à esquerda);
- Quando Precisa Incluir os Cursos Especializados e Obrigatórias
conforme a Resolução
Nº 789/2020:
- CETE (Curso de Transporte de Escolares);
- CETCP (Curso de Transporte Coletivo de
Passageiros);
- CETVE (Curso de Transporte de Veículos de
Emergência);
- CETPP (Curso de Transporte de Produtos
Perigosos);
- CETCI (Curso de Transporte de Carga
Indivisível);
- CEMTX (Curso de Transporte Remunerado de
Passageiros -Mototaxista);
- CEMTF (Curso de Transporte Remunerado de
Mercadorias- Motofrete);
- Vale ressaltar que o motorista ainda pode usar a CNH vencida, caso o
documento não tenha ultrapassado 30 dias após a data de vencimento;
Quem Precisa
Realizar a Renovação da CNH?
- Todos os motoristas com CNH emitidas nos 26 Estados e Distrito
Federal devem renovar o documento quando necessário, com validade em
âmbito Nacional.
- E o ano de 2021 trouxe novidades para o processo de renovação da CNH
– a Lei
14.071/2020 que entrou em vigor a partir de 12 de abril,
alterou pontos importantes.
Prazo de
Validade do Exame de Renovação da CNH
Com a alteração no Código de Trânsito Brasileiro (CTB) Lei
14.071/2020, o exame de aptidão física e mental deve ser
feito agora de acordo com os seguintes prazos:
- A cada 10 anos, para condutores com Idade de
18 a 50 anos;
- A cada 5 anos, para condutores com Idade de
51 a 70 anos;
- A cada 3 anos, para condutores com Idade de
71 anos em diante.
Esses são os prazos padrões estabelecidos pelo CTB, contudo o médico
pode Reduzir a Validade do Exame Médico, de acordo com as condições
físicas e mentais do motorista.
Onde Realizar
a Renovação da CNH
A renovação da CNH pode ser feita de três maneiras:
- Pela internet (a partir do site do Detran-Pa);
- Utilizando o aplicativo do Detran-Pa;
- Presencialmente, indo até aos Centro de Formação de Codnutores (CFC)
ou unidades de atendimento do Detran-Pa.
Renovação
via Internet
- Acesse o site do DETRAN-PA (www.detran.pa.gov.br), clique em
“CONDUTORES”> solicitar renovação da carteira de
Motorista;
- Clique no Botão “Solicitar”;
- Informe seu CPF e solicite sua renovação da
CNH;
- Será gerado um Boleto de Renovação da CNH. Basta
pagá-lo no Banco credenciado(Banpará);
- Realize a Captura das suas Digitais (BIOMETRIA),
registre uma Foto e faça uma assinatura digital;
- Basta agendar o Exame de Renovação da CNH;
- Agende Também os Exames Psicotécnicos e/ou
Toxicológicos, caso necessário;
- Faça os exames.
Renovação
via Unidade de Atendimento do DETRAN-PA
- Dirija-se até uma unidade de atendimento do Detran na sua
região;
- Agende um Horário para atendimento, o procedimento pode ser feito
pelo site do Detran-Pa;
- Apresente Documento Oficial com foto e
CPF. São válidos os seguintes documentos:
- CNH com foto;
- RG (emitidas em até 10 anos);
- Carteira de Trabalho (CT);
- Previdência Social (CTPS);
- Carteira de Órgãos ou Conselho de Classe (OAB, CRM,
CREA, etc.);
- Certificado Militar (reservista);
- Passaporte (emitido no Brasil);
- Policia Militar;
- Corpo de Bombeiros;
- Comando Militar
(Aeronáutica/Exército/Marinha);
- Leve um Comprovante de Endereço;
- Solicite a renovação da CNH;
- Será gerado um Boleto de Renovação da CNH. Basta pagá-lo no Banco
credenciado(Banpará);
- Realize a Captura das suas Digitais (BIOMETRIA), registre uma Foto e
faça uma assinatura digital;
- Basta agendar o Exame de Renovação da CNH;
- Agende Também os exames de EAR (Exerce Atividade Remunerada) e/ou
Toxicológico, caso necessário;
- Faça os exames.
Quais os
Valores pra Renovação da CNH?
De acordo com a Lei de Taxas do Detran-Pa Lei
nº9.158/2021), o valor de renovação da CNH é de:
- R$ 85,70 são para a emissão do papel moeda da
CNH;
- R$ 65,75 são para o exame de aptidão física e
mental;
- R$ 106,30 são para o exame de avaliação
psicológica, apenas quando solicitado pelo médico ou quando o motorista
exerce atividade remunerada com o veículo;
- R$ 150,00 são para o exame toxicológico, quando nas
categorias C, D ou E em laboratórios credenciados pelo
Denatran; QUAL.
Quais os
Problemas em Não Renovar a CNH
- Renovação da CNH é um compromisso a todos os motorista e é
obrigatório para conduzir veículos automotores em qualquer Estado do
Brasil.
- E não estar em dias a CNH, gera consequências negativas
estabelecidas pelo (CBT - Lei
nº9.503/1997) artigo 162:
- Dirigir um veículo com a CNH Vencida a mais de 30
dias corresponde à uma Infração Gravíssima,
cabendo uma multa no valor de R$293,47 e Sete
Pontos no prontuário do condutor.
- Medida Administrativa com Recolhimento da CNH e
Retenção do Veículo até que apresente um condutor
habilitado para dirigi-lo;
Perdi o Prazo
pra Renovar a CNH
- Deixei de renovar da CNH por um prazo de Até 4 anos e 11
meses, fique tranquilo, ainda há tempo de regularizar,
utilizando uma das opções explicadas anteriormente.
- Se a CNH estiver vencida Há + de 5 anos, será
necessário passar por um Curso de Atualização de 15 horas-aula, como
previsto na Resolução
Nº 789/2020.
LS0tDQp0aXRsZTogIlJlbm92YcOnw6NvIGRlIENOSDogdW0gR3VpYSBQcsOhdGljbyINCmF1dGhvcjoNCi0gbmFtZTogTcOBUklPIERJRUdPIFJPQ0hBIFZBTEVOVEUNCiAgYWZmaWxpYXRpb246IERFVFJBTi1QQQ0KICBlbWFpbDogbWFyaW8udmFsZW50ZUBkZXRyYW4ucGEuZ292LmJyDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCksICclZCAlQiwgJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIGhpZ2hsaWdodDogdGV4dG1hdGUNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRoZW1lOiBjZXJ1bGVhbg0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiA2DQogICAgdG9jX2Zsb2F0Og0KICAgICAgY29sbGFwc2VkOiB5ZXMNCiAgICAgIHNtb290aF9zY3JvbGw6IHllcw0KICAgIGtlZXBfbWQ6IHllcw0KICBwZGZfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6ICc2Jw0KaW5zdGl0dXRlOg0KYWJzdHJhY3Q6ICIgRXN0ZSByZWxhdMOzcmlvIGZvaSBwbGFuZWphZG8gcGFyYSBnZXJhciBpbmZvcm1hw6fDtWVzIGUgY29udHJpYnVpciBwYXJhIHVtIG1lbGhvciBwbGFuZWphbWVudG8gZSBvcmllbnRhw6fDo28gdMOpY25pY2Egc29icmUgbyBwYXNzbyBhIHBhc3NvIG5vIHByb2Nlc3NvIGRlIHJlbm92YcOnw6NvIGRhIENhcnRlaXJhIE5hY2lvbmFsIGRlIEhhYmlsaXRhw6fDo28oQ05IKSwgY29tIGJhc2VzIGVtIHJlc29sdcOnw7VlcyBkbyBDT05UUkFOLCBhcyBhdHVhbGl6YcOnw6NvZXMgcXVlbSB0cm91eGVyYW0gYSBMZWkgbsK6IDE0LjA3MSwgb3MgbW9kZWxvcyBkZSBzdXNwZW5zw6NvIGRvIERpcmVpdG8gZGUgRGlyaWdpciwgZSBvcyBhcnRpZ29zIGNvbXBsZW1lbnRhcmVzIGRvIENUQi4iDQotLS0NCg0KYGBgez1odG1sfQ0KPHN0eWxlPg0KYm9keXt0ZXh0LWFsaWduOiBqdXN0aWZ5fQ0KPC9zdHlsZT4NCmBgYA0KOjo6IHByb2dyZXNzDQo6Ojogey5wcm9ncmVzcy1iYXIgc3R5bGU9IndpZHRoOiAxMDAlOyJ9DQo6OjoNCjo6Og0KDQojICoqQ2FydGVpcmEgTmFjaW9uYWwgZGUgSGFiaWxpdGHDp8OjbyhDTkgpKioNCg0KIyMgKipPIFF1ZSDDqCBhIENOSD8qKg0KDQotICAgQSBDTkggw6kgYSBzaWdsYSBkZSBDYXJ0ZWlyYSBOYWNpb25hbCBkZSBIYWJpbGl0YcOnw6NvLCBkb2N1bWVudG8gb2JyaWdhdMOzcmlvIHBhcmEgY29uZHV6aXIgdW0gdmXDrWN1bG9zIGF1dG9tb3RvcmVzIGUgZWzDqXRyaWNvcyBubyB0ZXJyaXTDs3JpbyBuYWNpb25hbC4NCi0gICBTZWd1bmRvIG8gQ1RCIC0gWyoqTGVpIG7CujkuNTAzLzE5OTcqKl0oaHR0cDovL3d3dy5wbGFuYWx0by5nb3YuYnIvY2NpdmlsXzAzL2xlaXMvbDk1MDNjb21waWxhZG8uaHRtKSwgcGFyYSBwb2RlciB0ZXIgYSBDTkggc8OjbyByZXF1aXNpdG8gb2JyaWdhdMOzcmlvcyAoKipBcnRpZ28gMTQwKiopOg0KICAgIC0gICAqKlNlciBQZW5hbG1lbnRlIEltcHV0w6F2ZWwqKiwgb3Ugc2VqYSwgYWxndcOpbSBxdWUgcmVzcG9uZGEgcGVsb3Mgc2V1cyBhdG9zIHBlcmFudGUgYSBMZWk7DQogICAgLSAgICoqU2FiZXIgTGVyIGUgRXNjcmV2ZXIqKiwgb3Ugc2VqYSwgbsOjbyBkZXBlbmRlIGRlIGdyYXUgZGUgZXNjb2xhcmlkYWRlLCBiYXN0YSBzZXIgYWxmYWJldGl6YWRvOw0KICAgIC0gICAqKlRlciAxOCBhbm9zIENvbXBsZXRvKio7DQogICAgLSAgICoqUG9zc3VpciBEb2N1bWVudG8gZGUgSWRlbnRpZmljYcOnw6NvKio6IHBvZGVuZG8gc2VyIHF1YWxxdWVyIGRvY3VtZW50byBkZSBpZGVudGlmaWNhw6fDo28gZW1pdGlkbyBwb3Igw5NyZ8OjbyBQw7pibGljbyBxdWUgdGVuaGEgZsOpIHDDumJsaWNhIChSRy8gQ2FydGVpcmEgZGUgVHJhYmFsaG8sIFBhc3NhcG9ydGUsIGVjdC4pOw0KICAgIC0gICAqKlBvc3N1aXIgQ2FkYXN0cm8gZGUgUGVzc29hIEbDrXNpY2EqKiAoQ1BGKTsNCiAgICAtICAgKipUZXIgQ3Vyc2FkbyBhIENhcmdhIEhvcsOhcmlhIGUgU2VyIEFwcm92YWRvKiogZW0gdG9kb3Mgb3MgVGVzdGUgZG8gUHJvY2Vzc28gZGUgaGFiaWxpdGHDp8OjbzoNCiAgICAgICAgLSAgIEF1bGEgVGXDs3JpY2EgZGUgNDUgaG9yYXM7DQogICAgICAgIC0gICBBdWxhIFByw6F0aWNhIGRlIERpcmXDp8OjbyBWZWljdWxhciBkZSAyMCBob3JhczsNCiAgICAgICAgLSAgIEV4YW1lIGRlIEFwdGlkw6NvIEbDrXNpY287DQogICAgICAgIC0gICBFeGFtZSBQc2ljb3TDqWNuaWNvOw0KICAgICAgICAtICAgUHJvdmEgVGXDs3JpY2E7DQogICAgICAgIC0gICBQcm92YSBQcsOhdGljYSBkZSBEaXJlw6fDo28gVmVpY3VsYXI7DQogICAgLSAgICoqRmF6ZXIgbyBDYWRhc3RybyBCaW9tw6l0cmljbyBlbSB1bSBERVRSQU4qKg0KDQo6OjogcHJvZ3Jlc3MNCjo6OiB7LnByb2dyZXNzLWJhciBzdHlsZT0id2lkdGg6IDEwMCU7In0NCjo6Og0KOjo6DQoNCiMjIyAqKsOJIFBvc3PDrXZlbCBUaXJhciBhIENOSCBhbnRlcyBkb3MgMTggYW5vcz8qKg0KDQotICAgTm8gQnJhc2lsIG7Do28gw6kgcG9zc8OtdmVsIHRpcmFyIGEgQ05IIGFudGVzIGRvcyAxOCBhbm9zLg0KDQotICAgUG9yw6ltLCBleGlzdGVtIFByb2pldG9zIGRlIExlaSBxdWUgc3VnZXJlbSBhbHRlcmFyIGVzc2EgcmVncmEuIFVtIGRlbGVzIMOpIG8gWyoqUEwgbsK6Mzk3My8yMDE5KipdKGh0dHBzOi8vd3d3MjUuc2VuYWRvLmxlZy5ici93ZWIvYXRpdmlkYWRlL21hdGVyaWFzLy0vbWF0ZXJpYS8xMzc2NzQpLCBxdWUgcHJldGVuZGUgYWx0ZXJhciBvIEPDs2RpZ28gZGUgVHLDom5zaXRvIEJyYXNpbGVpcm8gcGFyYSBhdXRvcml6YXIgYSBlbWlzc8OjbyBkZSBQZXJtaXNzw6NvIHBhcmEgRGlyaWdpciAoUFBEKSBhIHBhcnRpciBkb3MgZGV6ZXNzZWlzIGFub3MgZGUgaWRhZGUuDQoNCi0gICBUZW5obyAxNiBhbm9zIGRlIGlkYWRlIGUgasOhIHNvdSBlbWFuY2lwYWRvLiBQb3NzbyB0aXJhciBtaW5oYSBDTkg/IEEgcmVzcG9zdGEgw6kgKipOw4NPKioNCg0KICAgIC0gICBBIGxlZ2lzbGHDp8OjbyBkaXogcXVlIG8gY2FuZGlkYXRvIHRlbSBxdWUgc2VyICoqUGVuYWxtZW50ZSBJbXB1dMOhdmVsKiosIGUgYSBtYWlvcmlkYWRlIHF1ZSBzZSBhZHF1aXJlIHF1YW5kbyBjb20gYSBlbWFuY2lwYcOnw6NvIG7Do28gw6kgdW1hICoqTWFpb3JpZGFkZSBQZW5hbCoqLCBtYXMgdW1hICoqTWFpb3JpZGFkZSBDaXZpbCoqLg0KICAgIC0gICBOZXNzZSBjYXNvLCBtZXNtbyBzZW5kbyBjaXZpbG1lbnRlIG1haW9yIGRlIGlkYWRlLCBhIHBlc3NvYSBuw6NvIMOpIHBlbmFsbWVudGUgbWFpb3IgZGUgaWRhZGUsIGUgcG9yIGVzdGUgbW90aXZvIG7Do28gw6kgcGVuYWxtZW50ZSBpbXB1dMOhdmVsLg0KDQo6OjogcHJvZ3Jlc3MNCjo6OiB7LnByb2dyZXNzLWJhciBzdHlsZT0id2lkdGg6IDEwMCU7In0NCjo6Og0KOjo6DQoNCiMjICoqUXVhaXMgb3MgVGlwb3MgZGUgQ05IKio/DQoNCkV4aXN0ZW0gdsOhcmlvcyB0aXBvcyBkZSBDTkggZW0gdmlnb3Igbm8gQnJhc2lsIGNvbSBkZXN0YXF1ZSBwYXJhIG9zIHVsdGltb3MgNCBtb2RlbG9zIHF1ZSBlc3RhdmFtIGUvb3UgZXN0w6NvIGVtIHZpZ29yLg0KDQotICAgTW9kZWxvIEVtaXRpZG8gZGUgMzAgZGUgbWFyw6dvIGRlIDIwMDYgYXTDqSBkZXplbWJybyBkZSAyMDE2Ow0KICAgIC0gICBbKipSZXNvbHXDp8OjbyBkbyBDT05UUkFOIG7CujE5Mi8yMDA2KiouXShodHRwOi8vd3d3LnNnYy5nb2lhcy5nb3YuYnIvdXBsb2FkL2FycXVpdm9zLzIwMTMtMTEvcmVzb2x1Y2FvXzE5Ml8wNi5wZGYpDQotICAgTW9kZWxvIEVtaXRpZG8gZGUgamFuZWlybyBkZSAyMDE3IGF0w6kganVuaG8gZGUgMjAxOTsNCiAgICAtICAgWyoqUmVzb2x1w6fDo28gZG8gQ09OVFJBTiBuwro1OTgvMjAxNioqLl0oaHR0cHM6Ly93d3cuZ292LmJyL2luZnJhZXN0cnV0dXJhL3B0LWJyL2Fzc3VudG9zL3RyYW5zaXRvL2NvbnRldWRvLWNvbnRyYW4vcmVzb2x1Y29lcy9yZXNvbHVjYW81OTgyMDE2Mi5wZGYpDQotICAgTW9kZWxvIEVtaXRpZG8gYSBwYXJ0aXIgZGUganVsaG8gZGUgMjAxOS4NCiAgICAtICAgWyoqUmVzb2x1w6fDo28gZG8gQ09OVFJBTiBuwro3NzUvMjAxOSoqLl0oaHR0cHM6Ly93d3cuZ292LmJyL2luZnJhZXN0cnV0dXJhL3B0LWJyL2Fzc3VudG9zL3RyYW5zaXRvL2NvbnRldWRvLWNvbnRyYW4vcmVzb2x1Y29lcy9yZXNvbHVjYW83NzUyMDE5LnBkZikNCi0gICBNb2RlbG8gRW1pdGlkbyBhIHBhcnRpciBkZSBkZXplbWJybyBkZSAyMDIxLg0KICAgIC0gICBbKipSZXNvbHXDp8OjbyBkbyBDT05UUkFOIG7Cujg4Ni8yMDIxKiouXShodHRwczovL3d3dy5nb3YuYnIvaW5mcmFlc3RydXR1cmEvcHQtYnIvYXNzdW50b3MvdHJhbnNpdG8vY29udGV1ZG8tY29udHJhbi9yZXNvbHVjb2VzL1Jlc29sdWNhbzg4NjIwMjEucGRmKQ0KDQojIyMgKipNdWRhbsOnYXMgU2lnaW5pZmljYW50ZXMgbmEgQ05IKioNCg0KIyMjIyAqKlByaW1laXJhIE11ZGFuw6dhKioNCg0KLSAgIEFwcmVzZW50YWRhIGNvbSBub3ZhcyBjb3JlcyBlIGl0ZW5zIHBhcmEgZGlmaWN1bHRhciBhIGZhbHNpZmljYcOnw6NvLCBvIG1vZGVsbyBhcHJlc2VudGFkbyBhdGVuZGlhIMOgIG5vdmEgWyoqUmVzb2x1w6fDo28gbsK6NTk4LzIwMTYqKl0oaHR0cDovL2FudGlnby5pbmZyYWVzdHJ1dHVyYS5nb3YuYnIvaW1hZ2VzL1Jlc29sdWNvZXMvUmVzb2x1Y2FvNTk4MjAxNjIucGRmKSBkbyBDb250cmFuIGUgZm9pIGEgcHJpbWVpcmEgZGFzIG1vZGlmaWNhw6fDtWVzIGFwcmVzZW50YWRhcy4NCg0KLSAgIEVtIG1haW8gMjAxNywgYSBDTkggcmVjZWJldSB1bSBzaXN0ZW1hIGRlIGPDs2RpZ28gcXVlIHBlcm1pdGlhIHNlciBsaWRvIHBvciBjw6JtZXJhcyBkZSBjZWx1bGFyLCBvICoqUVIgQ29kZSoqLiBBIG1lZGlkYSBhdGVuZGkgw6AgWyoqUmVzb2x1w6fDo28gbsKwNjY4LzIwMTcqKl0oaHR0cHM6Ly93d3cuZ292LmJyL2luZnJhZXN0cnV0dXJhL3B0LWJyL2Fzc3VudG9zL3RyYW5zaXRvL2NvbnRldWRvLWNvbnRyYW4vcmVzb2x1Y29lcy9yZXNvbHVjYW82NjgyMDE3LnBkZiksIG5hIHF1YWwgY29uc3RhIHF1ZSBhIENOSCBkZXZlcsOhLCBhIHBhcnRpciBkZSBmZXZlcmVpcm8gZGUgMjAxOCwgcG9zc3VpciBjw7NkaWdvcyBkZSBiYXJyYXMgYmlkaW1lbnNpb25haXMsIGdlcmFkb3MgYSBwYXJ0aXIgZGUgYWxnb3JpdG1vIGVzcGVjw61maWNvLCBkZSBwcm9wcmllZGFkZSBkbyBEZW5hdHJhbiwgYXJtYXplbmFuZG8gdG9kYXMgYXMgaW5mb3JtYcOnw7VlcyBjb250aWRhcyBubyBkb2N1bWVudG8uDQoNCiMjIyMgKipTZWd1bmRhIE11ZGFuw6dhKioNCg0KLSAgIEEgbm92YSBDTkggMjAxOCDDqSBjaGFtYWRhIGRlICoqQ2FydGVpcmEgTmFjaW9uYWwgZGUgSGFiaWxpdGHDp8OjbyBFbGV0csO0bmljYSoqLCBvdSAqKkNOSC1lKiouIEVsYSBlc3TDoSByZWd1bGFtZW50YWRhIHBlbGEgWyoqUG9ydGFyaWEgTsK6IDE4NC8yMDE3KipdKGh0dHBzOi8vd3d3Lmdvdi5ici9pbmZyYWVzdHJ1dHVyYS9wdC1ici9hc3N1bnRvcy90cmFuc2l0by9hcnF1aXZvcy1zZW5hdHJhbi9wb3J0YXJpYXMvMjAxNy9wb3J0YXJpYTE4NDIwMTcucGRmKSBkbyBEZW5hdHJhbi4NCg0KIyMjIyAqKlRlcmNlaXJhIE11ZGFuw6dhKioNCg0KLSAgIE5vIGRpYSAxMyBkZSBkZXplbWJybyBkZSAyMDIxLCBvIENvbnNlbGhvIE5hY2lvbmFsIGRlIFRyw6Juc2l0byAoQ29udHJhbikgcHVibGljb3UgYSBbKipSZXNvbHXDp8OjbyBkbyBDT05UUkFOIG7Cujg4Ni8yMDIxKiouXShodHRwczovL3d3dy5nb3YuYnIvaW5mcmFlc3RydXR1cmEvcHQtYnIvYXNzdW50b3MvdHJhbnNpdG8vY29udGV1ZG8tY29udHJhbi9yZXNvbHVjb2VzL1Jlc29sdWNhbzg4NjIwMjEucGRmKSwgcXVlIGFwcmVzZW50YSBhIG5vdmEgQ2FydGVpcmEgTmFjaW9uYWwgZGUgSGFiaWxpdGHDp8OjbyAoQ05IKS4NCg0KLSAgIE8gbW9kZWxvIHZhaSBlbnRyYXIgZW0gdmlnb3IgYSBwYXJ0aXIgZGUgMcK6IGRlIGp1bmhvIGRlIDIwMjIgZSBzdWJzdGl0dWlyw6EgYSBhdHVhbCBjYXJ0ZWlyYS4gUG9yw6ltLCBhIHRyb2NhIG7Do28gc2Vyw6Egb2JyaWdhdMOzcmlhIGUgb2NvcnJlcsOhIGFwZW5hcyBwYXJhIG5vdmFzIGVtaXNzw7Vlcy4NCg0KLSAgIEEgQ05IIGF0dWFsaXphZGEgYWRvdGEgbm92byB2aXN1YWwgZSBjb250aW51YSBjb20gbyAqKlFSIENvZGUqKi4gT3V0cm8gZGV0YWxoZSDDqSB1bWEgKipUYWJlbGEgY29tIG9zIFZlw61jdWxvcyoqIHF1ZSBvIG1vdG9yaXN0YSBwb2RlIGNvbmR1emlyLiBBIENhcnRlaXJhIE5hY2lvbmFsIGRlIEhhYmlsaXRhw6fDo28gcG9kZXLDoSBzZXIgZXhwZWRpZGEgZGUgZm9ybWEgZsOtc2ljYSBvdSBkaWdpdGFsLg0KDQojIyMjICoqUmVzdW1vKioNCg0KLSAgIEVzdGFzIG11ZGFuw6dhcyBwZXJtaXRlbSwgcG9ydGFudG8sIHF1ZSBvIGFnZW50ZSBkZSBmaXNjYWxpemHDp8OjbyBkZSB0csOibnNpdG8gb3UgcXVhbHF1ZXIgcGVzc29hLCBhbyBmYXplciBhIGxlaXR1cmEgZG8gY8OzZGlnbywgdGVuaGEgYWNlc3NvIGFvcyBkYWRvcyBkbyBtb3RvcmlzdGEsIGFsw6ltIGRhcXVlbGVzIGFwcmVzZW50YWRvcyBwZWxvIGRvY3VtZW50byBkZSBwYXBlbC4NCg0KLSAgIElzdG8gaXLDoSBhanVkYXIgZW0gY2FzbyBkZSBmYWxzaWZpY2HDp8O1ZXMgZW0gcXVlIGEgZm90bywgcG9yIGV4ZW1wbG8sIGZvciBtb2RpZmljYWRhIG5hIENOSC4NCg0KOjo6IHByb2dyZXNzDQo6Ojogey5wcm9ncmVzcy1iYXIgc3R5bGU9IndpZHRoOiAxMDAlOyJ9DQo6OjoNCjo6Og0KDQojIyAqKlF1YWlzIGFzIENhdGVnb3JpYXMgZGEgQ05IKio/DQoNCkRlIGFjb3JkbyBjb20gbyBDVEIgKCoqQXJ0aWdvIDE0MyoqKSwgYXMgY2F0ZWdvcmlhcyBkYSBDTkggc8OjbzoNCg0KLSAgICoqQ2F0ZWdvcmlhIEEqKiA6IENvbmR1dG9yIGRlIHZlw61jdWxvIG1vdG9yaXphZG8gZGUgZHVhcyBvdSB0csOqcyByb2RhcywgY29tIG91IHNlbSBjYXJybyBsYXRlcmFsLCBjb20gbWFpcyBxdWUgNTAgZGUgY2lsaW5kcmFkYTsNCi0gICAqKkNhdGVnb3JpYSBCKiogOiBDb25kdXRvciBkZSB2ZcOtY3Vsb3MgZGUgcXVhdHJvIHJvZGFzLCBjb20gYXTDqSAzLDUgdG9uZWxhZGFzIGRlIHBlc28gYnJ1dG8gdG90YWwgZSBjYXBhY2lkYWRlIHBhcmEgYXTDqSBvaXRvIHBhc3NhZ2Vpcm9zLCBhbMOpbSBkbyBtb3RvcmlzdGEgLS0gbmVzc2EgY2F0ZWdvcmlhIGFpbmRhIMOpIHBlcm1pdGlkbyBhY29wbGFyIHJlYm9xdWVzIGUgc2VtaXJyZWJvcXVlcywgZGVzZGUgcXVlIG7Do28gdWx0cmFwYXNzZSBvIHBlc28gb3UgbG90YcOnw6NvIG3DoXhpbW9zLg0KLSAgICoqQ2F0ZWdvcmlhIEMqKiA6IE5lc3NhIGNhdGVnb3JpYSwgb3MgbW90b3Jpc3RhcyBwb2RlbSBkaXJpZ2lyIHRvZG9zIG9zIHRpcG9zIGRlIGF1dG9tw7N2ZWlzIGRhIGNhdGVnb3JpYSBCLCBlIHRhbWLDqW0gb3MgdmXDrWN1bG9zIGRlIGNhcmdhLCBjb20gbWFpcyBkZSAzLDUgdG9uZWxhZGFzIGRlIHBlc28gYnJ1dG8gdG90YWwsIGNvbW8gY2FtaW5ow7VlcywgdHJhdG9yZXMsIG3DoXF1aW5hcyBhZ3LDrWNvbGFzIGUgZGUgbW92aW1lbnRhw6fDo28gZGUgY2FyZ2EuDQotICAgKipDYXRlZ29yaWEgRCoqIDogQ29tIGEgY2FydGVpcmEgRCwgw6kgcG9zc8OtdmVsIGRpcmlnaXIgdmXDrWN1bG9zIHBhcmEgbyB0cmFuc3BvcnRlIGRlIHBhc3NhZ2Vpcm9zIHF1ZSBhY29tb2RhbSBtYWlzIGRlIDggcGFzc2FnZWlyb3MuIEFxdWksIGVudHJhbSBvcyDDtG5pYnVzLCBtaWNyby3DtG5pYnVzIGUgdmFucyBhbMOpbSBkb3MgcGVybWl0aWRvcyBuYXMgY2F0ZWdvcmlhcyBCIGUgQy4NCi0gICAqKkNhdGVnb3JpYSBFKiogOiBPIGNvbmR1dG9yIGNvbSBhIENOSCBkYSBjYXRlZ29yaWEgRSBwb2RlIGNvbmR1emlyIHRvZG9zIG9zIHZlw61jdWxvcyBpbmNsdXNvcyBub3MgdGlwb3MgQiwgQyBlIEQsIGFsw6ltIGRlIHZlw61jdWxvcyBjb20gdW5pZGFkZXMgYWNvcGxhZGFzIHF1ZSBleGNlZGFtIDYgdG9uZWxhZGFzLCBjb21vIGFzIGNhcnJldGFzIGUgY2FtaW5ow7VlcyBjb20gcmVib3F1ZXMgZSBzZW1pcnJlYm9xdWVzIGFydGljdWxhZG9zLg0KDQo6OjogcHJvZ3Jlc3MNCjo6OiB7LnByb2dyZXNzLWJhciBzdHlsZT0id2lkdGg6IDEwMCU7In0NCjo6Og0KOjo6DQoNCiMjICoqUmVncmFzIGRlIE1hbnRlciBhIENOSCBEZW50cm8gZGEgTGVpPyoqDQoNCi0gICBOw6NvIHVsdHJhcGFzc2FyIG8gbGltaXRlIGRlIHBvbnRvcyBlc3RpcHVsYWRvcyAoMjAvMzAvNDApOw0KLSAgIE7Do28gdG9tYXIgTXVsdGFzIEF1dG8gU3VzcGVuc2l2YXMgKDIgYSA4IG1lc2VzKSB0YWlzIGNvbW86DQogICAgLSAgIEFuZGFyIGRlIE1vdG9jaWNsZXRhIFNlbSBDYXBhY2V0ZTsNCiAgICAtICAgUmVjdXNhciBhIEZhemVyIG8gVGVzdGUgZG8gRXRpbMO0bWV0cm8gb3UgcXVhbHF1ZXIgb3V0cm8gZXhhbWUgY2zDrW5pY287DQogICAgLSAgIERpcmlnaXIgYWNpbWEgZGUgNTAlIGRhIFZlbG9jaWRhZGUgUGVybWl0aWRhOw0KDQo6OjogcHJvZ3Jlc3MNCjo6OiB7LnByb2dyZXNzLWJhciBzdHlsZT0id2lkdGg6IDEwMCU7In0NCjo6Og0KOjo6DQoNCiMgKipQcm9jZXNzbyBkZSBSZW5vdmHDp8OjbyBkYSBDTkgqKg0KDQojIyAqKk8gUXVlIMOpIGEgUmVub3Zhw6fDo28gZGEgQ05IPyoqDQoNCi0gICBSZW5vdmHDp8OjbyBkYSBDTkggY29uc2lzdGUgbm8gcHJvY2Vzc28gZGUgc29saWNpdGHDp8OjbyBkZSB1bWEgbm92YSBjYXJ0ZWlyYSBuYWNpb25hbCBkZSBoYWJpbGl0YcOnw6NvIHBhcmEgb3MgbW90b3Jpc3RhcyBkbyBlc3RhZG8gZGUgbW9yYWRpYSBkbyBjb25kdXRvcjsNCi0gICBPIHByb2NlZGltZW50byBkZSBSZW5vdmHDp8OjbyBkZXZlIHNlciByZWFsaXphZG8gb2JyaWdhdG9yaWFtZW50ZSwgcXVhbmRvIGEgQ05IOg0KICAgIC0gICBFc3RpdmVyIHBlcnRvIGRlIFZlbmNlcjsNCiAgICAtICAgRXN0aXZlciBWZW5jaWRhIGEgbWFpcyBkZSAzMCBkaWFzOw0KICAgIC0gICBRdWFuZG8gUHJlY2lzYSBJbmNsdWlyIG5vdmFzIGluZm9ybWHDp8O1ZXMgbm8gKipDYW1wbyBPYnNlcnZhw6fDo28qKiB0YWlzIGNvbW8gZXhlbXBsbzsNCiAgICAgICAgLSAgICoqRUFSKiogKEV4ZXJjZSBBdGl2aWRhZGUgUmVtdW5lcmFkYSk7DQogICAgICAgIC0gICAqKkEqKiAoT2JyaWdhdMOzcmlvIHVzbyBkZSBsZW50ZXMgY29ycmV0aXZhcyk7DQogICAgICAgIC0gICAqKkIqKiAoT2JyaWdhdMOzcmlvIHVzbyBkZSBwcsOzdGVzZXMgYXVkaXRpdmFzKTsNCiAgICAgICAgLSAgICoqQyoqIChPYnJpZ2F0w7NyaW8gdXNvIGRlIGFjZWxlcmFkb3Igw6AgZXNxdWVyZGEpOw0KICAgIC0gICBRdWFuZG8gUHJlY2lzYSBJbmNsdWlyIG9zIEN1cnNvcyBFc3BlY2lhbGl6YWRvcyBlIE9icmlnYXTDs3JpYXMgY29uZm9ybWUgYSBbKipSZXNvbHXDp8OjbyBOwrogNzg5LzIwMjAqKl0oaHR0cHM6Ly93d3cuaW4uZ292LmJyL2VuL3dlYi9kb3UvLS9yZXNvbHVjYW8tbi03ODktZGUtMTgtZGUtanVuaG8tZGUtMjAyMC0yNjMxODU2NDgpOg0KICAgICAgICAtICAgKipDRVRFKiogKEN1cnNvIGRlIFRyYW5zcG9ydGUgZGUgRXNjb2xhcmVzKTsNCiAgICAgICAgLSAgICoqQ0VUQ1AqKiAoQ3Vyc28gZGUgVHJhbnNwb3J0ZSBDb2xldGl2byBkZSBQYXNzYWdlaXJvcyk7DQogICAgICAgIC0gICAqKkNFVFZFKiogKEN1cnNvIGRlIFRyYW5zcG9ydGUgZGUgVmXDrWN1bG9zIGRlIEVtZXJnw6puY2lhKTsNCiAgICAgICAgLSAgICoqQ0VUUFAqKiAoQ3Vyc28gZGUgVHJhbnNwb3J0ZSBkZSBQcm9kdXRvcyBQZXJpZ29zb3MpOw0KICAgICAgICAtICAgKipDRVRDSSoqIChDdXJzbyBkZSBUcmFuc3BvcnRlIGRlIENhcmdhIEluZGl2aXPDrXZlbCk7DQogICAgICAgIC0gICAqKkNFTVRYKiogKEN1cnNvIGRlIFRyYW5zcG9ydGUgUmVtdW5lcmFkbyBkZSBQYXNzYWdlaXJvcyAtKipNb3RvdGF4aXN0YSoqKTsNCiAgICAgICAgLSAgICoqQ0VNVEYqKiAoQ3Vyc28gZGUgVHJhbnNwb3J0ZSBSZW11bmVyYWRvIGRlIE1lcmNhZG9yaWFzLSAqKk1vdG9mcmV0ZSoqKTsNCiAgICAtICAgVmFsZSByZXNzYWx0YXIgcXVlIG8gbW90b3Jpc3RhIGFpbmRhIHBvZGUgdXNhciBhIENOSCB2ZW5jaWRhLCBjYXNvIG8gZG9jdW1lbnRvIG7Do28gdGVuaGEgdWx0cmFwYXNzYWRvIDMwIGRpYXMgYXDDs3MgYSBkYXRhIGRlIHZlbmNpbWVudG87DQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KIyMgKipRdWVtIFByZWNpc2EgUmVhbGl6YXIgYSBSZW5vdmHDp8OjbyBkYSBDTkg/KioNCg0KLSAgIFRvZG9zIG9zIG1vdG9yaXN0YXMgY29tIENOSCBlbWl0aWRhcyBub3MgMjYgRXN0YWRvcyBlIERpc3RyaXRvIEZlZGVyYWwgZGV2ZW0gcmVub3ZhciBvIGRvY3VtZW50byBxdWFuZG8gbmVjZXNzw6FyaW8sIGNvbSB2YWxpZGFkZSBlbSDDom1iaXRvIE5hY2lvbmFsLg0KLSAgIEUgbyBhbm8gZGUgMjAyMSB0cm91eGUgbm92aWRhZGVzIHBhcmEgbyBwcm9jZXNzbyBkZSByZW5vdmHDp8OjbyBkYSBDTkggLS0gYSBbKipMZWkgMTQuMDcxLzIwMjAqKl0oaHR0cDovL3d3dy5wbGFuYWx0by5nb3YuYnIvY2NpdmlsXzAzL19hdG8yMDE5LTIwMjIvMjAyMC9sZWkvbDE0MDcxLmh0bSkgcXVlIGVudHJvdSBlbSB2aWdvciBhIHBhcnRpciBkZSAxMiBkZSBhYnJpbCwgYWx0ZXJvdSBwb250b3MgaW1wb3J0YW50ZXMuDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KIyMgKipQcmF6byBkZSBWYWxpZGFkZSBkbyBFeGFtZSBkZSBSZW5vdmHDp8OjbyBkYSBDTkgqKg0KDQpDb20gYSBhbHRlcmHDp8OjbyBubyBDw7NkaWdvIGRlIFRyw6Juc2l0byBCcmFzaWxlaXJvIChDVEIpIFsqKkxlaSAxNC4wNzEvMjAyMCoqXShodHRwOi8vd3d3LnBsYW5hbHRvLmdvdi5ici9jY2l2aWxfMDMvX2F0bzIwMTktMjAyMi8yMDIwL2xlaS9sMTQwNzEuaHRtKSwgbyBleGFtZSBkZSBhcHRpZMOjbyBmw61zaWNhIGUgbWVudGFsIGRldmUgc2VyIGZlaXRvIGFnb3JhIGRlIGFjb3JkbyBjb20gb3Mgc2VndWludGVzIHByYXpvczoNCg0KLSAgIEEgY2FkYSAqKjEwIGFub3MqKiwgcGFyYSBjb25kdXRvcmVzIGNvbSBJZGFkZSBkZSAqKjE4IGEgNTAgYW5vcyoqOw0KLSAgIEEgY2FkYSAqKjUgYW5vcyoqLCBwYXJhIGNvbmR1dG9yZXMgY29tIElkYWRlIGRlICoqNTEgYSA3MCBhbm9zKio7DQotICAgQSBjYWRhICoqMyBhbm9zKiosIHBhcmEgY29uZHV0b3JlcyBjb20gSWRhZGUgZGUgKio3MSBhbm9zIGVtIGRpYW50ZSoqLg0KDQpFc3NlcyBzw6NvIG9zIHByYXpvcyBwYWRyw7VlcyBlc3RhYmVsZWNpZG9zIHBlbG8gQ1RCLCBjb250dWRvIG8gbcOpZGljbyBwb2RlIFJlZHV6aXIgYSBWYWxpZGFkZSBkbyBFeGFtZSBNw6lkaWNvLCBkZSBhY29yZG8gY29tIGFzIGNvbmRpw6fDtWVzIGbDrXNpY2FzIGUgbWVudGFpcyBkbyBtb3RvcmlzdGEuDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KIyMgKipPbmRlIFJlYWxpemFyIGEgUmVub3Zhw6fDo28gZGEgQ05IKioNCg0KQSByZW5vdmHDp8OjbyBkYSBDTkggcG9kZSBzZXIgZmVpdGEgZGUgdHLDqnMgbWFuZWlyYXM6DQoNCi0gICBQZWxhIGludGVybmV0IChhIHBhcnRpciBkbyBzaXRlIGRvIERldHJhbi1QYSk7DQotICAgVXRpbGl6YW5kbyBvIGFwbGljYXRpdm8gZG8gRGV0cmFuLVBhOw0KLSAgIFByZXNlbmNpYWxtZW50ZSwgaW5kbyBhdMOpIGFvcyBDZW50cm8gZGUgRm9ybWHDp8OjbyBkZSBDb2RudXRvcmVzIChDRkMpIG91IHVuaWRhZGVzIGRlIGF0ZW5kaW1lbnRvIGRvIERldHJhbi1QYS4NCg0KOjo6IHByb2dyZXNzDQo6Ojogey5wcm9ncmVzcy1iYXIgc3R5bGU9IndpZHRoOiAxMDAlOyJ9DQo6OjoNCjo6Og0KDQojIyMgKipSZW5vdmHDp8OjbyB2aWEgSW50ZXJuZXQqKg0KDQotICAgQWNlc3NlIG8gc2l0ZSBkbyBERVRSQU4tUEEgKHd3dy5kZXRyYW4ucGEuZ292LmJyKSwgY2xpcXVlIGVtICIqKkNPTkRVVE9SRVMqKiJcPiBzb2xpY2l0YXIgcmVub3Zhw6fDo28gZGEgY2FydGVpcmEgZGUgTW90b3Jpc3RhOw0KLSAgIENsaXF1ZSBubyBCb3TDo28gIioqU29saWNpdGFyKioiOw0KLSAgIEluZm9ybWUgc2V1ICoqQ1BGKiogZSBzb2xpY2l0ZSBzdWEgcmVub3Zhw6fDo28gZGEgQ05IOw0KLSAgIFNlcsOhIGdlcmFkbyB1bSAqKkJvbGV0byoqIGRlIFJlbm92YcOnw6NvIGRhIENOSC4gQmFzdGEgcGFnw6EtbG8gbm8gQmFuY28gY3JlZGVuY2lhZG8oKipCYW5wYXLDoSoqKTsNCi0gICBSZWFsaXplIGEgQ2FwdHVyYSBkYXMgc3VhcyBEaWdpdGFpcyAoKipCSU9NRVRSSUEqKiksIHJlZ2lzdHJlIHVtYSBGb3RvIGUgZmHDp2EgdW1hIGFzc2luYXR1cmEgZGlnaXRhbDsNCi0gICBCYXN0YSBhZ2VuZGFyIG8gKipFeGFtZSBkZSBSZW5vdmHDp8OjbyBkYSBDTkgqKjsNCi0gICBBZ2VuZGUgVGFtYsOpbSBvcyAqKkV4YW1lcyBQc2ljb3TDqWNuaWNvcyBlL291IFRveGljb2zDs2dpY29zKiosIGNhc28gbmVjZXNzw6FyaW87DQotICAgRmHDp2Egb3MgZXhhbWVzLg0KDQo6OjogcHJvZ3Jlc3MNCjo6OiB7LnByb2dyZXNzLWJhciBzdHlsZT0id2lkdGg6IDEwMCU7In0NCjo6Og0KOjo6DQoNCiMjIyAqKlJlbm92YcOnw6NvIHZpYSBVbmlkYWRlIGRlIEF0ZW5kaW1lbnRvIGRvIERFVFJBTi1QQSoqDQoNCi0gICBEaXJpamEtc2UgYXTDqSB1bWEgdW5pZGFkZSBkZSBhdGVuZGltZW50byBkbyBEZXRyYW4gbmEgc3VhIHJlZ2nDo287DQotICAgQWdlbmRlIHVtIEhvcsOhcmlvIHBhcmEgYXRlbmRpbWVudG8sIG8gcHJvY2VkaW1lbnRvIHBvZGUgc2VyIGZlaXRvIHBlbG8gc2l0ZSBkbyBEZXRyYW4tUGE7DQotICAgQXByZXNlbnRlICoqRG9jdW1lbnRvIE9maWNpYWwgY29tIGZvdG8qKiBlICoqQ1BGKiouIFPDo28gdsOhbGlkb3Mgb3Mgc2VndWludGVzIGRvY3VtZW50b3M6DQogICAgLSAgICoqQ05IKiogY29tIGZvdG87DQogICAgLSAgICoqUkcqKiAoZW1pdGlkYXMgZW0gYXTDqSAxMCBhbm9zKTsNCiAgICAtICAgKipDYXJ0ZWlyYSBkZSBUcmFiYWxobyoqIChDVCk7DQogICAgLSAgICoqUHJldmlkw6puY2lhIFNvY2lhbCoqIChDVFBTKTsNCiAgICAtICAgKipDYXJ0ZWlyYSBkZSDDk3Jnw6NvcyBvdSBDb25zZWxobyBkZSBDbGFzc2UqKiAoT0FCLCBDUk0sIENSRUEsIGV0Yy4pOw0KICAgIC0gICAqKkNlcnRpZmljYWRvIE1pbGl0YXIqKiAocmVzZXJ2aXN0YSk7DQogICAgLSAgICoqUGFzc2Fwb3J0ZSoqIChlbWl0aWRvIG5vIEJyYXNpbCk7DQogICAgLSAgICoqUG9saWNpYSBNaWxpdGFyKio7DQogICAgLSAgICoqQ29ycG8gZGUgQm9tYmVpcm9zKio7DQogICAgLSAgICoqQ29tYW5kbyBNaWxpdGFyKiogKEFlcm9uw6F1dGljYS9FeMOpcmNpdG8vTWFyaW5oYSk7DQotICAgTGV2ZSB1bSBDb21wcm92YW50ZSBkZSBFbmRlcmXDp287DQotICAgU29saWNpdGUgYSByZW5vdmHDp8OjbyBkYSBDTkg7DQotICAgU2Vyw6EgZ2VyYWRvIHVtIEJvbGV0byBkZSBSZW5vdmHDp8OjbyBkYSBDTkguIEJhc3RhIHBhZ8OhLWxvIG5vIEJhbmNvIGNyZWRlbmNpYWRvKEJhbnBhcsOhKTsNCi0gICBSZWFsaXplIGEgQ2FwdHVyYSBkYXMgc3VhcyBEaWdpdGFpcyAoQklPTUVUUklBKSwgcmVnaXN0cmUgdW1hIEZvdG8gZSBmYcOnYSB1bWEgYXNzaW5hdHVyYSBkaWdpdGFsOw0KLSAgIEJhc3RhIGFnZW5kYXIgbyBFeGFtZSBkZSBSZW5vdmHDp8OjbyBkYSBDTkg7DQotICAgQWdlbmRlIFRhbWLDqW0gb3MgZXhhbWVzIGRlIEVBUiAoRXhlcmNlIEF0aXZpZGFkZSBSZW11bmVyYWRhKSBlL291IFRveGljb2zDs2dpY28sIGNhc28gbmVjZXNzw6FyaW87DQotICAgRmHDp2Egb3MgZXhhbWVzLg0KDQo6OjogcHJvZ3Jlc3MNCjo6OiB7LnByb2dyZXNzLWJhciBzdHlsZT0id2lkdGg6IDEwMCU7In0NCjo6Og0KOjo6DQoNCiMjICoqUXVhaXMgb3MgVmFsb3JlcyBwcmEgUmVub3Zhw6fDo28gZGEgQ05IPyoqDQoNCkRlIGFjb3JkbyBjb20gYSBMZWkgZGUgVGF4YXMgZG8gRGV0cmFuLVBhIFsqKkxlaSBuwro5LjE1OC8yMDIxKiopXShodHRwczovL3d3dy5sZWdpc3dlYi5jb20uYnIvbGVnaXNsYWNhby8/aWQ9NDA3NjIwKSwgbyB2YWxvciBkZSByZW5vdmHDp8OjbyBkYSBDTkggw6kgZGU6DQoNCi0gICAqKlJcJCA4NSw3MCoqIHPDo28gcGFyYSBhIGVtaXNzw6NvIGRvIHBhcGVsIG1vZWRhIGRhIENOSDsNCi0gICAqKlJcJCA2NSw3NSoqIHPDo28gcGFyYSBvIGV4YW1lIGRlIGFwdGlkw6NvIGbDrXNpY2EgZSBtZW50YWw7DQotICAgKipSXCQgMTA2LDMwKiogc8OjbyBwYXJhIG8gZXhhbWUgZGUgYXZhbGlhw6fDo28gcHNpY29sw7NnaWNhLCBhcGVuYXMgcXVhbmRvIHNvbGljaXRhZG8gcGVsbyBtw6lkaWNvIG91IHF1YW5kbyBvIG1vdG9yaXN0YSBleGVyY2UgYXRpdmlkYWRlIHJlbXVuZXJhZGEgY29tIG8gdmXDrWN1bG87DQotICAgKipSXCQgMTUwLDAwKiogc8OjbyBwYXJhIG8gZXhhbWUgdG94aWNvbMOzZ2ljbywgcXVhbmRvIG5hcyBjYXRlZ29yaWFzICoqQywgRCBvdSBFKiogZW0gbGFib3JhdMOzcmlvcyBjcmVkZW5jaWFkb3MgcGVsbyBEZW5hdHJhbjsgUVVBTC4NCg0KOjo6IHByb2dyZXNzDQo6Ojogey5wcm9ncmVzcy1iYXIgc3R5bGU9IndpZHRoOiAxMDAlOyJ9DQo6OjoNCjo6Og0KDQojIyAqKlF1YWlzIG9zIFByb2JsZW1hcyBlbSBOw6NvIFJlbm92YXIgYSBDTkgqKg0KDQotICAgUmVub3Zhw6fDo28gZGEgQ05IIMOpIHVtIGNvbXByb21pc3NvIGEgdG9kb3Mgb3MgbW90b3Jpc3RhIGUgw6kgb2JyaWdhdMOzcmlvIHBhcmEgY29uZHV6aXIgdmXDrWN1bG9zIGF1dG9tb3RvcmVzIGVtIHF1YWxxdWVyIEVzdGFkbyBkbyBCcmFzaWwuDQotICAgRSBuw6NvIGVzdGFyIGVtIGRpYXMgYSBDTkgsIGdlcmEgY29uc2VxdcOqbmNpYXMgbmVnYXRpdmFzIGVzdGFiZWxlY2lkYXMgcGVsbyAoQ0JUIC0gWyoqTGVpIG7CujkuNTAzLzE5OTcqKl0oaHR0cDovL3d3dy5wbGFuYWx0by5nb3YuYnIvY2NpdmlsXzAzL2xlaXMvbDk1MDNjb21waWxhZG8uaHRtKSkgKiphcnRpZ28gMTYyKio6DQogICAgLSAgIERpcmlnaXIgdW0gdmXDrWN1bG8gY29tIGEgQ05IICoqVmVuY2lkYSBhIG1haXMgZGUgMzAgZGlhcyoqIGNvcnJlc3BvbmRlIMOgIHVtYSAqKkluZnJhw6fDo28gR3JhdsOtc3NpbWEqKiwgY2FiZW5kbyB1bWEgbXVsdGEgbm8gdmFsb3IgZGUgKipSXCQyOTMsNDcqKiBlICoqU2V0ZSBQb250b3MqKiBubyBwcm9udHXDoXJpbyBkbyBjb25kdXRvci4NCi0gICBNZWRpZGEgQWRtaW5pc3RyYXRpdmEgY29tICoqUmVjb2xoaW1lbnRvIGRhIENOSCoqIGUgKipSZXRlbsOnw6NvIGRvIFZlw61jdWxvKiogYXTDqSBxdWUgYXByZXNlbnRlIHVtIGNvbmR1dG9yIGhhYmlsaXRhZG8gcGFyYSBkaXJpZ2ktbG87DQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KIyMgKipQZXJkaSBvIFByYXpvIHByYSBSZW5vdmFyIGEgQ05IKioNCg0KLSAgIERlaXhlaSBkZSByZW5vdmFyIGRhIENOSCBwb3IgdW0gcHJhem8gZGUgKipBdMOpIDQgYW5vcyBlIDExIG1lc2VzKiosIGZpcXVlIHRyYW5xdWlsbywgYWluZGEgaMOhIHRlbXBvIGRlIHJlZ3VsYXJpemFyLCB1dGlsaXphbmRvIHVtYSBkYXMgb3DDp8O1ZXMgZXhwbGljYWRhcyBhbnRlcmlvcm1lbnRlLg0KLSAgIFNlIGEgQ05IIGVzdGl2ZXIgdmVuY2lkYSBIw6EgKiorIGRlIDUgYW5vcyoqLCBzZXLDoSBuZWNlc3PDoXJpbyBwYXNzYXIgcG9yIHVtIEN1cnNvIGRlIEF0dWFsaXphw6fDo28gZGUgMTUgaG9yYXMtYXVsYSwgY29tbyBwcmV2aXN0byBuYSBbKipSZXNvbHXDp8OjbyBOwrogNzg5LzIwMjAqKl0oaHR0cHM6Ly93d3cuaW4uZ292LmJyL2VuL3dlYi9kb3UvLS9yZXNvbHVjYW8tbi03ODktZGUtMTgtZGUtanVuaG8tZGUtMjAyMC0yNjMxODU2NDgpLg0KDQo6OjogcHJvZ3Jlc3MNCjo6OiB7LnByb2dyZXNzLWJhciBzdHlsZT0id2lkdGg6IDEwMCU7In0NCjo6Og0KOjo6DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K