• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 16
  • 6
  • 1
  • Tagged with
  • 23
  • 23
  • 10
  • 10
  • 9
  • 7
  • 6
  • 6
  • 6
  • 5
  • 4
  • 4
  • 4
  • 4
  • 4
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Aiding exploratory testing with pruned GUI models

REIS, Jacinto Filipe Silva 22 February 2017 (has links)
Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-06-25T19:50:01Z No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Jacinto Filipe Silva Reis.pdf: 3426697 bytes, checksum: 1785cceb1a3f11d1a46ed89506bff902 (MD5) / Made available in DSpace on 2018-06-25T19:50:01Z (GMT). No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Jacinto Filipe Silva Reis.pdf: 3426697 bytes, checksum: 1785cceb1a3f11d1a46ed89506bff902 (MD5) Previous issue date: 2017-02-22 / Exploratory testing is a software testing approach that emphasizes the tester’s experience in the attempt to maximize the chances to find bugs and minimize the time effort applied on satisfying such a goal. It is naturally a GUI-oriented testing activity for GUI-based systems. However, inmost cases,exploratory testing strategies may not be accurate enough to reach changed code regions. To reduce this gap, in this work, we propose a way of aiding exploratory testing by providing a GUI model of the regions impacted by internal code changes (for example, as result of change requests to fix previous bugs as well as for software improvement). We create such a delimited GUI model by pruning an original GUI model, quickly built by static analysis, using a reachability relation between GUI elements (i.e., windows, buttons, text fields, etc.) and internal source code changes (classes and methods). To illustrate the idea we provide promising data from two experiments, one from the literature and another from our industrial partner. / Teste exploratório é uma abordagem de teste de software que enfatiza a experiência do testador na tentativa de maximizar as chances de encontrarbugs e minimizar o esforço de tempo aplicado na satisfação desse objetivo. É naturalmente uma atividade de testes orientada à GUI aplicada em sistemas que dispõem de GUI. No entanto, na maioria dos casos, as estratégias de testes exploratórios podem não ser suficientemente precisas para alcançar as regiões de código alteradas. Para reduzir esta lacuna, neste trabalho nós propomos uma forma de auxiliar os testes exploratórios, fornecendo um modelo de GUI das regiões impactadas pelas mudanças internas de código (por exemplo, como resultado de solicitações de mudanças para corrigirbugs anteriores, bem como, para realização de melhorias do software). Criamos um modelo de GUI delimitado, podando um modelo de GUI original, construído rapidamente através de análise estática, usando uma relação de alcançabilidade entre elementos de GUI (janelas, botões, campos de textos) e alterações de código interno (classes e métodos). Para ilustrar a ideia, nós fornecemos dados promissores de dois experimentos, um da literatura e outro de nosso parceiro industrial.
2

DEPAnalyzer: um modelo de análise estática de dependências para programas orientados a objetos

Azevedo, Silvana Campos de January 2002 (has links)
Este trabalho apresenta um modelo de análise estática de programas orientados a objetos, o qual se denomina DEPAnalyzer (DEPendencies Analyzer). O modelo realiza a análise das dependências entre as classes de um programa, ou seja, os relacionamentos estabelecidos entre estas. As classes representam as entidades estáticas, as quais em tempo de execução darão origem a conjuntos de objetos. Através da simulação do programa o modelo consegue obter as informações sobre quem se relaciona com quem e qual é a intensidade destes relacionamentos. Estas informações visam auxiliar no processo de escalonamento de um programa em uma arquitetura distribuída. Para expressar estes relacionamentos podem ser gerados dois grafos, o grafo de dependências e o grafo de invocações. A geração de um ou de ambos depende do propósito de utilização, ou seja, alocação inicial ou redistribuição dos objetos. O grafo de dependências apresenta uma versão resumida dos relacionamentos. Este adequa-se a auxiliar no processo de distribuição inicial por propiciar um panorama geral dos relacionamentos sem considerar a ordenação de ocorrência das ações. Por sua vez o grafo de invocações tem como propósito a discriminação da ordem de ocorrência das ações de uma aplicação. Viabilizando a utilização deste por parte do processo de redistribuição dos objetos.
3

