quarta-feira, 9 de julho de 2008

NFe-Tecnologia Java

Tecnologia Java

- A Tecnologia Java, mantida pela Sun MicroSystms, é uma das alternativas para gerar e manter sistemas que fazem uso da NFe. Juntamente com o Java, para gerar arquivos, assinar digitalmente, ler e validar a NFe, são utilizadas a tecnologias: XML, JDOM, SAX, DOM4J, XML Signature, SOA, WSDL e outras.

- As IDE's NetBeans 6.1 e o Eclipse Europa, são excelentes ferramentas de desenvolvimento de aplicações em Java, para lidar com a NFe.

Onde obter o Java - JSDK?
- SDK 1.5 ou superior;
- Servidor de aplicação que suporte JEE5 (
Glassfish, Tomcat6...);
- Mysql Database 5.0


Curos Java On-Line
- Algumas dicas são: PortalJava, Global Code, Caelum, Learning e GUJ - Grupos Java. Visite também o Br-Linux.

Java XML Signature API
- Como utilizar a Tecnologia Java para gerar Chaves Públicas, assinar e validar XML.


* Marca da Comunidade Portal Sou Java:







Tutoriais Java Beginner
* Video - Iniciando em Java com Eclipse IDE
* Videos grátis no Site: http://eclipsetutorial.sourceforge.net/totalbeginner.html
* Tutorial Java em PDF - Java Beginner


IDE Java - Novas versões
* Saiu a nova versão do Eclipse 3.4 - Ganymede
* Saiu a nova versão do NetBeans 6.5
* Tutoriais NetBeans - Planeta
* GWT - Google Web Tools Kit

Notícias no Planeta NetBeans:

- O Netbeans.org anunciou a disponibilidade do NetBeans IDE 6.5 Beta. Abaixo a tradução do anúncio:

O NetBeans IDE 6.5 introduz várias novas funcionalidades, incluindo uma IDE robusta para PHP, deputação de JavaScript para o Firefox e IE, e suporte a Groovy e Grails. Esse lançamento também inclui várias melhorias para o desenvolvimento em Java, Ruby e Rails, e C/C++. Dentre as melhorias no Java destacam-se: suporte nativo ao Hibernate, importação de projetos do Eclipse, e compilação no salvamento.

Links:

Principais novidades:
- A página de novidades está disponivel aqui , e eu intitulei alguns recursos interessantes:

Google Java API - Hospede sua aplicação no Google

Com a Google App Engine for Java é possível construir aplicações web com Java e rodar na estrutura escalável do google.
O ambiente Java possui Java 6, Java Servlets, acesso ao Banco de Dados e Services do App Engine com JDO, JPA, JavaMail e JCache.
Também é possível baixar o Google Plugin for Eclipse para debugar código no Eclipe antes de fazer deploy no google.
Google Web Toolkit (GWT) também é suportado.




Web Service e XML

* A Sun MicroSystem tem produrado facilitar o uso de Web Service e XML. São mutios projetos, subprojetos e especificações, por exemplo:

JAXP (pacote java.xml no geral) - Processamento geral de XML, com os já antigos SAX e DOM, além de transformadores (XLST) e XPath.

JAXB (pacote javax.xml.bind) - Assocaição/mapeamento de classes java para XML.

JAX-WS (pacote javax.xml.ws) - Criação e consumo de webservices. Aliada a especificação de metadados para webservices (pacote javax.jws), torna a JAX-WS poderosa e fácil de usar.

JAXR (pacote javax.xml.registry) - para acesso aos registros de serviços XMLs, como UDDI.

JAX-RPC (pacote javax.xml.rpc) - era o nome antigo do atual JAX-WS. O JAX-WS mudou de nome e já apareceu como 2.0, essa mundaça foi justificada pelo fato dessa API passar a trabalhar bem mais próxima da API do JAXB, além do óbvio marketing


Os 7 hábitos dos desenvolvedores de WebServices altamente eficazes

* Publicado no blog do CAELUM - Por Paulo Silveira em 18/02/08 .

* No evento Café Com Tapioca, evento do CeJUG realizado em Fortaleza 18/02/2008, organizado por Rafael Carneiro, do PortalJava e do CeJUG, muitas pessoas perguntaram bastante sobre webservices: em especial JSON e Rest. Compilei alguns dos pontos que foram recorrentes nas discussões e considerados como boas práticas:

