1 Controle Estatístico da Qualidade

1.1 Introdução

Os mÉtodos estatÍsticos cada vez mais vÊm sendo reconhecidos como um importante instrumento para diagnosticar e otimizar a gestÃO e operaÇÃO de diversos sistemas, desde os sistemas humanos aos mais complexos sistemas fÍsicos. As aplicações destes vêm desempenhando um papel importante na solução de muitos problemas, da industria `a agricultura, passando pelos setores socio-economico, administrativo e de saúde. Grande parte das mais avancadas pesquisas cientıficas em diversas areas do conhecimento dependem cada vez mais dos metodos estatısticos (RAMOS, 2003).

A era do Controle Estatístico da Qualidade surgiu no contexto da Segunda Guerra Mundial com a ascensão da revolução industrial e da produção massificada, que tornou impraticável inspecionar os milhares de produtos que saiam da linha de produção. Assim, com o controle estatístico, seria possível selecionar certa quantidade para inspeção, onde as propriedades dessa amostra seriam estendidas a todo o lote.

O pioneiro da aplicação da estatística ao controle de qualidade foi WalteR Andrew Shewhart em 1924, que preparou o primeiro rascunho do que viria a ser conhecido como carta de controle.

Concomitantemente, dois colegas de Shewhart, Harold F. Dodge e Harry G. Romig, desenvolveram técnicas de amostragem constituindo o núcleo da maioria das técnicas estatísticas de controle da qualidade que são usadas até hoje. No início o processo foi lento, porém se ampliou com o advento da Segunda Guerra mundial com a influência das forças armadas americanas.

1.2 Sete Ferramentas da Qualidade

As sete ferramentas estatísticas de qualidade surgiu no Japão, logo após o final da Segunda Guerra Mundial. As empresas precisavam capacitar mão de obra para o controle da qualidade, mas não era possível ensinar estatística para todos os trabalhadores. Concentraram, então, esforços no treinamento de pessoas para desenhar gráficos que, embora simples, resolvessem a maior parte dos problemas. E isso se comprovou verdadeiro.

Desde então, o uso das ferramentas tem sido de grande valia para os sistemas de gestão, sendo um conjunto de ferramentas estatísticas de uso consagrado para melhoria de produtos, serviços e processos.

Tradicionalmente são 7 as ferramentas da qualidade:

    1. Fluxograma (ou Estratificacao)
    1. Diagrama de Ishikawa
    1. Folhas de Verificacao (check sheet)
    1. Diagrama de Pareto
    1. Histograma
    1. Diagrama de Dispersao
    1. Grdficos de Controle

1.3 Diagra de Ishikawa

O diagrama de Ishikawa, também conhecido como diagrama de Causa e Efeito, ou Diagrama “Espinha de Peixe” é usado para identificar as causas de um “problema”. É utilizado para apresentar a relação existente entre um resultado de um processo (efeito) e os fatores (causas) do processo que, por razões técnicas, possam afetar o resultado considerado.

O diagrama foi proposto originalmente pelo engenheiro químico, Kaoru Ishikawa em 1934 e aperfeiçoado nos anos seguintes.

Kaoru nasceu em Tóquio em 13 de julho de 1915, filho mais velho de oito filhos, graduou-se em Química na Universidade de Tóquio em 1939.

De 1939 a 1941 trabalhou no exército como técnico naval, então foi trabalhar na “Nissan Liquid Fuel Company” até 1947.

1.4 Folhas de Verificação

1.4.1 Para Que Serve

    1. Tabela para coletar e resumir informacoes
    1. Contagem de ocorrencia de eventos: ocorrencias, consultas, falhas,defeitos, nao-conformidades, etc
    1. Facil utilizacao, visualizacao e interpretacao
    1. Coleta de dados de forma padronizada
    1. E um Registro da Qualidade, portanto deve ser devidamente identificada, datada, e assinada por responsável

1.4.2 Passos Para Aplicação

    1. Escolher um tipo de folha de verificacao que permite um facil preenchimento, organizar conforme a necessidade da organização ou setor, no qual será feita a coleta de dados.
    1. Definir a quantidade de informacoes ira conter no problema/falhas ou ocorrencia e o tamanho da amostra dos dados
    1. Decidir o local ou setor onde será a coleta de dados
    1. Determinar a frequência com que serão coletados os dados, pode ser diário, semanal ou mensal. Serve para verificar a ocorrência durante um determinado período
    1. Definir quem deverá coletar os dados, poderá ser o gestor do setor que está sendo coletado os dados ou supervisor direto do setor operacional;
    1. Aplicar a folha de verificacao atingir a coleta dentro do planejado.

1.5 Diagrama de Pareto

O diagrama de Pareto é um gráfico de colunas que ordena as frequências das ocorrências, da maior para a menor, permitindo a priorização dos problemas, procurando levar a cabo o princípio de Pareto (80% das consequências advêm de 20% das causas), isto é, há muitos problemas sem importância diante de outros mais graves.

Um dos pioneiros em trabalhos na área de Qualidade, Joseph Juran, encontrou um padrão semelhante ao encontrado por Pareto na distribuição dos tipos de defeitos de certo produto. Após diversas análises, ele chegou a conclusão de que em grande parte das iniciativas de melhoria, poucos tipos de defeitos eram responsáveis pela maioria das rejeições (poucos vitais), ou seja, 80% dos problemas de qualidade de uma peça são causados por 20% dos tipos de defeitos.

Da relação entre esses dois trabalho foi criado o conceito de Pareto. Joseph Juran cunhou o termo “Gráfico de Pareto” no início da década de 90.

1.6 Graficos de Controle

    1. Grafico de Controle da Media
    1. Grafico de Controle da Amplitude
    1. Grafico de Controle da Desvio-Padrao
    1. Grafico de Controle da Media Movel
    1. Grafico de Controle da Cussum
    1. Grafico de Controle da Ewma

1.7 Carregar Pacotes

library(dplyr)
library(ggplot2)
library(qcc)
library(SixSigma)
#library(qualityTools)
#library(fdth)
library(IQCC)
library(MSQC)
library(spc)

1.8 Usando o pacote qcc (Quality control chart)

1.8.1 Argumentos do Pacote

    1. cause : uma lista de causas e ramos fornecendo rótulos descritivos.
    1. effect : um rótulo de string ou o efeito.
    1. title : uma string especificando o titulo principal para aparecer no diagrama
    1. cex : um vetor de valores para a expansão gráfica do personagem. Os valores referem-se, pela ordem, aos RAMOS, CAUSA e EFEITOS.
    1. font : um vetor de valores para a fonte, os valores referem-se, pela ordem, aos ramos, causas e efeitos.

1.8.2 Diagrama de Ishikawa Tradicional

cause.and.effect(cause = list(Medida   = c("Afericao","Acompanhamento","Indicador"),
                              Material = c("Qualidade","Padronizacao","Entrega"),
                              Pessoas  = c("Comunicacao","Disciplina","Criatividade"),
                              Ambiente = c("Calor","Frio","Espaco"),
                              Metodo   = c("Procedimentos","Etapas","Manuais"),
                              Maquina  = c("Equipamentos","Ferramentas","Instrumentos")),
                 effect = c("Reducao/Aumento/Defeitos"),
                 title  = "Diagrama de Causa e Efeito", 
                 cex    = c(1,1,1), 
                 font  = c(2,2,2)) 

2 Referências Bibliográficas

    1. Mason, R.L. and Young, J.C. (2002) Multivariate Statistical Process Control with Industrial Applications, SIAM.
    1. Montgomery, D.C. (2005) Introduction to Statistical Quality Control, 5th ed. New York: John Wiley & Sons.
    1. Ryan, T. P. (2000), Statistical Methods for Quality Improvement, 2nd ed. New York: John Wiley & Sons, Inc. 
    1. Scrucca, L. (2004). qcc: an R package for quality control charting and statistical process control. R News 4/1, 11-17.
    1. Wetherill, G.B. and Brown, D.W. (1991) Statistical Process Control. New York: Chapman & Hall.
    1. Allen, T. T. (2010) Introduction to Engineering Statistics and Lean Six Sigma - Statistical Quality Control and Design of Experiments and Systems (Second Edition ed.). London: Springer.
    1. Box, G. (1991). Teaching engineers experimental design with a paper helicopter. Report 76, Center for Quality and Productivity Improvement. University of Wisconsin.
    1. Cano, Emilio L., Moguerza, Javier M. and Redchuk, Andrés. 2012. Six Sigma with R. Statistical Engineering for Process Improvement, Use R!, vol. 36. Springer, New York. http://www.springer.com/statistics/book/978-1-4614-3651-5.
    1. Cano, Emilio L., Moguerza, Javier M. and Prieto Corcoba, Andrés. 2015. Quality Control with R. An ISO Standards approach, Use R!, Springer, New York.
LS0tDQp0aXRsZTogIioqQ29udHJvbGUgRXN0YXTDrXN0aWNvIGRhIFF1YWxpZGFkZSBubyBSOiB1bSBHdWlhIFByw6F0aWNvKioiDQphdXRob3I6DQotIG5hbWU6IE3DoXJpbyBEaWVnbyBWYWxlbnRlDQotIG5hbWU6IENhcmxvcyBQYWl4w6NvDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCksICclZCAlQiwgJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIGhpZ2hsaWdodDogdGV4dG1hdGUNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRoZW1lOiBjZXJ1bGVhbg0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiA2DQogICAgdG9jX2Zsb2F0Og0KICAgICAgY29sbGFwc2VkOiB5ZXMNCiAgICAgIHNtb290aF9zY3JvbGw6IHllcw0KICAgIGtlZXBfbWQ6IHllcw0KICBwZGZfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6ICc2Jw0KaW5zdGl0dXRlOg0KYWJzdHJhY3Q6ICIuIg0KLS0tDQoNCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KDQoNCg0KYGBgez1odG1sfQ0KPHN0eWxlPg0KYm9keXt0ZXh0LWFsaWduOiBqdXN0aWZ5fQ0KPC9zdHlsZT4NCmBgYA0KDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KDQojICoqQ29udHJvbGUgRXN0YXTDrXN0aWNvIGRhIFF1YWxpZGFkZSoqDQojIyAqKkludHJvZHXDp8OjbyoqDQoNCg0KT3MgbcOJdG9kb3MgZXN0YXTDjXN0aWNvcyBjYWRhIHZleiBtYWlzIHbDim0gc2VuZG8gcmVjb25oZWNpZG9zIGNvbW8gdW0gaW1wb3J0YW50ZQ0KaW5zdHJ1bWVudG8gcGFyYSBkaWFnbm9zdGljYXIgZSBvdGltaXphciBhIGdlc3TDg08gZSBvcGVyYcOHw4NPIGRlIGRpdmVyc29zIHNpc3RlbWFzLCBkZXNkZSBvcyBzaXN0ZW1hcyBodW1hbm9zIGFvcyBtYWlzIGNvbXBsZXhvcyBzaXN0ZW1hcyBmw41zaWNvcy4gQXMgYXBsaWNhw6fDtWVzIGRlc3RlcyB2w6ptIGRlc2VtcGVuaGFuZG8gdW0gcGFwZWwgaW1wb3J0YW50ZSBuYSBzb2x1w6fDo28gZGUgbXVpdG9zIHByb2JsZW1hcywgZGEgaW5kdXN0cmlhIGBhIGFncmljdWx0dXJhLCBwYXNzYW5kbyBwZWxvcyBzZXRvcmVzIHNvY2lvLWVjb25vbWljbywgYWRtaW5pc3RyYXRpdm8gZSBkZSBzYcO6ZGUuIEdyYW5kZSBwYXJ0ZSBkYXMgbWFpcyBhdmFuY2FkYXMgcGVzcXVpc2FzIGNpZW50xLFmaWNhcyBlbSBkaXZlcnNhcyBhcmVhcyBkbyBjb25oZWNpbWVudG8gZGVwZW5kZW0gY2FkYSB2ZXogbWFpcyBkb3MgbWV0b2RvcyBlc3RhdMSxc3RpY29zIChSQU1PUywgMjAwMykuDQoNCg0KQSBlcmEgZG8gQ29udHJvbGUgRXN0YXTDrXN0aWNvIGRhIFF1YWxpZGFkZSBzdXJnaXUgbm8gY29udGV4dG8gZGEgU2VndW5kYSBHdWVycmEgTXVuZGlhbCBjb20gYSBhc2NlbnPDo28gZGEgcmV2b2x1w6fDo28gaW5kdXN0cmlhbCBlIGRhIHByb2R1w6fDo28gbWFzc2lmaWNhZGEsIHF1ZSB0b3Jub3UgaW1wcmF0aWPDoXZlbCBpbnNwZWNpb25hciBvcyBtaWxoYXJlcyBkZSBwcm9kdXRvcyBxdWUgc2FpYW0gZGEgbGluaGEgZGUgcHJvZHXDp8Ojby4gQXNzaW0sIGNvbSBvIGNvbnRyb2xlIGVzdGF0w61zdGljbywgc2VyaWEgcG9zc8OtdmVsIHNlbGVjaW9uYXIgY2VydGEgcXVhbnRpZGFkZSBwYXJhIGluc3Blw6fDo28sIG9uZGUgYXMgcHJvcHJpZWRhZGVzIGRlc3NhIGFtb3N0cmEgc2VyaWFtIGVzdGVuZGlkYXMgYSB0b2RvIG8gbG90ZS4NCg0KTyBwaW9uZWlybyBkYSBhcGxpY2HDp8OjbyBkYSBlc3RhdMOtc3RpY2EgYW8gY29udHJvbGUgZGUgcXVhbGlkYWRlIGZvaSAqKldhbHRlUiBBbmRyZXcgU2hld2hhcnQqKiBlbSAxOTI0LCBxdWUgcHJlcGFyb3UgbyBwcmltZWlybyByYXNjdW5obyBkbyBxdWUgdmlyaWEgYSBzZXIgY29uaGVjaWRvIGNvbW8gY2FydGEgZGUgY29udHJvbGUuDQoNCkNvbmNvbWl0YW50ZW1lbnRlLCBkb2lzIGNvbGVnYXMgZGUgU2hld2hhcnQsICoqSGFyb2xkIEYuIERvZGdlKiogZSAqKkhhcnJ5IEcuIFJvbWlnKiosICBkZXNlbnZvbHZlcmFtIHTDqWNuaWNhcyBkZSBhbW9zdHJhZ2VtIGNvbnN0aXR1aW5kbyBvIG7DumNsZW8gZGEgbWFpb3JpYSBkYXMgdMOpY25pY2FzIGVzdGF0w61zdGljYXMgZGUgY29udHJvbGUgZGEgcXVhbGlkYWRlIHF1ZSBzw6NvIHVzYWRhcyBhdMOpIGhvamUuIE5vIGluw61jaW8gbyBwcm9jZXNzbyBmb2kgbGVudG8sIHBvcsOpbSBzZSBhbXBsaW91IGNvbSBvIGFkdmVudG8gZGEgU2VndW5kYSBHdWVycmEgbXVuZGlhbCBjb20gYSBpbmZsdcOqbmNpYSBkYXMgZm9yw6dhcyBhcm1hZGFzIGFtZXJpY2FuYXMuDQoNCg0KDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KIyMgKipTZXRlIEZlcnJhbWVudGFzIGRhIFF1YWxpZGFkZSoqDQoNCkFzIHNldGUgZmVycmFtZW50YXMgZXN0YXTDrXN0aWNhcyBkZSBxdWFsaWRhZGUgc3VyZ2l1IG5vIEphcMOjbywgbG9nbyBhcMOzcyBvIGZpbmFsIGRhIFNlZ3VuZGEgR3VlcnJhIE11bmRpYWwuIEFzIGVtcHJlc2FzIHByZWNpc2F2YW0gY2FwYWNpdGFyIG3Do28gZGUgb2JyYSBwYXJhIG8gY29udHJvbGUgZGEgcXVhbGlkYWRlLCBtYXMgbsOjbyBlcmEgcG9zc8OtdmVsIGVuc2luYXIgZXN0YXTDrXN0aWNhIHBhcmEgdG9kb3Mgb3MgdHJhYmFsaGFkb3Jlcy4gQ29uY2VudHJhcmFtLCBlbnTDo28sIGVzZm9yw6dvcyBubyB0cmVpbmFtZW50byBkZSBwZXNzb2FzIHBhcmEgZGVzZW5oYXIgZ3LDoWZpY29zIHF1ZSwgZW1ib3JhIHNpbXBsZXMsIHJlc29sdmVzc2VtIGEgbWFpb3IgcGFydGUgZG9zIHByb2JsZW1hcy4gRSBpc3NvIHNlIGNvbXByb3ZvdSB2ZXJkYWRlaXJvLg0KDQpEZXNkZSBlbnTDo28sIG8gdXNvIGRhcyBmZXJyYW1lbnRhcyB0ZW0gc2lkbyBkZSBncmFuZGUgdmFsaWEgcGFyYSBvcyBzaXN0ZW1hcyBkZSBnZXN0w6NvLCBzZW5kbyB1bSBjb25qdW50byBkZSBmZXJyYW1lbnRhcyBlc3RhdMOtc3RpY2FzIGRlIHVzbyBjb25zYWdyYWRvIHBhcmEgbWVsaG9yaWEgZGUgcHJvZHV0b3MsIHNlcnZpw6dvcyBlIHByb2Nlc3Nvcy4NCg0KVHJhZGljaW9uYWxtZW50ZSBzw6NvIDcgYXMgZmVycmFtZW50YXMgZGEgcXVhbGlkYWRlOg0KDQoNCi0gICAxKSBGbHV4b2dyYW1hIChvdSBFc3RyYXRpZmljYWNhbykNCi0gICAyKSBEaWFncmFtYSBkZSBJc2hpa2F3YQ0KLSAgIDMpIEZvbGhhcyBkZSBWZXJpZmljYWNhbyAoY2hlY2sgc2hlZXQpDQotICAgNCkgRGlhZ3JhbWEgZGUgUGFyZXRvDQotICAgNSkgSGlzdG9ncmFtYQ0KLSAgIDYpIERpYWdyYW1hIGRlIERpc3BlcnNhbw0KLSAgIDcpIEdyZGZpY29zIGRlIENvbnRyb2xlDQoNCg0KOjo6IHByb2dyZXNzDQo6Ojogey5wcm9ncmVzcy1iYXIgc3R5bGU9IndpZHRoOiAxMDAlOyJ9DQo6OjoNCjo6Og0KDQoNCg0KIyMgKipEaWFncmEgZGUgSXNoaWthd2EqKg0KDQpPIGRpYWdyYW1hIGRlICoqSXNoaWthd2EqKiwgdGFtYsOpbSBjb25oZWNpZG8gY29tbyBkaWFncmFtYSBkZSAqKkNhdXNhIGUgRWZlaXRvKiosIG91ICoqRGlhZ3JhbWEg4oCcRXNwaW5oYSBkZSBQZWl4ZeKAnSoqIMOpIHVzYWRvIHBhcmEgaWRlbnRpZmljYXIgYXMgY2F1c2FzIGRlIHVtIOKAnHByb2JsZW1h4oCdLiDDiSB1dGlsaXphZG8gcGFyYSBhcHJlc2VudGFyIGEgcmVsYcOnw6NvIGV4aXN0ZW50ZSBlbnRyZSB1bSByZXN1bHRhZG8gZGUgdW0gcHJvY2Vzc28gKGVmZWl0bykgZSBvcyBmYXRvcmVzIChjYXVzYXMpIGRvIHByb2Nlc3NvIHF1ZSwgcG9yIHJhesO1ZXMgdMOpY25pY2FzLCBwb3NzYW0gYWZldGFyIG8gcmVzdWx0YWRvIGNvbnNpZGVyYWRvLg0KDQpPIGRpYWdyYW1hIGZvaSBwcm9wb3N0byBvcmlnaW5hbG1lbnRlIHBlbG8gZW5nZW5oZWlybyBxdcOtbWljbywgKipLYW9ydSBJc2hpa2F3YSoqIGVtIDE5MzQgZSBhcGVyZmVpw6dvYWRvIG5vcyBhbm9zIHNlZ3VpbnRlcy4NCg0KDQpLYW9ydSBuYXNjZXUgZW0gVMOzcXVpbyBlbSAxMyBkZSBqdWxobyBkZSAxOTE1LCBmaWxobyBtYWlzIHZlbGhvIGRlIG9pdG8gZmlsaG9zLCBncmFkdW91LXNlIGVtIFF1w61taWNhIG5hIFVuaXZlcnNpZGFkZSBkZSBUw7NxdWlvIGVtIDE5MzkuIA0KDQpEZSAxOTM5IGEgMTk0MSB0cmFiYWxob3Ugbm8gZXjDqXJjaXRvIGNvbW8gdMOpY25pY28gbmF2YWwsIGVudMOjbyBmb2kgdHJhYmFsaGFyIG5hIOKAnCoqTmlzc2FuIExpcXVpZCBGdWVsIENvbXBhbnkqKuKAnSBhdMOpIDE5NDcuDQoNCg0KDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KDQoNCiMjICoqRm9saGFzIGRlIFZlcmlmaWNhw6fDo28qKg0KIyMjICoqUGFyYSBRdWUgU2VydmUqKg0KDQotICAgMSkgVGFiZWxhIHBhcmEgY29sZXRhciBlIHJlc3VtaXIgaW5mb3JtYWNvZXMNCi0gICAyKSBDb250YWdlbSBkZSBvY29ycmVuY2lhIGRlIGV2ZW50b3M6IG9jb3JyZW5jaWFzLCBjb25zdWx0YXMsIGZhbGhhcyxkZWZlaXRvcywgbmFvLWNvbmZvcm1pZGFkZXMsIGV0Yw0KLSAgIDMpIEZhY2lsIHV0aWxpemFjYW8sIHZpc3VhbGl6YWNhbyBlIGludGVycHJldGFjYW8NCi0gICA0KSBDb2xldGEgZGUgZGFkb3MgZGUgZm9ybWEgcGFkcm9uaXphZGENCi0gICA1KSBFIHVtIFJlZ2lzdHJvIGRhIFF1YWxpZGFkZSwgcG9ydGFudG8gZGV2ZSBzZXIgZGV2aWRhbWVudGUgaWRlbnRpZmljYWRhLCBkYXRhZGEsIGUgYXNzaW5hZGEgcG9yIHJlc3BvbnPDoXZlbA0KDQoNCiMjIyAqKlBhc3NvcyBQYXJhIEFwbGljYcOnw6NvKioNCg0KLSAgIDEpIEVzY29saGVyIHVtIHRpcG8gZGUgZm9saGEgZGUgdmVyaWZpY2FjYW8gcXVlIHBlcm1pdGUgdW0gZmFjaWwgcHJlZW5jaGltZW50bywgb3JnYW5pemFyIGNvbmZvcm1lIGEgbmVjZXNzaWRhZGUgZGEgb3JnYW5pemHDp8OjbyBvdSBzZXRvciwgbm8gcXVhbCBzZXLDoSBmZWl0YSBhIGNvbGV0YSBkZSBkYWRvcy4NCi0gICAyKSBEZWZpbmlyIGEgcXVhbnRpZGFkZSBkZSBpbmZvcm1hY29lcyBpcmEgY29udGVyIG5vIHByb2JsZW1hL2ZhbGhhcyBvdSBvY29ycmVuY2lhIGUgbyB0YW1hbmhvIGRhIGFtb3N0cmEgZG9zIGRhZG9zDQotICAgMykgRGVjaWRpciBvIGxvY2FsIG91IHNldG9yIG9uZGUgc2Vyw6EgYSBjb2xldGEgZGUgZGFkb3MNCi0gICA0KSBEZXRlcm1pbmFyIGEgZnJlcXXDqm5jaWEgY29tIHF1ZSBzZXLDo28gY29sZXRhZG9zIG9zIGRhZG9zLCBwb2RlIHNlciBkacOhcmlvLCBzZW1hbmFsIG91IG1lbnNhbC4gU2VydmUgcGFyYSB2ZXJpZmljYXIgYSBvY29ycsOqbmNpYSBkdXJhbnRlIHVtIGRldGVybWluYWRvIHBlcsOtb2RvDQotICAgNSkgRGVmaW5pciBxdWVtIGRldmVyw6EgY29sZXRhciBvcyBkYWRvcywgcG9kZXLDoSBzZXIgbyBnZXN0b3IgZG8gc2V0b3IgcXVlIGVzdMOhIHNlbmRvIGNvbGV0YWRvIG9zIGRhZG9zIG91IHN1cGVydmlzb3IgZGlyZXRvIGRvIHNldG9yIG9wZXJhY2lvbmFsOw0KLSAgIDYpIEFwbGljYXIgYSBmb2xoYSBkZSB2ZXJpZmljYWNhbyBhdGluZ2lyIGEgY29sZXRhIGRlbnRybyBkbyBwbGFuZWphZG8uDQoNCg0KOjo6IHByb2dyZXNzDQo6Ojogey5wcm9ncmVzcy1iYXIgc3R5bGU9IndpZHRoOiAxMDAlOyJ9DQo6OjoNCjo6Og0KDQoNCiMjICoqRGlhZ3JhbWEgZGUgUGFyZXRvKioNCg0KTyBkaWFncmFtYSBkZSBQYXJldG8gw6kgdW0gZ3LDoWZpY28gZGUgY29sdW5hcyBxdWUgb3JkZW5hIGFzIGZyZXF1w6puY2lhcyBkYXMgb2NvcnLDqm5jaWFzLCBkYSBtYWlvciBwYXJhIGEgbWVub3IsIHBlcm1pdGluZG8gYSBwcmlvcml6YcOnw6NvIGRvcyBwcm9ibGVtYXMsIHByb2N1cmFuZG8gbGV2YXIgYSBjYWJvIG8gcHJpbmPDrXBpbyBkZSBQYXJldG8gKDgwXCUgZGFzIGNvbnNlcXXDqm5jaWFzIGFkdsOqbSBkZSAyMFwlIGRhcyBjYXVzYXMpLCBpc3RvIMOpLCBow6EgbXVpdG9zIHByb2JsZW1hcyBzZW0gaW1wb3J0w6JuY2lhIGRpYW50ZSBkZSBvdXRyb3MgbWFpcyBncmF2ZXMuDQoNCg0KVW0gZG9zIHBpb25laXJvcyBlbSB0cmFiYWxob3MgbmEgw6FyZWEgZGUgUXVhbGlkYWRlLCAqKkpvc2VwaCBKdXJhbioqLCBlbmNvbnRyb3UgdW0gcGFkcsOjbyBzZW1lbGhhbnRlIGFvIGVuY29udHJhZG8gcG9yIFBhcmV0byBuYSBkaXN0cmlidWnDp8OjbyBkb3MgdGlwb3MgZGUgZGVmZWl0b3MgZGUgY2VydG8gcHJvZHV0by4gQXDDs3MgZGl2ZXJzYXMgYW7DoWxpc2VzLCBlbGUgY2hlZ291IGEgY29uY2x1c8OjbyBkZSBxdWUgZW0gZ3JhbmRlIHBhcnRlIGRhcyBpbmljaWF0aXZhcyBkZSBtZWxob3JpYSwgcG91Y29zIHRpcG9zIGRlIGRlZmVpdG9zIGVyYW0gcmVzcG9uc8OhdmVpcyBwZWxhIG1haW9yaWEgZGFzIHJlamVpw6fDtWVzIChwb3Vjb3Mgdml0YWlzKSwgb3Ugc2VqYSwgODAlIGRvcyBwcm9ibGVtYXMgZGUgcXVhbGlkYWRlIGRlIHVtYSBwZcOnYSBzw6NvIGNhdXNhZG9zIHBvciAyMCUgZG9zIHRpcG9zIGRlIGRlZmVpdG9zLiANCg0KRGEgcmVsYcOnw6NvIGVudHJlIGVzc2VzIGRvaXMgdHJhYmFsaG8gZm9pIGNyaWFkbyBvIGNvbmNlaXRvIGRlIFBhcmV0by4gSm9zZXBoIEp1cmFuIGN1bmhvdSBvIHRlcm1vICoq4oCcR3LDoWZpY28gZGUgUGFyZXRv4oCdKiogbm8gaW7DrWNpbyBkYSBkw6ljYWRhIGRlIDkwLg0KDQoNCg0KOjo6IHByb2dyZXNzDQo6Ojogey5wcm9ncmVzcy1iYXIgc3R5bGU9IndpZHRoOiAxMDAlOyJ9DQo6OjoNCjo6Og0KDQoNCg0KDQojIyAqKkdyYWZpY29zIGRlIENvbnRyb2xlKioNCg0KLSAgIDEpIEdyYWZpY28gZGUgQ29udHJvbGUgZGEgTWVkaWENCi0gICAyKSBHcmFmaWNvIGRlIENvbnRyb2xlIGRhIEFtcGxpdHVkZQ0KLSAgIDMpIEdyYWZpY28gZGUgQ29udHJvbGUgZGEgRGVzdmlvLVBhZHJhbw0KLSAgIDQpIEdyYWZpY28gZGUgQ29udHJvbGUgZGEgTWVkaWEgTW92ZWwNCi0gICA1KSBHcmFmaWNvIGRlIENvbnRyb2xlIGRhIEN1c3N1bQ0KLSAgIDYpIEdyYWZpY28gZGUgQ29udHJvbGUgZGEgRXdtYQ0KDQoNCg0KDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KDQoNCiMjICoqQ2FycmVnYXIgUGFjb3RlcyoqDQoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHFjYykNCmxpYnJhcnkoU2l4U2lnbWEpDQojbGlicmFyeShxdWFsaXR5VG9vbHMpDQojbGlicmFyeShmZHRoKQ0KbGlicmFyeShJUUNDKQ0KbGlicmFyeShNU1FDKQ0KbGlicmFyeShzcGMpDQpgYGANCg0KDQoNCjo6OiBwcm9ncmVzcw0KOjo6IHsucHJvZ3Jlc3MtYmFyIHN0eWxlPSJ3aWR0aDogMTAwJTsifQ0KOjo6DQo6OjoNCg0KDQojIyAqKlVzYW5kbyBvIHBhY290ZSBxY2MgKFF1YWxpdHkgY29udHJvbCBjaGFydCkqKg0KIyMjICoqQXJndW1lbnRvcyBkbyBQYWNvdGUqKg0KDQotICAgMSkgKipjYXVzZSoqIDogdW1hIGxpc3RhIGRlIGNhdXNhcyBlIHJhbW9zIGZvcm5lY2VuZG8gcsOzdHVsb3MgZGVzY3JpdGl2b3MuIA0KLSAgIDIpICoqZWZmZWN0KiogOiB1bSByw7N0dWxvIGRlIHN0cmluZyBvdSBvIGVmZWl0by4NCi0gICAzKSAqKnRpdGxlKiogOiB1bWEgc3RyaW5nIGVzcGVjaWZpY2FuZG8gbyB0aXR1bG8gcHJpbmNpcGFsIHBhcmEgYXBhcmVjZXIgbm8gZGlhZ3JhbWENCi0gICA0KSAqKmNleCoqIDogdW0gdmV0b3IgZGUgdmFsb3JlcyBwYXJhIGEgZXhwYW5zw6NvIGdyw6FmaWNhIGRvIHBlcnNvbmFnZW0uIE9zIHZhbG9yZXMgcmVmZXJlbS1zZSwgcGVsYSBvcmRlbSwgYW9zIFJBTU9TLCBDQVVTQSBlIEVGRUlUT1MuDQotICA1KSAqKmZvbnQqKiA6IHVtIHZldG9yIGRlIHZhbG9yZXMgcGFyYSBhIGZvbnRlLCBvcyB2YWxvcmVzIHJlZmVyZW0tc2UsIHBlbGEgb3JkZW0sIGFvcyByYW1vcywgY2F1c2FzIGUgZWZlaXRvcy4NCg0KDQojIyMgKipEaWFncmFtYSBkZSBJc2hpa2F3YSBUcmFkaWNpb25hbCoqDQoNCmBgYHtyfQ0KY2F1c2UuYW5kLmVmZmVjdChjYXVzZSA9IGxpc3QoTWVkaWRhICAgPSBjKCJBZmVyaWNhbyIsIkFjb21wYW5oYW1lbnRvIiwiSW5kaWNhZG9yIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRlcmlhbCA9IGMoIlF1YWxpZGFkZSIsIlBhZHJvbml6YWNhbyIsIkVudHJlZ2EiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlc3NvYXMgID0gYygiQ29tdW5pY2FjYW8iLCJEaXNjaXBsaW5hIiwiQ3JpYXRpdmlkYWRlIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbWJpZW50ZSA9IGMoIkNhbG9yIiwiRnJpbyIsIkVzcGFjbyIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0b2RvICAgPSBjKCJQcm9jZWRpbWVudG9zIiwiRXRhcGFzIiwiTWFudWFpcyIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFxdWluYSAgPSBjKCJFcXVpcGFtZW50b3MiLCJGZXJyYW1lbnRhcyIsIkluc3RydW1lbnRvcyIpKSwNCiAgICAgICAgICAgICAgICAgZWZmZWN0ID0gYygiUmVkdWNhby9BdW1lbnRvL0RlZmVpdG9zIiksDQogICAgICAgICAgICAgICAgIHRpdGxlICA9ICJEaWFncmFtYSBkZSBDYXVzYSBlIEVmZWl0byIsIA0KICAgICAgICAgICAgICAgICBjZXggICAgPSBjKDEsMSwxKSwgDQogICAgICAgICAgICAgICAgIGZvbnQgID0gYygyLDIsMikpIA0KYGBgDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCiMgKipSZWZlcsOqbmNpYXMgQmlibGlvZ3LDoWZpY2FzKioNCg0KDQotICAgMSkgTWFzb24sIFIuTC4gYW5kIFlvdW5nLCBKLkMuICgyMDAyKSBNdWx0aXZhcmlhdGUgU3RhdGlzdGljYWwgUHJvY2VzcyBDb250cm9sIHdpdGggSW5kdXN0cmlhbCBBcHBsaWNhdGlvbnMsIFNJQU0uIA0KDQotICAgMikgTW9udGdvbWVyeSwgRC5DLiAoMjAwNSkgSW50cm9kdWN0aW9uIHRvIFN0YXRpc3RpY2FsIFF1YWxpdHkgQ29udHJvbCwgNXRoIGVkLiBOZXcgWW9yazogSm9obiBXaWxleSBcJiBTb25zLiANCg0KLSAgIDMpIFJ5YW4sIFQuIFAuICgyMDAwKSwgU3RhdGlzdGljYWwgTWV0aG9kcyBmb3IgUXVhbGl0eSBJbXByb3ZlbWVudCwgMm5kIGVkLiBOZXcgWW9yazogSm9obiBXaWxleSBcJiBTb25zLCBJbmMuIA0KDQotICAgNCkgU2NydWNjYSwgTC4gKDIwMDQpLiBxY2M6IGFuIFIgcGFja2FnZSBmb3IgcXVhbGl0eSBjb250cm9sIGNoYXJ0aW5nIGFuZCBzdGF0aXN0aWNhbCBwcm9jZXNzIGNvbnRyb2wuIFIgTmV3cyA0LzEsIDExLTE3LiANCg0KLSAgNSkgV2V0aGVyaWxsLCBHLkIuIGFuZCBCcm93biwgRC5XLiAoMTk5MSkgU3RhdGlzdGljYWwgUHJvY2VzcyBDb250cm9sLiBOZXcgWW9yazogQ2hhcG1hbiBcJiBIYWxsLg0KDQotICA2KSBBbGxlbiwgVC4gVC4gKDIwMTApIEludHJvZHVjdGlvbiB0byBFbmdpbmVlcmluZyBTdGF0aXN0aWNzIGFuZCBMZWFuIFNpeCBTaWdtYSAtIFN0YXRpc3RpY2FsIFF1YWxpdHkgQ29udHJvbCBhbmQgRGVzaWduIG9mIEV4cGVyaW1lbnRzIGFuZCBTeXN0ZW1zIChTZWNvbmQgRWRpdGlvbiBlZC4pLiBMb25kb246IFNwcmluZ2VyLg0KDQotICA3KSBCb3gsIEcuICgxOTkxKS4gVGVhY2hpbmcgZW5naW5lZXJzIGV4cGVyaW1lbnRhbCBkZXNpZ24gd2l0aCBhIHBhcGVyIGhlbGljb3B0ZXIuIFJlcG9ydCA3NiwgQ2VudGVyIGZvciBRdWFsaXR5IGFuZCBQcm9kdWN0aXZpdHkgSW1wcm92ZW1lbnQuIFVuaXZlcnNpdHkgb2YgV2lzY29uc2luLg0KDQotICA4KSBDYW5vLCBFbWlsaW8gTC4sIE1vZ3VlcnphLCBKYXZpZXIgTS4gYW5kIFJlZGNodWssIEFuZHLDqXMuIDIwMTIuIFNpeCBTaWdtYSB3aXRoIFIuIFN0YXRpc3RpY2FsIEVuZ2luZWVyaW5nIGZvciBQcm9jZXNzIEltcHJvdmVtZW50LCBVc2UgUiEsIHZvbC4gMzYuIFNwcmluZ2VyLCBOZXcgWW9yay4gaHR0cDovL3d3dy5zcHJpbmdlci5jb20vc3RhdGlzdGljcy9ib29rLzk3OC0xLTQ2MTQtMzY1MS01Lg0KDQotICA5KSBDYW5vLCBFbWlsaW8gTC4sIE1vZ3VlcnphLCBKYXZpZXIgTS4gYW5kIFByaWV0byBDb3Jjb2JhLCBBbmRyw6lzLiAyMDE1LiBRdWFsaXR5IENvbnRyb2wgd2l0aCBSLiBBbiBJU08gU3RhbmRhcmRzIGFwcHJvYWNoLCBVc2UgUiEsIFNwcmluZ2VyLCBOZXcgWW9yay4NCg0KDQo6OjogcHJvZ3Jlc3MNCjo6OiB7LnByb2dyZXNzLWJhciBzdHlsZT0id2lkdGg6IDEwMCU7In0NCjo6Og0KOjo6DQo=