DEPAnalyzer: um modelo de análise estática de dependências para programas orientados a objetos

Azevedo, Silvana Campos de January 2002 (has links)
Este trabalho apresenta um modelo de análise estática de programas orientados a objetos, o qual se denomina DEPAnalyzer (DEPendencies Analyzer). O modelo realiza a análise das dependências entre as classes de um programa, ou seja, os relacionamentos estabelecidos entre estas. As classes representam as entidades estáticas, as quais em tempo de execução darão origem a conjuntos de objetos. Através da simulação do programa o modelo consegue obter as informações sobre quem se relaciona com quem e qual é a intensidade destes relacionamentos. Estas informações visam auxiliar no processo de escalonamento de um programa em uma arquitetura distribuída. Para expressar estes relacionamentos podem ser gerados dois grafos, o grafo de dependências e o grafo de invocações. A geração de um ou de ambos depende do propósito de utilização, ou seja, alocação inicial ou redistribuição dos objetos. O grafo de dependências apresenta uma versão resumida dos relacionamentos. Este adequa-se a auxiliar no processo de distribuição inicial por propiciar um panorama geral dos relacionamentos sem considerar a ordenação de ocorrência das ações. Por sua vez o grafo de invocações tem como propósito a discriminação da ordem de ocorrência das ações de uma aplicação. Viabilizando a utilização deste por parte do processo de redistribuição dos objetos.
4

DEPAnalyzer: um modelo de análise estática de dependências para programas orientados a objetos

Azevedo, Silvana Campos de January 2002 (has links)
Este trabalho apresenta um modelo de análise estática de programas orientados a objetos, o qual se denomina DEPAnalyzer (DEPendencies Analyzer). O modelo realiza a análise das dependências entre as classes de um programa, ou seja, os relacionamentos estabelecidos entre estas. As classes representam as entidades estáticas, as quais em tempo de execução darão origem a conjuntos de objetos. Através da simulação do programa o modelo consegue obter as informações sobre quem se relaciona com quem e qual é a intensidade destes relacionamentos. Estas informações visam auxiliar no processo de escalonamento de um programa em uma arquitetura distribuída. Para expressar estes relacionamentos podem ser gerados dois grafos, o grafo de dependências e o grafo de invocações. A geração de um ou de ambos depende do propósito de utilização, ou seja, alocação inicial ou redistribuição dos objetos. O grafo de dependências apresenta uma versão resumida dos relacionamentos. Este adequa-se a auxiliar no processo de distribuição inicial por propiciar um panorama geral dos relacionamentos sem considerar a ordenação de ocorrência das ações. Por sua vez o grafo de invocações tem como propósito a discriminação da ordem de ocorrência das ações de uma aplicação. Viabilizando a utilização deste por parte do processo de redistribuição dos objetos.
5

Simulação computacional, desenvolvimento de modelos matemáticos, localização e quantificação de falhas via observador de estado em torres de transmissão / Computational simulation, development of mathematical models, location and quantification of faults by state observer in transmission towers