Cuidado com a granularidade - a granularidade do seu serviço não pode ser muito fina, caso contrário seus seviços sofrerão dos mesmos problemas que o EntityBean do EJB2 exposto remotamente: uma enorme quantidade de requisições serão disparadas para executar pequenas tarefas, como getters! Seus serviços devem realizar uma quantidade significativa de tarefas, para evitar um número alto de roundtrips!

Exponha serviços, não dados - é comum ouvir a frase “Vou criar webservices para expor os meus dados“. O grande perigo aqui é deixar toda a lógica de negócio na mão do cliente, o que descentralizará seu serviço e forçará o cliente a realizar muitas requisições ao servidor. Devemos expor serviços, e não dados em sua forma mais crua.

Nunca parsear WSDL/SOAP manualmente - antes das ferramentas que trabalham com webservices terem atingido sua maturidade, era muito comum ver por aí as pessoas gerando o SOAP manualmente, através de bibliotecas XML ou às vezes até mesmo concatenando String com o uso de StringBuffer! O SOAP é o protocolo de comunicação, e assim como quando você usa RMI/CORBA e você não enxerga absolutamente nada do JRMP/IIOP, você nunca deveria ter contato direto com o protocolo de comunicação! O SOAP e o WSDL devem ser utilizados por ferramentas, e não pela sua própria aplicação. Hoje em dia qualquer ferramenta como o Apache Axis, Apache CXF, ou mesmo o wsimport, que já vem no JDK 6, auxilia nossa tarefa de gerar Stubs que sabem trabalhar com o SOAP, sem que você nem mesmo precise ve-lo um dia. Se você está usando um servidor de aplicação, esta tarefa é ainda mais fácil, até mesmo para fazer o deploy do serviço.

Não enviar XML dentro de XML - outra prática comumente encontrada em aplicações antigas que usam Webservices: dentro do SOAP é enviado um outro XML como um dos parâmetros, então mesmo usando ferramentas para gerar os stubs você fica com uma String que dentro dela há um XML e este precisa ser parseado por sua própria aplicação. Isto é uma má interpretação do conceito que “Webservices é comunicação via XML“. Concordo que em alguns raros casos isso possa fazer sentido, como por exemplo se o valor do que você quer realmente é um outro XML, mas no geral isto é feito sem necessidade nenhuma, como é o famoso caso do WebService MS Office dos Correios do Brasil.

Considerar protocolo binário - são muitas as reclamações de que o SOAP acaba sendo um XML grande e pesado para ser transportado. Hoje em dia há muitas formas de contornar isso, como o uso do padrão Fast InfoSet para compressão do XML. Uma outra forma seria o uso de protocolos proprietários, como o AMF da Adobe, que é uma opção comum no uso do Flex.

Considerar não usar WSDL/SOAP - pelas diversas críticas a burocracia exagerada do WSDL/SOAP, muitas pessoas estão optando por usar algo mais simples, como o bom e velho XML (POX), JSON ou até mesmo uma forma qualquer de estruturar dados. Caso você precise de simplicidade e velocidade no desenvolvimento com outras plataformas, essa é uma boa opção. Cuidado: muita gente está considerando qualquer webservice que não use WSDL/SOAP como sendo REST. Os webservices do flickr e da Amazon são um bom exemplo: tudo é via GET (as vezes POST) e não há recurso identificado pela URI. Na verdade ele usa apenas um esquema HTTP+XML (POX), considerado apenas em parte como RESTful. Você pode ver que esses webservices são muito diferentes do modelo RESTful do Atom Publishing Protocol. Criar um protocolo realmente REST como este não é fácil: porém teremos esse trabalho bastante simplificado com a JAX-RS (JSR 311), e já podemos ver isso através do Glassfish Jersey.

Considerar usar JSON - JSON é um formato que tem ganho muita popularidade. Não é a toa: além de ser um simples para debugar, parsear e gerar, com javascript basta fazer um eval em um resultado JSON que ele já estará pronto para usar. É uma excelente opção para o consumo via AJAX e criação de mashups. JSON tem ganho bastante força na comunidade Flex, tornando-o uma ótima opção como ponte entre Flex e Java. A escolha por JSON abre portas para muitos tipos diferentes de clientes, e em especial o browser, que é nossa plataforma global.



