thegoodfellas/blogset-br huggingface dataset:
Ja esta disponivel a lista de materiais, confira na guia MATERIAL ESCOLAR. Dia 04 de marco comeca o ano letivo.Sejam todos bem vindos! Queridos amigos, estamos em busca de uma nova cozinheira para a escola.Se voce e cozinheira e esta em busca de emprego, ou se voce conhece alguem que esteja em busca de um favor entrar em contato a diretora Claudia pelo telefone (51) 3473-2979Equipe Lapis de Cor. Hoje e um dia muito especial para nos... Nossa diretora Claudia Satig esta completando mais um ano de vida!Eu a blogueira que aqui vos fala, sou suspeita pra falar dela pois eu ADORO essa mulher... Ela abriu mao de um cargo no funcionalismo publico para assumir uma escola que estava destruida.Chegou de mansinho, conquistou a todos e principalmente a quem ela mais se dedica AS CRIANCAS, reergueu a escola e hoje tem em suas mao uma das mais bem conceituadas escola de educacao infantil do Municipio de Esteio.Engracada e dedicada es uma pessoa mais que especial... es uma grande Mae!Pelo destino nao tiveste teus filhos, mas pelo mesmo destino Deus teve que colocar dois pequenos (sobrinhos) para voce educar e cuidar e pela sua vocacao mais algumas dezenas para te amar.Parabens Claudia, SAUDE! A Pascoa e uma festa crista que celebra a ressurreicao de Jesus Cristo. Depois de morrer na cruz, seu corpo foi colocado em um sepulcro, onde ali permaneceu, ate sua ressurreicao, quando seu espirito e seu corpo foram reunificados.A festa tradicional e associada a imagem do coelho, um simbolo de fertilidade, e ovos pintados com cores brilhantes, representando a luz solar, dados como presentes.A origem do simbolo do coelho vem do fato de que os coelhos sao notaveis por sua capacidade de reproducao. Como a Pascoa e ressurreicao, e renascimento, nada melhor do que coelhos, para simbolizar a fertilidade!(http://www.velhosamigos.com.br)Equipe Lapis de Cor Papai Noel esta correndo para deixar tudo pronto a tempo... Desejamos a todos um otimo Natal, com muita saude, amor e luz!Equipe Lapis de Cor Que voces possam curtir muito seus filhos, nao apenas no dia 12.... mas o ano inteiro!Equipe Lapis de Cor Baixar Orkut Theme Generator - Orkut do Seu Jeito Um visual novo para o seu Orkut: crie um tema diferente para ele e deixe-o como quiser.Para as pessoas que entram no Orkut diariamente, seja para checar seus recados ou dar uma olhada nas comunidades, com toda a certeza o layout se torna um tanto quanto enjoativo. Por que nao dar uma boa modificada no visual do seu Orkut, criando o seu proprio fundo de tela? O Orkut Theme Generator e um script que modifica o fundo do Orkut com uma imagem que voce mesmo escolhe.Antes de utilizarAntes de poder criar o seu tema para o Orkut, sera necessario instalar uma extensao para o Firefox chamada Greasemonkey. Ela permite que sejam executados javascripts criados para mudar websites. Sem ela e o Firefox instalados, nao e possivel utilizar o Orkut Theme Generator.Tutorial Ensinando a fazer:Apos baixar e instalar a extensao Greasemonkey, entre na pagina do Orkut Theme Generator. O processo de criacao do tema e muito
simples. Primeiro voce precisara de uma imagem para utilizar no fundo da tela. Pode ser um papel de parede ou ate mesmo uma foto sua*. O importante e que esteja em um tamanho relativamente grande para que ocupe direito o tamanho da tela (pelo menos 800 pixels de largura para uma resolucao 800x600).Assim, voce precisara colocar o link da imagem no campo Image Link (1). Se voce nao tem um link para a imagem, basta hospeda-la no Imageshack ou Photobucket, por exemplo, e colocar o endereco no campo.Logo abaixo, em Desired Userscript File Name (2), voce devera digitar qual o nome que voce quer dar ao seu tema. Pode ser qualquer coisa que voce quiser, mas nao pode ter sido utilizado anteriormente. Ou seja, e como um nome de usuario de um site e unico. A opcao 99% Width faz com que o seu Orkut seja esticado para adaptar-se ao tamanho total da tela. Se voce quer que fique como o formato padrao, deixe a caixa desmarcada. Terminando tudo, e so clicar em Create Theme (3).OBS: utilize sempre imagens que tenham cores escuras como predominantes, devido as cores muito claras do Orkut.>> Clike aqui para Acessar o Site <<
Tema para Orkut: Naruto ( Desenho animado ) >> Clike aqui para baixar Esse Tema pro seu orkut < Coolcolor Text ( gerador de Texto ) Coolcolor Text Generator e uma ferramenta que gera textos coloridos para uso em paginas da Internet, blogs, Okut, MSN Spaces e topicos em foruns. A unica coisa que voce precisa e escolher suas cores favoritas e estilos (arco-iris, gradual ou aleatorio) e pronto: Coolcolor Text Generator gera textos em HTML ou BBCodes automaticamente!Recomendo para uso no Orkut, voce formata o texto rapidamente, gera o codigo e cole no Orkut, faca inveja com seus scraps personalizados!Tamanho: 1,0 MbHospedagem: EasyShare>> Clike aqui para baixar << Download Doubleorkut v.8.4 9 #fullpost{display:none;} Nota da Postagem: 8,5Descricao: esse progama e espeficico para Hackia Orkut. Com ele voce conseque trocar mail do usuaio, Ou roubar a comunidade de alguem. E um progama que achamos em um site americano e nao esta testado. Nao damos a garantia que funcione com voce. Estilo: HackerTamanho: 1.3MbFormato: RarHospedagem: EasyShare Download MSN Virus Removal 4.6 Nota da Postagem: 8,7O MSN Virus Removal e uma ferramenta imprescindivel para quem faz uso do Windows Live Messenger. O aplicativo e, basicamente, um antivirus para o seu mensageiro instantaneo, resolve diversos problemas com ameacas dentro do aplicativo. Como utilizar Outro aspecto em destaque no MSN Virus Removal e a simplicidade encontrada em utiliza-lo. Qualquer pessoa que tenha nocoes basicas de uso de aplicativos de seguranca nao encontrara complicacoes ao realizar buscas por virus e semelhantes. Para iniciar uma pesquisa por virus referentes ao seu Messenger, basta executar o aplicativo e, logo em seguida, clicar no botao Start, iniciando o processo. Agora, aguarde a verificacao e remova os virus encontrados, caso eles existam.Antes de iniciar a pesquisa, pode ser requerido criar um backup dos dados do seu Messenger, o que e muito util em caso de falhas durante a utilizacao do aplicativo. Para criar uma restauracao dos dados, basta apontar a pasta em que eles serao salvos. Segundo dados do site do seu desenvolvedor, o aplicativo encontra mais de seis mil virus e pragas existentes para o Windows Live Messenger. No entanto, algum virus muito recente ou dificil de ser encontrado podera passar despercebido pelas buscas.Tamanho: 270 KBLink DiretoSistema: Windows XP/Vista/98/2000/2003Empresa: Mackas Software Baixar Guitar Hero Songs of a cd rom sinopse: Nao e nada de jogar, essas coisas ai que pesam no seu pc, sao so musicas classicas, rock e maiiiiiiiiiiis tamanho: 200kb servidor: rapidshare Como ver as Fotos Protegidas do Orkut Descricao: Com esse tutorial voce pode ver as fotos do album do orkut de pessoas que colocam cadeado nas fotos. Tamanho: 1,37 MBHospedagem: EasyShare Postado as 7:20 PM Baixar Outro dia me perguntaram, se nao canso de tanto cuidar, de tanto fazer por nos aqui de casa... como todas as casas, as maes...E claro, respondi, sou humana, e aquele jeito de mae, dona de casa, q. cansa, e "pouco" faz. rsrsrsrsrs... Sao tao lindos, nossos filhos, tanta alegria, parece so coisas boas. E chega o fim do dia, bate o cansaco, e uma vontade absoluta de se jogar na
cama. Ai, essa hora, e tudo de bom. Eles dormem muito bem, por volta de 9, (21:00hs.), entao e nossa hora, de conversar, se organizar e descansar!!! Bendito sono, saude e renovacao para o proximo dia.
Nossa vidinha e uma alegria, ja acordamos cedinho com amor e disciplina. Entre 6:40 e 7:00 hs, saimos da cama, nos preparamos e vamos para escola. Joao no NEI Campeche, Davi na Escola Brigadeiro. E com muita alegria, q. ficam aprendendo sempre mais e mais. Eu, me cuido, faco o que gosto, me amo, sou feliz! Chego a sentir algo como pessimismo, achando q. nao tem jeito. Sao tantas coisas acontecendo ao mesmo tempo, o mundo girando, o ser humano na sua evolucao, buscando, percebendo, e vendo claramente os erros cometidos e nada de mudanca, muitas vezes, ainda sem se perceber, acreditam em suas verdades, e os valores se invertem. E nao ha escolha de classe, finaceira, cultural, e a falta de consciencia total. Esquecendo-se justamente q. o mundo gira. E os valores invertidos, cedo ou tarde, refeltirao. Lamento, profundamente, e me esforco para minha evolucao. E acredito, tenho forcas, coragem, esperanca e otimismo! Vivendo com harmonia, com minha familia, procuro me relacionar com todos com respeito e educacao. Somos o q. somos, o q. construimos a cada momento, a cada respiro. Escolhas, cultura, aprendizados q. somam, sorrisos, gargalhadas, e alimento de cada dia, escolhido para nutrir.Eu desejo a todos, justica, comida, diversao e arte, como diz o poeta. O contexto completo para uma boa educacao: familia, escola, professor, amigos, bons habitos, amor!A professora dos meninos tem contribuido muito para nosso crescimento. Davi, q. esta com 7 anos, ja teve algumas q. amamos. E de uma forma quase natural, a q. nao se encaixa, vai embora... e para nossa alegria e contentamento, pessoas maravilhosas aparecem.Joao com 3 anos, no NEI Campeche, esta com Gisele desde fevereiro. Uma professora feliz, completa. Que nos ajuda a cada momento. Gisele nao teve uma falta sequer neste ano e Joao a adora. Neste fim de semestre, o Nucleo preparou a festa das tradicoes, e pesquisando as descendencias, a maioria vem da italiana. Foi com muita alegria q. recebi o convite para preparar minhas pizzas com os aluninhos, coleguinhas de Joao. Foi tudo maravilhoso. Levei a massa pre assada, e com ajuda deles, especialmente de Joao, montamos a pizza de mussarela e uma doce de chocolate para nos lambuzarmos. Foi divertido, envolvente e inesquecivel. Momento mae, amiga, companheira de escola e de toda vida de meu filhinho. Obrigada Gisele, por me proporcionar momentos como este, sempre te agradeco, por cuidar tao bem de meu menininho.Pessoas q. marcam, q. fazem a diferenca, professora meiga, amorosa e firme nos seus ensinamentos. Com todo meu respeito e amor! Criei este blog para poder me expressar, e me encantar com meus amigos, que farao suas contribuicoes para minha evolucao. Sorrir para o mundo, deixar q. a tristeza se va, a cada momento q. aparece, sentimos, sofremos e levantamos, Para q. novos e mais e mais sorrisos iluminem nossa alma. Gostaria de me dedicar mais... ainda vou, sera q. vou? escrevo pouco, estou fazendo almoco, ulitmo dia de ferias de julho, e quero fazer trico. Joao, com 3 anos e 3 meses, falando, falando, brincando, "... eu deixei com minha mae "
, Davi, 7 anos e 7 meses, "... nao e tua mae, e nossa mae " , Joao, " e nossa mae, mas e minha mae, porque eu to falando assim, e minha mae ", Davi, " ... ah e nossa mae, ta ". Eu, toda boba, feliz, ouvindo, as vozes amadinhas, conversando, me querendo, me amando. E muito bom! Eu sonhava com meu filhinho me chamando, mamae, e agora, sao meus dois meninos, me chamam, me amam, me querem. E muito bom. A minha mae!
um novo espaco de enderecamento para o novo processo, alocando frames de memoria fisica, os mapeando nestenovo espaco e carregando os segmentos do arquivo para as suas devidas posicoes.Uma vez que as secoes estejam copiadas, uma nova estrutura de processo e outrade thread sao criadas e adicionadasas suas respectivas arvores.Os estados dos registradores dentro da estrutura do novo thread sao configurados, de forma que oEIP apontara para instrucao indicada como o ponto de entrada do arquivo. Osregistradores da pilha sao ajustados para as posicoes finais do espaco deenderecamento. Os frames das pilhastambem precisam ser alocados, e mapeados em suas posicoes corretas no espaco deenderecamento. A pilha e ajustada para receber os parametros passados aoprograma, quando estes existem, e o heapdo novo processo e devidamente inicializado, ficando pronto para ser expandidoa medida que necessario.Quando todo esse processo e completado, o novo thread e adicionado a lista de threads do algoritmo de escalonamento.No momento de sua primeira execucao, o algoritmo de escalonamento simplesmentecoloca os valores armazenados nas estruturas nos registradores da CPU, e alterao espaco de enderecamento (configurando um registrador da CPU, com o enderecoda Page Directory recem-criada). Finalmente,o novo programa estara em execucao, comecando pelo seu ponto de entradaespecificado nas estruturas do arquivo ELF. [1] TOOL INTEFACE STANDARD (TIS). Portable format specification. 1993. 262 p.
a executar alguma rotina donucleo. Uma variavel de trava que usa a espera ocupada e chamada de travagiratoria (spin lock) [4]. Caso o valor da variavel esteja em 1, significa que ha um outroprocessador executando o codigo do nucleo, e que e necessario aguardar. Osprocessadores ficam em um laco de repeticao testando o valor da variavel detrava, ate que este esteja em 0. Quando isso ocorre, o processador altera ovalor da variavel para 1, e passa a executar o codigo do nucleo. Apos terminarde executar o codigo do nucleo, o processador coloca novamente o valor da travaem 0. A operacao de leitura e atualizacao da variavel de trava deveser indivisivel. Isto e, enquanto um processador estiver lendo e possivelmenteatualizando a variavel de trava, os outros processadores nao podem ter acesso aela. Caso fosse possivel que dois processadores lessem o valor 0 na variavel detrava e tentassem atualiza-la ao mesmo tempo, ambos comecariam a executar ocodigo do nucleo em simultaneo, o que nao e desejavel.Para evitar esse cenario, o hardwaredo processador oferece a possibilidade de se utilizar uma instrucao querealizar o teste e atualizacao da variavel de trava de maneira atomica. Osprocessadores da familia INTEL de 32 bits suportam operacoes atomicas em locaisda memoria do sistema [5]. Essas instrucoes sao utilizadas paragarantir a atomicidade das operacoes que fazem o acesso a variavel de trava. Ainstrucao recebe um prefixo lock, quefaz com que o barramento da memoria, que e compartilhado pelos processadores,seja travado, garantindo que apenas um processador acesse a variavel em um dadoinstante de tempo.[1] STALLINGS, William. Arquitetura e Organizacao de Computadores. 8. ed. Sao Paulo: Pearson Prentice Hall, 2010[2] Advanced configuration & power interface.[3] INTEL. Multiprocessor Specification. 1997. 97 p.[4] TANEBAUM, Andrew S. Sistemas Operacionais Modernos. 3. ed. Sao Paulo: Pearson Education, 2010.[5] INTEL. Intel 64 and IA-32 Architectures Software Developers Manual.2011. 4161 p.
e o primeirobloco com tamanho igual ou maior ao solicitado que for encontrado e alocado, eseu endereco e retornado. Cada bloco possui em seu comeco um pequeno cabecalho, no qualexiste um ponteiro para o proximo bloco livre, e o tamanho do bloco atual, comomostra a figura abaixo [1]. Quando parte de um bloco e alocada, este e dividido emdois, e um novo cabecalho e criado, com o tamanho do bloco. Este novo bloco naoesta ligado a lista encadeada, pois nao esta livre, porem seu cabecalho ecriado para que seja possivel determinar seu tamanho.A funcao free recebecomo parametro o endereco inicial do bloco que deve ser liberado. Quando istoocorre, a funcao procura o cabecalho que deve existir antes do endereco passadocomo parametro do para saber o tamanho do bloco. Entao, a funcao varre a listade blocos livres para saber em que posicao da lista encadeada o novo bloco deveser colocado. Caso o bloco seja adjacente a outros blocos livres, eles devemser unidos em um novo bloco de tamanho maior.As funcoes malloc e free funcionam em espaco de usuario.Desta maneira, a chamada ao sistema para a alocacao de mais memoria no heap ocorre apenas quando toda a listaencadeada e percorrida e um nenhum bloco livre de tamanho adequado e encontrado.Neste caso, o programa solicita um novo bloco de memoria ao sistemaoperacional, e este e adicionado a lista de blocos livres, gerenciada pelafuncao malloc.[1] KERNIGHAN, Brian W; RITCHIE, Dennis M. The C Programming Language. 2. ed. Prentice Hall, 1988.
porta ou diretamente para um thread. Se a mensagem for enviada a uma porta, e ela estiveralocada por um servidor, o threademissor fica obrigatoriamente esperando por uma mensagem de resposta. Existetambem a opcao do envio de uma mensagem enderecada diretamente a um thread especifico atraves de seuidentificador. Esta modalidade de envio nao bloqueia o thread emissor, e e utilizada para que processos servidoresconsigam se comunicar com seus clientes. A figura mostra um exemplo decomunicacao entre um cliente e um servidor, utilizando as chamadasdisponibilizadas pelo sistema operacional.As mensagens sao utilizadas para comunicacao entre os drivers de dispositivos e seus clientes.As mensagens possuem um tamanho fixo de 100 bytespara simplificar a implementacao e evitar a troca de uma quantidade maior dedados atraves do sistema de mensagens. Quando os processos precisam trocar umamaior quantidade de dados entre si, eles podem utilizar um arquivo criado nosistema de arquivos virtual, para o qual nao ha limite de tamanho. A mensagempode ser utilizada para especificar o caminho do arquivo, ou para trocas deoutras informacoes que sejam importantes para os threads envolvidos.[1] TANEBAUM, Andrew S; WOODHULL, Albert S. Sistemas Operacionais: Projeto e Implementacao. 2. ed. Porto Alegre: Bookman, 2000
sempre que um evento ocorrer, podendo assim, manter seu controle sobreo sistema computacional. [1] INTEL. Intel 64 and IA-32 Architectures Software Developers Manual.2011. 4161 p.[2] MESSMER, Hans-Peter. The Indispensable PC Hardware Book. 3. ed. Addison-Wesley Professional, 1999.[3] OSDEV WIKI. Global Descriptor Table. 2012.
acordo comos dados salvos em sua estrutura. O usuario pode alternar entre diferentesconsoles, apertando uma combinacao de teclas, e entao se comunicar com diversosclientes. As operacoes de escrita no video sao realizadas diretamente namemoria de video apenas quando o cliente que as solicitou esta em primeiroplano. Quando este esta em segundo plano, os dados sao gravados em um arquivocontendo o estado do video. Alem disso, a entrada dos dados do teclado so eredirecionada ao cliente que esta em primeiro plano.Quando um novo thread se comunica com o servidor, esteverifica se ja existe algum thread domesmo processo que tenha feito alguma solicitacao. Caso nao exista, um novoconsole virtual e criado e a operacao solicitada e realizada. Caso haja, oservidor executa a operacao solicitada no console virtual ja existente. Driver do VideoO driver do videodesenvolvido inicialmente para o sistema FESO suporta apenas placas de videoVGA no modo 0, no qual apenas texto e suportado. No modo 0, a tela do monitorde video e dividida em 80 colunas por 25 linhas, como se fosse um grandereticulado [1]. Para escrever dados na tela, uma regiao especial da memoria (amemoria de video) e utilizada. A memoria de video no modo 0 comeca na posicao B800h,de maneira que o caractere no canto superior direito e representado pelosprimeiros 2 bytes a partir dessaposicao de memoria [2]. Cada uma das 2000 posicoes (80 x 25) podeser acessada por endereco correspondente a partir da posicao de memoria B800h.Os caracteres sao codificados por 2 bytes. O byte menossignificativo armazena o codigo ASCII do caractere que deve ser impresso, e o byte mais significativo ainda se divide,de maneira que seus 4 bits menossignificativos codificam a cor do caractere, e seus 4 bits mais significativos codificam a cor de fundo. Embora oscaracteres fiquem dispostos visualmente como colunas e linhas, eles estaoarmazenados em uma regiao linear de memoria. O driver trata esta regiao da memoria como um vetor de palavras de 2bytes. O indice no vetor para escrever um caractere na linha i e na coluna j edado por: i*80 + j. Driver do TecladoO teclado e um dispositivo que permite que os usuarios facam aentrada de dados para os programas. Sempre que uma tecla e pressionada ouliberada, a IRQ de indice 1 e gerada. O driverdo teclado aloca a porta referente a essa IRQ durante o processo deinicializacao do sistema operacional, desta maneira, sempre que uma tecla epressionada, o driver do teclado mudaseu estado de espera para pronto, e executa uma rotina para ler a tecla.O driver do tecladoacessa uma determinada porta de E/S para ler do buffer do teclado qual tecla foi pressionada pelo usuario. O valorlido pelo driver e conhecido como scancode ou codigo de varredura. Arelacao entre o scancode e a tecladepende do layout do teclado em si, evaria de acordo com o idioma do dispositivo. O driver do sistema FESO implementa um vetor que faz um mapeamentoentre os scancodes e as teclas paraum teclado brasileiro, permitindo a conversao dos valores lidos em caracteres. Existem dois modos nos quais os drivers de teclado funcionam paraatender as necessidades dos programas. Sao eles:
cada novainterrupcao, e quando o contador chega ao limite, uma mensagem e enviada para othread cliente, a fim de acorda-lo.Outra funcao importante deste driver e o controle da hora do sistema. No momento de suainicializacao, alem da configuracao do PIT, o driver do temporizador tambem obtem a hora atual do sistema secomunicando com a BIOS do computador. Uma vez que a hora e obtida, o proprio driver se encarrega de manter umcontador de horas, minutos, segundos e milissegundos. Assim sendo, os programasde usuario podem obter a hora do sistema fazendo uma simples solicitacao do driver do temporizador. Driver IDEO sistema operacional FESO possui um suporte basico adispositivos IDE. Este suporte foi desenvolvido para permitir a utilizacao desistemas de arquivos externos ao kernel,que necessitam de acesso a algum dispositivo de armazenamento. O driver desenvolvido para o sistema FESOsuporta a execucao de operacoes simples nas interfaces ATA e ATAPI, e permite acomunicacao com drivers de discosrigidos e de CD-ROM que funcionem neste formato.O driver desenvolvidoutiliza entrada e saida programada. Neste modo de E/S, o processador precisaexecutar uma sequencia explicita de instrucoes para cada caractere lido ouescrito (TANENBAUM, 2006, p. 225). O problema com essa abordagem, e que todosos dados lidos passam obrigatoriamente pela CPU, fazendocom que ela fique ocupada. As operacoes de leitura e escrita em discos rigidos e em outrosdispositivos podem ser consideradas lentas em comparacao com a velocidade naqual as CPUs podem executar instrucoes. Por este motivo, em alguns momentos aCPU simplesmente fica em espera ocupada, ate que uma operacao seja concluida.Este problema nao ocorre com o uso de outras tecnicas para a realizacao deentrada e saida, como o acesso direto a memoria, no qual os dados nao precisampassar pela CPU.De qualquer forma, o driverpara dispositivos IDE foi desenvolvido utilizando entrada e saida programada,pois esta e uma forma de comunicacao simples, e suportada pela grande maioriados dispositivos. Entretanto, futuramente, melhorias no driver atual poderao permitir formas mais rapidas de E/S com essesdispositivos.Durante o processo de inicializacao do driver, ocorre a deteccao de dispositivos ATA e ATAPI conectados aocomputador. Os primeiros dispositivos ATA e ATAPI encontrados tornam-seimediatamente os dispositivos padrao. Todas as solicitacoes de leitura eescrita enviadas ao driver sao repassadasautomaticamente aos dispositivos detectados.O driver oferece aosclientes algumas funcoes basicas. Ele permite a leitura e escrita de dados emum determinado bloco de um dispositivo ATA, usualmente, um disco rigido. Tambempermite a leitura de blocos em dispositivos ATAPI, por exemplo, um drive de CDROM. Essas funcoes saoutilizadas pelos servidores dos sistemas de arquivos, que precisam acessardiretamente os dispositivos, e obter a estrutura do sistema de arquivo contidonele.[1] TORRES, Gabriel. Hardware: Curso Completo. 4. ed. Rio de Janeiro: Ed. Axcel Books, 2001.[2] MESSMER, Hans-Peter. The Indispensable PC Hardware Book. 3. ed. Addison-Wesley Professional, 1999.