Bertão, Lucas Ferreira [UNESP] 02 February 2017 (has links)
Submitted by Lucas Ferreira Bertão null (lucas92341@aluno.feis.unesp.br) on 2017-04-04T14:30:35Z No. of bitstreams: 1 Dissertação Lucas completa 04-04.pdf: 2922617 bytes, checksum: 7fd640a6e475b0234de8e9e4414b0c04 (MD5) / Approved for entry into archive by Luiz Galeffi (luizgaleffi@gmail.com) on 2017-04-12T16:47:46Z (GMT) No. of bitstreams: 1 bertao_lf_me_ilha.pdf: 2922617 bytes, checksum: 7fd640a6e475b0234de8e9e4414b0c04 (MD5) / Made available in DSpace on 2017-04-12T16:47:46Z (GMT). No. of bitstreams: 1 bertao_lf_me_ilha.pdf: 2922617 bytes, checksum: 7fd640a6e475b0234de8e9e4414b0c04 (MD5) Previous issue date: 2017-02-02 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) / Monitorar a integridade de estruturas, sejam elas, máquinas ou equipamentos mecânicos, consiste em um ramo de estudo que está se firmando. As técnicas que englobam esse monitoramento fazem uso da combinação de sensores e rotinas computacionais para pode extrair os dados necessários da maneira que o operador/analista desejar. Uma das áreas carentes desse tipo de análise/controle é a de distribuição de energia. Todos os anos são noticiados casos envolvendo acidentes envolvendo torres de transmissão que vêm ao chão por, não um, mas vários fatores. Em meio as técnicas de monitoramento, a dos observadores de estado é a que se destaca mais. Contudo, apesar do destaque, a técnica dos observadores de estado possui restrições que motivam novas abordagens. Outro método numérico utilizado amplamente na área de análises em engenharia é o Método dos Elementos Finitos. Este conhecido método, que já possui base mais sólida de desenvolvimento, atualmente faz uso de softwares para a realização dos cálculos de análise estática e/ou dinâmica. O presente trabalho, em conjunto com os observadores de estado e o método dos elementos finitos, mostra uma abordagem, ainda que simples, de uma área pouco explorada com o método – a de detecção e localização de falhas em torres de transmissão via observadores de estados aliado ao método dos elementos finitos. / Monitor the integrity of structures, whether machinery or mechanical equipment consists of a branch of study that is steadying. The techniques include such monitoring makes use of the combination of computational sensors and routines can extract the necessary data in the way that the operator / analyst desired. One of the poorest areas of this type of analysis / control is the power distribution. Every year cases are reported involving accidents involving transmission towers that come to the ground by not one, but several factors. Among the monitoring techniques, the State Observer is the one that stands out more. However, despite the emphasis, the technique of state observers has restrictions that motivate new approaches. Another numerical method widely used in the area of analysis in engineering is the Finite Element Method. This known method, which already has more solid foundation of development, currently makes use of software to perform the calculations. This work, together with the status of observers and the finite element method, shows an approach, although simple, a little explored area to the method - the detection and fault location in transmission towers via state observers combined with the finite element method.
6

Simulação computacional, desenvolvimento de modelos matemáticos, localização e quantificação de falhas via observador de estado em torres de transmissão /

Bertão, Lucas Ferreira. January 2017 (has links)
Orientador: Gilberto Pechoto de Melo / Resumo: Monitorar a integridade de estruturas, sejam elas, máquinas ou equipamentos mecânicos, consiste em um ramo de estudo que está se firmando. As técnicas que englobam esse monitoramento fazem uso da combinação de sensores e rotinas computacionais para pode extrair os dados necessários da maneira que o operador/analista desejar. Uma das áreas carentes desse tipo de análise/controle é a de distribuição de energia. Todos os anos são noticiados casos envolvendo acidentes envolvendo torres de transmissão que vêm ao chão por, não um, mas vários fatores. Em meio as técnicas de monitoramento, a dos observadores de estado é a que se destaca mais. Contudo, apesar do destaque, a técnica dos observadores de estado possui restrições que motivam novas abordagens. Outro método numérico utilizado amplamente na área de análises em engenharia é o Método dos Elementos Finitos. Este conhecido método, que já possui base mais sólida de desenvolvimento, atualmente faz uso de softwares para a realização dos cálculos de análise estática e/ou dinâmica. O presente trabalho, em conjunto com os observadores de estado e o método dos elementos finitos, mostra uma abordagem, ainda que simples, de uma área pouco explorada com o método – a de detecção e localização de falhas em torres de transmissão via observadores de estados aliado ao método dos elementos finitos. / Mestre
7

Estudo em estruturas de máquinas-ferramenta com emprego de modelos reduzidos