FrameWorks:

Struts II:
* Tutorial - Struts-2 no NetBeans 6.5 - Novo
* Tutorial - Struts-2 no NetBeans 6.1
* Start - Struts-2 - Hello World - dicas suport
* Tutorial - Struts-2-Ajax-Spring-JPA
* Aprenda - Struts-2
* Plugin - Alveole Studio MVC - para Eclipse.

Outros FrameWorks:
*JSF
*Spring
*JPA
*Hibernate
- Breve, links, dicas e mais informaçoes sobre os FrameWorks.



Dicas para quem gosta de ler:

Para obter mais informações sobre as tecnologias mencionadas acima, visite os sites abaixo:
1) Livros em PDF gratis. Basta fazer um login no link: http://www.scribd.com/
2) Como criar Web Services com Axis no NetBeans 6.1 - e muitos tutoriais do NetBeans.

iGoogle - Livros em PDF free

- É isso mesmo, aqui tem um exemplo de como você pode buscar por livros na internet sem ao menos ir ao site iLibrary.
- O site utiliza o Google Co-op e também tem a possibilidade de colocar um gadget no seu site ou então colocar no iGoogle. Como obter gadgets free : www.google.com-gadgets

Criando Portal em Java, usando o Liferay Portal

Liferay Portal 4.3.1 - Instalação do ambiente de desenvolvimento no eclipse 3.3 (Europa)

- O Liferay Portal é uma solução empresarial de portal, open-source, desenvolvida em Java.

- A documentação disponível e a lista dos passos necessários para concluir a instalação pode ser encontrada no ZonaJ. Comece instalando o Liferay Portal em: download de um dos bundles do Liferay disponíveis no endereço http://www.liferay.com/web/guest/downloads.


JBossTools 2.1.2 para Eclipse

- O Eclipse 3.4 Ganymede foi atualizado. Não deixe de adicionar ao Eclipse o pacote de plug-ins JBoss Tools, cuja versão atualizada 2.1.2 foi lançada dia 1º de julho/2008. Os plug-ins são essenciais para quem desenvolve em Java EE web usando o servidor de aplicações JBoss AS e/ou [...] leia mais...

Ajax com Rails

- Nem tudo deve ser só Java... e para não falarem que sou contra o Ruby on Rails, vejam só este link legal: Ajax-on-rails.html. Outras dicas sobre Rails podem ser encontradas no site do InfoBlogs.


Blog do Urubatan

- No blog do Urubatan tem excelentes artigos e dicas sobre a Tecnologia Java. Notícias e dicas sobre FrameWorks, eventos Java, tutoriais e demos.


Dicas para NFe:

* Um Sevidor e Assinador NFe em .Net
* Este projeto mostra o componente NFeExpress que foi desenvolvido originalmente para ser adicionado a aplicativos em operação e oferecer suporte à nota fiscal eletrônica.

* XML com C# - http://www.csharphelp.com/



Profissão Analista de Sistemas

- Leia o Projeto de Lei para regulamentar a profissão de analista de sistemas.


API’s Google para o GWT

* Publicado no blog: http://www.gwt.com.br/

O que é GWT ?

Basicamente GWT (Google Web Toolkit) é um conjunto de ferramentas de desenvolvimento, uma API e um conjunto de componentes visuais projetadas para o desenvolvimento de aplicações Web.

A principal diferença entre GWT e outros frameworks é que o código que é executado no browser é feito em Java ao invés de Javascript.

Por mais que Javascript seja uma linguagem de programação com muitos defensores, utilizar Java para implementar a camada de apresentação possui várias vantagens tais como: a linguagem de programação Java é fortemente tipada e o seu código é compilado, assim, muitos erros são encontrados em tempo de compilação; existem muitas IDEs (excelentes, conhecidas e gratuitas) para o desenvolvimento em Java; por fim, a quantidade de programadores Java é muito maior do que a quantidade de programadores Javascript.



* O Google lançou recentemente o projeto Google API Libraries for Google Web Toolkit. O projeto ainda é RC (Realese Candidate). Agora os desenvolvedores GWT poderão usar as APIs do Google dentro das suas aplicações. Por enquanto estão disponíveis as Apis do Google Gears, Google Gadgets, Google Search e Google Maps.
O interessante no Google Maps é que além do desenvolvedor poder disponibilizar mapas dentro das suas aplicações, também pode colocar widgets do GWT dentros desses mapas.
Veja mais....
--------------------------- x -------------------