Pinto, Benedito Geraldo Miglio 12 1900 (has links)
Submitted by maria angelica Varella (angelica@sibi.ufrj.br) on 2018-01-15T12:26:08Z No. of bitstreams: 1 beneditogeraldomigliopinto.pdf: 2000395 bytes, checksum: 4a503539c49605338e54eaeda3a2c66d (MD5) / Made available in DSpace on 2018-01-15T12:26:09Z (GMT). No. of bitstreams: 1 beneditogeraldomigliopinto.pdf: 2000395 bytes, checksum: 4a503539c49605338e54eaeda3a2c66d (MD5) Previous issue date: 1972-12 / CNPq / Estuda e analisa as características estático-dinâmicas de máquinas-ferramenta. Estuda-se o comportamento de um torno IMOR P-400 através de seu barramento, que é o elemento governante da rigidez total deste tipo de estrutura. A técnica usada é de modelos reduzidos com emprego de material plástico (acrílico). Apresentou-se também um novo desenho para ilustrar o método comparativo de projetos estruturais aplicado geralmente às estruturas complexas, onde um estudo matemático nem sempre apresenta resultados satisfatórios. Algumas modificações na estrutura original são sugeridas, tendo como base a análise dos resultados obtidos. / Study and analyse the static-dynamics characteristics of machines tools. Itis a study of the behaviour of a IMOR P-400 lathe by considering the bed of the machine which is the governing element of the total rigidity of this type of structure. The scale models technique is applied using plastic material (plexiglass). It has been also presented a new design, to ilustrate the comparative method of structurals designs, applied generally to complex structures, where a mathematical study do not give sàisfactories results. Some modifications on the original structure are suggested considering the analysis of the results obtained.
8

Context-sensitive analysis of x86 obfuscated executables

Boccardo, Davidson Rodrigo [UNESP] 09 October 2009 (has links) (PDF)
Made available in DSpace on 2014-06-11T19:30:32Z (GMT). No. of bitstreams: 0 Previous issue date: 2009-10-09Bitstream added on 2014-06-13T18:40:52Z : No. of bitstreams: 1 boccardo_dr_dr_ilha.pdf: 1178776 bytes, checksum: cdd885f0beff962757e3b9de59ce0832 (MD5) / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) / Ofusca c~ao de c odigo tem por nalidade di cultar a detec c~ao de propriedades intr nsecas de um algoritmo atrav es de altera c~oes em sua sintaxe, entretanto preservando sua sem antica. Desenvolvedores de software usam ofusca c~ao de c odigo para defender seus programas contra ataques de propriedade intelectual e para aumentar a seguran ca do c odigo. Por outro lado, programadores maliciosos geralmente ofuscam seus c odigos para esconder comportamento malicioso e para evitar detec c~ao pelos anti-v rus. Nesta tese, e introduzido um m etodo para realizar an alise com sensitividade ao contexto em bin arios com ofuscamento de chamada e retorno de procedimento. Para obter sem antica equivalente, estes bin arios utilizam opera c~oes diretamente na pilha ao inv es de instru c~oes convencionais de chamada e retorno de procedimento. No estado da arte atual, a de ni c~ao de sensitividade ao contexto est a associada com opera c~oes de chamada e retorno de procedimento, assim, an alises interprocedurais cl assicas n~ao s~ao con aveis para analisar bin arios cujas opera c~oes n~ao podem ser determinadas. Uma nova de ni c~ao de sensitividade ao contexto e introduzida, baseada no estado da pilha em qualquer instru c~ao. Enquanto mudan cas em contextos a chamada de procedimento s~ao intrinsicamente relacionadas com transfer encia de controle, assim, podendo ser obtidas em termos de caminhos em um grafo de controle de uxo interprocedural, o mesmo n~ao e aplic avel para mudan cas em contextos a pilha. Um framework baseado em interpreta c~ao abstrata e desenvolvido para avaliar contexto baseado no estado da pilha e para derivar m etodos baseado em contextos a chamada de procedimento para uso com contextos baseado no estado da pilha. O metodo proposto n~ao requer o uso expl cito de instru c~oes de chamada e retorno de procedimento, por em depende do... / A code obfuscation intends to confuse a program in order to make it more di cult to understand while preserving its functionality. Programs may be obfuscated to protect intellectual property and to increase security of code. Programs may also be obfuscated to hide malicious behavior and to evade detection by anti-virus scanners. We introduce a method for context-sensitive analysis of binaries that may have obfuscated procedure call and return operations. These binaries may use direct stack operators instead of the native call and ret instructions to achieve equivalent behavior. Since de nition of context-sensitivity and algorithms for context-sensitive analysis has thus far been based on the speci c semantics associated to procedure call and return operations, classic interprocedural analyses cannot be used reliably for analyzing programs in which these operations cannot be discerned. A new notion of context-sensitivity is introduced that is based on the state of the stack at any instruction. While changes in calling-context are associated with transfer of control, and hence can be reasoned in terms of paths in an interprocedural control ow graph (ICFG), the same is not true for changes in stackcontext. An abstract interpretation based framework is developed to reason about stackcontext and to derive analogues of call-strings based methods for the context-sensitive analysis using stack-context. This analysis requires the knowledge of how the stack, rather the stack pointer, is represented and on the knowledge of operators that manipulate the stack pointer. The method presented is used to create a context-sensitive version of Venable et al.'s algorithm for detecting obfuscated calls. Experimental results show that the contextsensitive version of the algorithm generates more precise results and is also computationally more e cient than its context-insensitive counterpart.
9

Explorando o processo da análise de códigos maliciosos

Oliveira, Silvio Danilo de 08 August 2013 (has links)
Submitted by João Arthur Martins (joao.arthur@ufpe.br) on 2015-03-12T16:55:51Z No. of bitstreams: 2 Dissertaçao Silvio de Oliveira.pdf: 604569 bytes, checksum: 5837923262c0c58827bf0437204a80c7 (MD5) license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) / Approved for entry into archive by Daniella Sodre (daniella.sodre@ufpe.br) on 2015-03-13T13:15:24Z (GMT) No. of bitstreams: 2 Dissertaçao Silvio de Oliveira.pdf: 604569 bytes, checksum: 5837923262c0c58827bf0437204a80c7 (MD5) license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) / Made available in DSpace on 2015-03-13T13:15:24Z (GMT). No. of bitstreams: 2 Dissertaçao Silvio de Oliveira.pdf: 604569 bytes, checksum: 5837923262c0c58827bf0437204a80c7 (MD5) license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) Previous issue date: 2013-08-08 / Programas maliciosos tornaram-se uma crescente ameaça para a sensibilidade e a disponibilidade dos dados em serviços críticos. Com a grande conectividade dos dias atuais, sistemas tornaram-se onipresentes e extremamente integrados e esta integração e onipresença facilita atividades tais como, ciberterrorismo e fraudes financeiras. O surgimento dos malwares não é algo novo, ele data de muitos anos atrás, concomitantemente com o surgimento destes códigos, também surgiram pesquisadores que não eram somente fascinados por algoritmos de computadores, mais também pela natureza matemática e a aproximação biológica encontrada nestes códigos. No começo era relativamente fácil categorizar estes tipos de códigos, mas atualmente existe uma variedade imensa, onde suas características por muitas vezes se sobrepõem, ficando assim, difícil de identificar com exatidão a que categoria o malware pertence. O espectro dos malwares cobre uma ampla variedade de ameaças específicas incluindo vírus, worms, trojan horses e spyware. Para combater estas pragas eletrônicas, precisamos antes de tudo analisar o seu código e seu comportamento, existem duas grandes vertentes no ramo da análise de malwares, a análise de código de estática, ou seja, sem executar o programa, e a análise dinâmica, existindo a necessidade da execução. Para ambos os processos de análises foram criadas inúmeras ferramentas e metodologias no intuito de facilitar suas atividades e fazer com que usuários com certo grau de conhecimento fosse capaz de identificar e classificar um código de natureza maliciosa. Mas como existe sempre dois lados da moeda, os escritores de malwares estão sempre aperfeiçoando suas técnicas para dificultar a exploração de seus códigos, dentre estas técnicas incluímos códigos polimórficos, oligomórficos, metamórficos e vários tipos de ofuscação e empacotamento de código. Neste sentido, esta dissertação visa explorar de maneira clara e objetiva os conceitos inerentes à análise de um código malicioso, mostrando suas técnicas e seus desafios. Também é objeto deste estudo, a criação de uma ferramenta que atuará no estágio inicial de uma análise estática, examinando os arquivos PE doWindows, extraindo informações do seu formato assim como a detecção de técnicas de empacotamento e anti-debugging.
10