JSF com
icefaces ou richfaces?

RichFaces 3.1.3

- Foi lançada a versão 3.1.3 do RichFaces, esta versão inclui algumas correções de bugs e alguns novos componentes, um componente em específico caíu como uma luva para um projeto pessoal.
Os novos componentes são os componentes abaixo.
  • No rich:calendar agora é possível disponibilizar também a seleção da hora:minuto PM/AM.




  • Componente bem legal para Controle de itens disponíveis e itens ativos.


  • Componente que permite a ordenação de uma lista pelo usuário.


  • Component que permite a renderização de um menu item ao clicar com botão direito sobre uma div.
- O seu concorrente IceFaces, desenvolvido pela empresa ICEsoft Technologies Inc, o framework é muito bom e fácil de ser utilizado, vem com diversos componentes que permitem a utilização de drag and drop, autocomplete, calendário, efeitos(estilo http://script.aculo.us/), menu tree view e menu bar nas aplicações.

- Fica a dúvida. Como decidir qual o melhor FrameWok para integrar ao JSF?


JSF com Ajax

- No mercado existem diversos framework´s JSF que facilitam o uso de RIA e permitem o uso do ajax sem a necessidade de escrever nenhum código javascript.

Estes são alguns framework´s em uso no mercado.


IceFaces



Desenvolvido pela empresa ICEsoft Technologies Inc, o framework é muito bom e fácil de ser utilizado, vem com diversos componentes que permitem a utilização de drag and drop, autocomplete, calendário, efeitos(estilo http://script.aculo.us/), menu tree view e menu bar nas aplicações.

Exemplos:
http://component-showcase.icefaces.org/


RichFaces
Desenvolvido pela exadel, hoje o framework se tornou open source e agora está com o JBOSS.ORG.
O RichFaces é um framework bem completo também, tem diversos componentes como: treview, panel, google maps, modal panel, drag and drop e menu bar.
Exemplos:
http://livedemo.exadel.com/richfaces-demo/


Webgalileofaces
Desenvolvido pela empresa Webgalileo, disponibiliza diversos componentes como: chart, google maps, calculadora (estilo windows), editor html, flow chart.



Exemplos:
http://javawebcomponents.com/webgalileofaces/

MyFaces
Projeto que esta com a apache, o myfaces tem 3 sub-projetos que ajudam na construção de componentes JSF: Tomahawk, Sandbox e Tobago.
Alguns dos seus componentes são: Integração com componentes do dojo, Calendário, Html editor, Input Suggest, Auto Update DataTable, FishEye Navigation Menu.



ADFFaces
Foi desenvolvido pela Oracle,

permite uma grande produtividade se utilizado com a IDE JDeveloper.




JMaki

JMaki é um framework que possui diversos
componentes visuais, o JMaki possui uma coletânea de outros componentes
que fazem o uso de javascript.
Uns dos seus componentes são: Dojo, Yahoo,
Scriptaculous, Google e Spry.


Exemplos:
https://ajax.dev.java.net/samples/samples.html


Web Service - JAX-WS, JSF, Spring e JPA


- Como desenvolver aplicações Java integrando as tecnologias Web Service, JSF, Spring e JPA.


Artigo sobre Collections - Parte I

Olá pessoal!

- Veja a publicação do artigo sobre collections no site da Devmedia.


Iniciando com JPA

- JPA, acrônimo de Java Persistence API, que veio junto com o Java EE 5, trouxe diversas funcionalidades que ajudam e muito a vida dos desenvolvedores. A JPA faz parte da especificação EJB 3.0, porém à rumores de que na versão 6 do Java EE ela seja retirada dessa especificação.

- Veja o Vídeo sobre JPA, com tradução em português. Muito Bom.

A JPA é caracterizada em três áreas:
  • Java Persistence API
  • Query Language
  • Mapeamento Objeto/Relacional
Logo abaixo irei dar exemplos de como inserir uma entidade no banco de dados, utilizando as annotations do EJB 3.0, os objetos do JPA , o banco de dados MySQL 5.0 e o Oracle TopLink como provider.

Iremos precisar de algumas libs para este exemplo, no final do post tem um link para você baixar o exemplo completo, com as classes e as libs necessárias.

- Criando a entidade
Iremos criar a nossa classe de entidade chamada Usuario, que irá possuir os seguintes atributos: id, login, password e nome.
Ela nada mais é do que um simples POJO (Plain Old Java Ob
ject) com alguns atributos, métodos acessores e não herda de nenhuma classe. Em aplicações coorporativas que utilizam toda a especificação EJB é necessário que essas classes possuam mais características, como serialização por exemplo.

Vamos aos códigos:


Figura 1

Na linha 10 eu informo que esse objeto será uma entidade, marcando com a annotation @Entity.
Na linha 11 informo o nome da tabela, atráves da annotation @Table, usando o atributo name da mesma.

Já na linhas 14 e 15, indico que este atributo será um id (marcado com a annotation @Id) e que a sua estratégia de geração de valores no banco será IDENTITY (para o Oracle usa-se SEQUENCE).
Os demais atributos são marcados com @Column, porém não é necessário fazê-lo, a menos que você quizesse utilizar alguns dos atributos dessa annotation, como name, que indica qual vai ser o nome da coluna no banco.

- Criando a classe UsuarioDAO para persistência

Como este post é apenas um exemplo simples de persistência utilizando JPA, criei apenas uma classe DAO (padrão de projeto Data Access Object) que contém o código principal para a persistência.

Figura 2

Na linha 18 eu crio meu objeto factory, recebendo a instância do provider, que irá encontrar o nome do persistence-unit no arquivo persistence.xml.

Em seguinda, na linha 19 eu crio o objeto EntityManager, que é o principal objeto para a persistência na JPA.

O método inserirUsuario utiliza o objeto EntityTransaction, para transações.

Na linha 35 o objeto eu chamo o método persist do objeto EntityManager, passando a entidade para ser gravada no banco.

Existem vários outros métodos relacionados a persistência, como o find, delete, merge e outros. Aconselho dar uma lida na especificação para conhecer estes métodos, quais seus propósitos e suas funcionalidades.

- Arquivo de configuração (persistence.xml)

Esse é o arquivo de configuração, que configura o nome da unidade de persistência, o tipo de transação, as configurações de banco, o provider, as classes de entidades e etc.

Figura 3

Atenção para a linha 15, essa propriedade informa o tipo de geração das tabelas do banco. Na primeira vez que você rodar o exemplo, o provider irá criar as tabelas no schema exemplojpa.

Se você tentar rodar novamente o exemplo sem comentar ou tirar essa linha, irá gerar um erro informando que já existe uma tabela criada no banco, mas os dados irão ser persistidos. Então ao rodar a primeira vez, comente essa linha ou troque o tipo de geração.


Abaixo você poderá fazer o download do exemplo, com as classes, as libs e o persistence.xml (arquivo de configuração).

Este exemplo foi bastante simples e a JPA é bastante vasta, portanto baixe as especificações e estude mais afundo sobre esse excelente meio de persistência!

Download do exemplo
Screencast excelente sobre JPA


NetBeans 6.0 - demos

WebService no NetBeans



Java JRE e JSDK

JRE - È a máquina virtual java (JVM - java virtual machine)

- O Download é grátis e a instalação razoavelmente simples.

Vejamos as instruções para instalação em ambiente Windows

Você pode baixar uma das duas versões disponíveis.

Existe a versão on-line

Neste caso é feito o download de um arquivo de programa executável IFTW (Instalação da Web), por exemplo, jre-6-rc-windows-i586-iftw.exe, com aproximadamente 361 KB. Esse Download é recomendado se você possui conexão à Internet. Ao ser executado, o programa obtém todos os arquivos necessários na Web.

E a versão off-line

Este processo exige o download de um arquivo executável (por exemplo, jre-6u3-rc-windows-i586.exe, com aproximadamente 11,9 Mb) que contém todos os arquivos necessários para a instalação completa. O computador não precisa estar conectado à Internet durante a instalação. O arquivo também pode ser copiado para um computador não conectado à Internet via cd, pen drive, mp3, ou qualquer mídia de memória móvel.

Após o donwload dos arquivos siga as instruções a baixo:

Para iniciar o processo de instalação, clique duas vezes no ícone do arquivo salvo.

O instalador descompacta os arquivos necessários para a instalação. Uma vez descompactados os arquivos, é exibida uma tela de boas-vindas e o programa da instalação apresenta uma opção para exibir o contrato de licença. Você pode optar por Aceitar o contrato de licença e continuar o processo de instalação.

6020010212.jpg

Se você não tiver a barra de ferramentas Google para Internet Explorer e Google Desktop instalados, o programa apresentará as opções de instalar esses programas junto com o JRE. Faça suas seleções clicando nas caixas de seleção próximas à barra de ferramentas Google ou Google Desktop e clique em Avançar

6020010218.jpg

O instalador exibe uma tela de Instalação personalizada que permite que você selecione os recursos do programa que deseja instalar. A não ser que você seja um usuário avançado e deseje ter um controle mais preciso sobre os componentes que serão instalados, recomendamos que escolha as configurações padrão.

6020010216.jpg

Depois de verificar se os recursos desejados do programa foram selecionados, clique no botão Avançar para continuar com a instalação. Agora que você forneceu ao instalador todas as informações necessárias, serão exibidas caixas de diálogo mostrando o andamento do processo de instalação.

6020010214.jpg

As caixas de diálogo finais confirmam as últimas etapas do processo de instalação, e uma mensagem de conclusão é exibida com a confirmação Obrigado!


6020010219.jpg



Links e dicas:

Versões antigas e desatualizadas, estão mais vulneráveis aos malwares.
  • Faça o download da última versão do Java Runtime Environment (JRE) 6 Update 7 e salve no seu ambiente de trabalho (Desktop).
  • Navegue até "Java Runtime Environment (JRE) 6 Update 7...allows end-users to run Java applications".
  • Clique em "Download". (está do lado direito)
  • Selecione a sua Plataforma: "Windows".
  • Selecione a sua linguagem: "Português".
  • Leia a Licença de uso e marque a caixa: "Accept License Agreement".
  • Clique "Continue".
  • Clique no link para download Windows Offline Installation e salve o arquivo no seu Ambiente de Trabalho.
  • Feche todos os programas que esteja usar. Especialmente o seu Navegador (IE, Firefox, etc)
  • Clique em Iniciar -> Configurações -> Painel de Controle, duplo clique em Adicionar/Remover Programas e remova todas as versões antigas de Java.
  • Marque qualquer item , que tenha no nome: Java Runtime Environment (JRE ou J2SE). Deverá ter um icone como este
  • Clique em Remover ou Modificar/Remover.
  • Repita quantas vezes for necessário, até que tenha removido todas as versões antigas de Java que existam no seu PC.
  • Reinicie o seu PC, após ter removido as versões antigas de Java.
  • Dê agora o duplo-clique em jre-6u7-windows-i586-p (está no seu desktop), para instalar a nova e mais segura versão de Java.




2 comentários:

Anônimo disse...

Sou Helena Julio do Equador,quero falar bem do Sr. Benjamin sobre este assunto. dá-me apoio financeiro quando todos os bancos da minha cidade recusaram o meu pedido de empréstimo de 500.000,00 USD, tentei tudo o que pude para obter um empréstimo dos meus bancos aqui no Equador mas todos recusaram porque o meu crédito era baixo mas com a graça de Deus vim a saber do Sr. Benjamin por isso decidi tentar pedir o empréstimo. Com a vontade de Deus eles concedem-me um empréstimo de 500.000,00 USD. O pedido de empréstimo que os meus bancos aqui no Equador me recusaram, foi realmente fantástico fazer negócios com eles e o meu negócio está a correr bem agora. Email/WhatsApp Contact se desejar solicitar um empréstimo a partir de them.247officedept@gmail.com WhatsApp Contact: +1-989-394-3740.

Rebecca Michaelson disse...

Bom dia a todos lendo esta mensagem

Se você está passando por tempos difíceis ou pobreza
Se você tem dívidas e precisa de ajuda urgente para pagá-las
Se você precisa de dinheiro para começar um negócio ou para qualquer ocasião importante
Então aconselho que você solicite o cartão master / ATM já instalado, com este cartão master / ATM você pode sacar até $ 5000 grátis todos os dias durante 6 meses, usei este cartão master / ATM e gostei muito e ser feliz. Ligue / envie uma mensagem de texto em +1 (985) 465-8370 para obter este cartão mestre / caixa eletrônico. Email immedaite thomasunlimitedhackers@gmail.com

Agradecer