Ranking source code static analysis warnings for continuous monitoring of free/libre/open source software repositories / Ranqueamento de avisos de análise estática de código fonte para monitoramento de repositórios de software livre

Athos Coimbra Ribeiro 22 June 2018 (has links)
While there is a wide variety of both open source and proprietary source code static analyzers available in the market, each of them usually performs better in a small set of problems, making it hard to choose one single tool to rely on when examining a program. Combining the analysis of different tools may reduce the number of false negatives, but yields a corresponding increase in the number of false positives (which is already high for many tools). An interesting solution, then, is to filter these results to identify the issues least likely to be false positives. This work presents kiskadee, a system to support the usage of static analysis during software development by providing carefully ranked static analysis reports. First, it runs multiple static analyzers on the source code. Then, using a classification model, the potential bugs detected by the static analyzers are ranked based on their importance, with critical flaws ranked first, and potential false positives ranked last. To train kiskadee\'s classification model, we post-analyze the reports generated by three tools on synthetic test cases provided by the US National Institute of Standards and Technology. To make our technique as general as possible, we limit our data to the reports themselves, excluding other information such as change histories or code metrics. The features extracted from these reports are used to train a set of decision trees using AdaBoost to create a stronger classifier, achieving 0.8 classification accuracy (the combined false positive rate from the used tools was 0.61). Finally, we use this classifier to rank static analyzer alarms based on the probability of a given alarm being an actual bug. Our experimental results show that, on average, when inspecting warnings ranked by kiskadee, one hits 5.2 times less false positives before each bug than when using a randomly sorted warning list. / Embora exista grande variedade de analisadores estáticos de código-fonte disponíveis no mercado, tanto com licenças proprietárias, quanto com licenças livres, cada uma dessas ferramentas mostra melhor desempenho em um pequeno conjunto de problemas distinto, dificultando a escolha de uma única ferramenta de análise estática para analisar um programa. A combinação das análises de diferentes ferramentas pode reduzir o número de falsos negativos, mas gera um aumento no número de falsos positivos (que já é alto para muitas dessas ferramentas). Uma solução interessante é filtrar esses resultados para identificar os problemas com menores probabilidades de serem falsos positivos. Este trabalho apresenta kiskadee, um sistema para promover o uso da análise estática de código fonte durante o ciclo de desenvolvimento de software provendo relatórios de análise estática ranqueados. Primeiramente, kiskadee roda diversos analisadores estáticos no código-fonte. Em seguida, utilizando um modelo de classificação, os potenciais bugs detectados pelos analisadores estáticos são ranqueados conforme sua importância, onde defeitos críticos são colocados no topo de uma lista, e potenciais falsos positivos, ao fim da mesma lista. Para treinar o modelo de classificação do kiskadee, realizamos uma pós-análise nos relatórios gerados por três analisadores estáticos ao analisarem casos de teste sintéticos disponibilizados pelo National Institute of Standards and Technology (NIST) dos Estados Unidos. Para tornar a técnica apresentada o mais genérica possível, limitamos nossos dados às informações contidas nos relatórios de análise estática das três ferramentas, não utilizando outras informações, como históricos de mudança ou métricas extraídas do código-fonte dos programas inspecionados. As características extraídas desses relatórios foram utilizadas para treinar um conjunto de árvores de decisão utilizando o algoritmo AdaBoost para gerar um classificador mais forte, atingindo uma acurácia de classificação de 0,8 (a taxa de falsos positivos das ferramentas utilizadas foi de 0,61, quando combinadas). Finalmente, utilizamos esse classificador para ranquear os alarmes dos analisadores estáticos nos baseando na probabilidade de um dado alarme ser de fato um bug no código-fonte. Resultados experimentais mostram que, em média, quando inspecionando alarmes ranqueados pelo kiskadee, encontram-se 5,2 vezes menos falsos positivos antes de se encontrar cada bug quando a mesma inspeção é realizada para uma lista ordenada de forma aleatória.

Page generated in 0.0503 seconds