ÐÏࡱá>þÿ ƒþÿÿÿ}~€ñxñrÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì¥Á'`ø¿,]bjbjLULU1è.?.?Uÿÿÿÿÿÿ¤< < < < < < < ÎDä¶À¶À¶À8îÀ¤’„÷ Œ"Ç~ È¶È¶È¶È¶È¶È¶È’˔˔˔ËMáËܽêÜ™ $¤ h  ½ < ¶È¶È¶È¶È¶È½ < < ¶È¶ÈÒ >É>É>ɶÈ"< ¶È< ¶È’Ë>ɶȒË>É>ÉBË< < j˶ÈÇ °V‰œÉJ̶ÀØÈ"ZË†Ë è 0 bˬúÈ"¬jˬ< j˶ȶÈ>ɶȶȶȶȶȽ ½ É"¶È¶È¶È ¶È¶È¶È¶È÷÷÷¤É¶À÷÷÷¶ÀP Ô$¦Ê< < < < < < ÿÿÿÿ Universidade Católica de Pelotas Escola de Informática L i n g u a g e m P a s c a l por Paulo Roberto Gomes Luzzardi Revisão: Junho, 1996 Bibliografia CARROLL, David W. - Programação em TURBO PASCAL McGraw-Hill RAMALHO, Luciano & PRATES, Rubens - Turbo Pascal, Cartão de Referência, Livros Técnicos e Científicos Editora S.A. Conteúdo Programático 1. Introdução à Linguagem Pascal 1.1 Histórico 1.2 Objetivos 1.3 Características de um Sistema em uma Linguagem Ideal 2. Ambiente Turbo Pascal 2.1 File 2.2 Edit 2.3 Run 2.4 Compile 2.5 Options 2.6 Debug 2.7 Break/watch 2.8 Como usar o DEBUG 3. Estrutura de um Programa Pascal 3.1 Identificadores 3.2 Comentários 3.3 Estrutura Geral 3.4 Definição de Tipos (Type) 4. Tipos de dados 4.1 Integer 4.2 Real 4.3 Byte 4.4 Char 4.5 Boolean 4.6 String 4.7 Array 4.8 Word 4.9 ShortInt 4.10 LongInt 5. Operadores 5.1 Operadores Aritméticos 5.1.1 Com Reais 5.1.2 Com Inteiros 5.1.3 Hierarquia dos Operadores 5.2 Operadores Relacionais 5.3 Operadores Lógicos 5.3.1 Not 5.3.2 And 5.3.3 Or 5.4 Operador de Inclusão (In) 5.5 Procedimentos Especiais 5.5.1 Inc 5.5.2 Dec 6. Funções Padrões 6.1 Abs 6.2 ArcTan 6.3 Cos 6.4 Sin 6.5 Exp 6.6 Frac 6.7 Int 6.8 Sqr 6.9 Sqrt 6.10 Ln 6.11 Chr 6.12 Ord 6.13 Round 6.14 Trunc 6.15 Pi 6.16 Random 7. Comandos 7.1 Tipos de Comandos 7.1.1 Seqüência 7.1.2 Seleção 7.1.3 Repetição 7.1.4 Atribuição 7.2 Comando SIMPLES e COMPOSTO 7.3 Comando If ... Then ... Else 7.4 Comando Case ... Of ... Else ... End 7.5 Comando For ... Do 7.6 Comando While ... Do 7.7 Comando Repeat ... Until 7.8 Comando Halt 7.9 Comando Exit 8. Entrada e Saída 8.1 Entrada pelo Teclado 8.2 Saída no Vídeo 8.3 Saída na Impressora 9. Controle do Vídeo 9.1 ClrScr 9.2 GotoXY 9.3 ClrEol 9.4 DelLine 10. Comandos Especiais 10.1 Delay 10.2 TextBackGround 10.3 TextColor 10.4 Window 10.5 Sound e NoSound 10.6 WhereX e WhereY 10.7 TextMode 11. Vetores e Matrizes 11.1 Vetores 11.2 Matrizes 11.3 Sort (Ordenação) 12. Manipulação de "Strings" 12.1 Chr 12.2 Ord 12.3 Concat 12.4 Copy 12.5 Delete 12.6 Insert 12.7 Lenght 12.8 Pos 12.9 Str 12.10 UpcCse 12.11 Val 12.12 FillChar 13. Procedures e Functions 13.1 Variáveis Locais e Globais 13.2 Parâmetros 13.3 Passagem de Parâmetro por Valor 13.4 Passagem de Parâmetro por Referência 13.5 Function 13.6 Procedure 14. Arquivos 14.1 Procedimentos 14.1.1 Assign 14.1.2 Close 14.1.3 Erase 14.1.4 Read 14.1.5 Write 14.1.6 ReName 14.1.7 Reset 14.1.8 ReWrite 14.1.9 Seek 14.2 Funções 14.2.1 Eof 14.2.2 FilePos 14.2.3 FileSize 14.2.4 SizeOf 14.3 Como Definir um Registro (Record) 15. Gráficos 15.1 Placas Gráficas 15.1.1 CGA 15.1.2 EGA 15.1.3 VGA 15.2 Coordenadas de Tela 15.2.1 CGA 15.2.2 EGA 15.2.3 VGA 15.3 Detecção e Inicialização da Tela Gráfica 15.4 PutPixel (Pontos) 15.5 Line (Linhas) 15.6 Rectangle (Retângulos) 15.7 Circle (Círculos) 15.8 Arc (Arcos) 15.9 DrawPoly (Polígonos) 15.10 SetColor e SetBkColor (Cor de Frente e Cor de Fundo) 15.11 OutTextXY e SetTextStyle (Textos) 15.12 Preenchimento (Pintura) 15.12.1 Retângulos (Bar) 15.12.2 Polígonos (FillPoly e FloodFill) 15.13 Ativação de Janelas 15.13.1 Janela Ativa 15.13.2 Limpar Janela Ativa 15.13.3 Salvar e Recuperar Janelas Gráficas 16. Criação de Unidades ("Units") 16.1 Como Criar um Unidade 16.2 Exemplo de Criação de uma Unidade 16.3 Exemplo de Programa que usa uma Unidade 17. Memória de Vídeo 18. Passagem de Parâmetros pela Linha de Comandos do Sistema Operacional 19. Ponteiros 19.1 Tipos de Alocação de Memória 19.1.1 Alocação Estática 19.1.2 Alocação Dinâmica 19.2 Acesso Direto a Memória 19.3 Acesso Direto a Memória de Vídeo 19.4 Listas Encadeadas 19.5 Filas e Pilhas 19.6 Listas Duplamente Encadeadas 20. Interrupções 1. Introdução à Linguagem Pascal 1.1 Histórico Desenvolvido em 1970 pelo Prof. Nicklaus Wirth no Technical University - Zurique - Suiça.Nome em homenagem à Blaise Pascal (Séc. XVII). 1.2 Objetivos a) Ensino da Programação, pois é uma linguagem didática; b) Programação Estruturada. 1.3 Características do Sistema em uma Linguagem Ideal a) Produzir programas-objeto compactos e eficientes; b) Usar uma linguagem de alto nível, de fácil entendimento; c) Permitir ao programador fazer alterações e visualizar os resultados rapidamente d) Produzir programas portáteis para serem rodados em qualquer outro computador. 2. Ambiente Turbo Pascal 5.5  Alt: F1-Last help F3-Pick F6-Swap F7/F8-Prev/next error 2.1 File (Arquivo) [ALT][F] Permite carregar arquivo, salvar arquivo, listar diretório, criar novos fontes, renomear arquivos, saída temporária ao Sistema Operacional e saída definitiva ao sistema operacional. Load (Carregar) [F3] É exibida uma caixa de diálogo solicitando o nome do arquivo a ser carregado, se for pressionado a tecla é exibida outra caixa de dialógo contendo os nomes de todos os arquivos "*.pas" contidos no disco. O programador seleciona um arquivo (seta direita, esquerda, acima ou abaixo) e pressiona logo após, o arquivo é carregado do Disco para o Editor. Pick (Pegar)[ALT][F3] É exibida uma lista com os nomes dos últimos arquivos que foram carregados. O programador pode selecionar um deles (seta acima ou abaixo) e então carregá-lo do Disco para o Editor. Os nomes dos arquivos ficam armazenados em um arquivo chamado "TURBO.PCK". New (Novo) Permite ao programador editar um "novo" arquivo. Este arquivo possui o nome de "NONAME.PAS", este nome deve ser renomeado quando o arquivo for salvo no disco (F2). Save (Salvar) [F2] Salva o conteúdo do Editor no Disco. Se o arquivo não tiver nome ("NONAME.PAS"), pode então, ser renomeado. Todo arquivo deve ter um nome que não seja "NONAME.PAS". Write to (Escrever Como) Escreve (grava) o conteúdo do editor num outro arquivo indicado pelo usuário (conserva o antigo no disco e o novo no editor). Directory (Diretório) Exibe o diretório do disco corrente, de acordo com uma máscara especificada, permite ainda, que um arquivo seja carregado. Change dir (Mudar Diretório) Permite mudar o subdiretório (drive:\path) corrente. Os Shell (Saída Temporária ao Sistema Operacional) Saída temporária do Turbo Pascal para o Sistema Operacional. Para retornar ao Ambiente digita-se Exit. Quit (Sair) [ALT][X] Saída definitiva do Ambiente Turbo Pascal. Volta o controle ao Sistema Operacional. 2.2 Edit (Editar) [ALT][E] Permite a criação ou edição de programas. Para sair do editor pressiona-se a tecla F10 ou ALT mais a letra maiúscula da opção do menu principal. 2.3 Run (Correr, Executar) [ALT][R] Run (Executa) [CTRL][F9] Compila o programa, linka as unidades e executa o programa. Program reset (Reseta Programa) [CTRL][F2] Termina a execução de um programa que foi executado com o "Debug". Desmarca a linha atual do "Debug". Go to cursor (Vá para Cursor) [F4] Força o "Debug" executar todas as linhas até a posição do cursor, ou seja, pula as instruções intermediárias. Trace into (Traça Dentro) [F7] Força o "Debug" a executar linha a linha entrando obrigatoriamente dentro das "procedure" e "function". Step over (Passa Ssobre) [F8] Força o "Debug" a executar linha a linha sem entrar nas "procedure" e "function". User screen (Tela do Usuário) [ALT][F5] Exibe a tela de execução do programa. 2.4 Compile (Compilar) [ALT][C] Compile (Compilar) [ALT][F9] Compila o programa fonte e linka as unidades. Make (Fazer) [F9] Compila o arquivo primário ("Primary File: ") ou o arquivo presente no editor; e todos os arquivos que dependem deste, inclusive as unidades ("unit") que foram alteradas. Build (Construir) Recompila todos os arquivos relacionados ao arquivo primário ("Primary File"). Destination (Destinação) [Memory ou Disk] Especifica o destino do programa executável. Se "Memory" o executável é temporário, se "Disk" o arquivo executável é armazenado em disco (como .EXE). Find error (Achar Erro) Localiza um erro de execução "RunTime Error" (Erro em Tempo de Execução). Primary file (Arquivo Principal) Usado para definir o arquivo principal, usado pelo "Make" e "Build". Get info (Mostra Informações) Exibe uma janela contendo informações do arquivo fonte. 2.5 Options (Opções) [ALT][O] Compiler (Compilador) Permite a inserção de diretivas de compilação sem escrevé-las no programa-fonte. Range checking (ON ou OFF): Se ligada, verifica se os "array" e "string" estão dentro das faixas definidas pelo programador. Stack checking (ON ou OFF): Se ligada, o compilador verifica se há espaço na pilha para as variáveis locais, antes das chamadas das "procedure" e "function". I/O checking (ON ou OFF): Se ligada, verifica se há erros de entrada e saída. Em OFF pode-se testar erros de entrada e saída através da função IoResult. Force for calls (ON ou OFF): Se ligada, o compilador gera chamadas Near para "procedure" e "function" que estiverem sendo compiladas. Overlays allowed (ON ou OFF): Permite a geração de código "OverLay" para uma unidade (".OVL"). Align data (Word ou Byte): Em "Word" todos os dados maiores que "Byte" são tratados como tipo "Word". Var-string checking (Strict ou Relaxed): Se "Strict" (rigorosa) verifica o tamanho das "string" passadas como parâmetro, se "Relaxed" (moderada) não verifica. Boolean evaluation (Short circuit ou Complete): Se "Short circuit" os testes de uma expressão booleana são mais rápidos, se "complete" todas as condições são testadas. Numeric processing (Software ou 8087-80287): Com 8087-80287 é permitido o uso dos tipos: Single, Double, Extended ou Comp. Se "Software" permite somente o uso dos tipos comuns do Turbo. Emulation (ON ou OFF): Emula (simula) um coprocessador aritmético, se ele não existir. Debug information (ON ou OFF): Gera um arquivo de informações de depuração de um arquivo que está sendo compilado. Local symbols (ON ou OFF): Gera informações sobre símbolos locais (nomes e tipos de todas as variáveis e constantes locais de um símbolo). Conditional defines: Define símbolos que podem ser referenciados em diretivas de compilação condicionais no arquivo fonte. Memory Sizes (Stack size, Low heap limit ou High heap limit): Permite configurar o mapa de memória de um arquivo de código resultante, ou seja, o tamanho da memória. Stack size: Permite especificar o tamanho do segmento da pilha em bytes. Low heap limit: Permite especificar o limite inferior da pilha. High heap limit: Permite especificar o limite superior da pilha. Linker Permite especificar diferentes modalidades de geração do mapa do "linker" e o destino do "link buffer". Map file (OFF, Segments, Publics ou Detailed): OFF: Arquivo "*.MAP" não é gerado. Segments: Inclui informações do segmento de memória no arquivo *.MAP. Publics: Inclui informações sobre símbolos, procedure/function no arquivo *.MAP. Detailed: Informações mais detalhadas do que as anteriores. Link buffer (Memory ou Disk): Define o destino do "Link buffer". Memory: Mais rápido, mas não aceita programas grandes; Disk: Mais lento, mas aceita programas maiores. Environment (Ambiente) Permite configurar o ambiente de trabalho. Config auto save (ON ou OFF): Se ligado, atualiza o arquivo de configuração ("TURBO.TP") quando o programador sai do Turbo Pascal. Edit auto save (ON ou OFF): Salva automaticamente o arquivo fonte quando o arquivo for executado ("Run") ou quando da saída para o Sistema Operacional ("Quit" ou "Os shell"). Backup files (ON ou OFF): Gera arquivo "*.BAK" quando o arquivo fonte for salvo. Tab size 8: Especifica o tamanho da tabulação horizontal do editor (tab) (2 até 16 brancos). Zoom windows (ON ou OFF): se ligada, as janelas Edit, Watch ou OutPut estão expandidas. Screen size (25 line display ou 43/50 line display): Permite selecionar o número de linhas na tela: 25 placa CGA, 43 placa EGA e 50 placa VGA. Directories (Diretório) Permite especificar drive:\path para diretórios dos arquivos usados e gerados pelo turbo. Turbo Directory: Diretório dos arquivos do Turbo Pascal (drive:\path), normalmente: C:\LING\TP. EXE & TPU Diretory: Diretório dos arquivos "*.EXE" (executáveis) e "*.TPU" (unidades). Include Diretories: Especifica o diretório dos arquivos utilizados pela diretiva de inclusão de fontes {$I}. Unit Diretories: Especifica o diretório dos arquivos fontes de unidades ("*.PAS" das unidades). Object Directories: Especifica o diretório dos arquivos objetos "*.OBJ". Pick File Name: Especifica o drive, caminho e nome do arquivo de seleção "*.PCK". Current Pick File: Indica o drive, caminho e nome do arquivo de seleção corrente. Parameters (Parâmetros) Permite a especificação de parâmetros para que o programa possa ser compilado na memória. Save options (Salva Opções) Salva o arquivo de configuração "*.TP" (default "TURBO.TP"). Retrieve options (Recuperar Opções) Carrega o arquivo de configuração "*.TP" (default "TURBO.TP"). 2.6 Debug (Depuração) [ALT][D] Evaluate [CTRL][F4]: Exibe uma janela de avaliação com três opções: (Evaluate, Result e New name) Evaluate: Permite identificar uma expressão ou uma variável a ser submetida ao Debug. Result: É exibido o resultado da avaliação da expressão ou variável selecionada acima. New name: Permite atribuir um novo valor. Call stack [CTRL][F3]: Durante a depuração, permite chamar uma janela com a pilha que contém uma lista de "procedure" e "function" que mostram a posição atual, mostrando também, os parâmetros de cada chamada. Find procedure: Posiciona o cursor no início de uma "procedure" ou "function". Integrated debugging (ON ou OFF): Se ligado, aciona o debugger, "BreakPoints" (pontos de parada) podem ser colocados. Standalone debugging (ON ou OFF): Se ligado com "Compile/Destination" em "Disk", as informações do "Debugger" são anexadas ao arquivo "*.EXE" para uso com o "Turbo Debugger". Display swapping (None, Smart ou Always): Permite estabelecer modos de visualização de "OutPut" de tela durante a depuração do programa. None: Não mostra a tela de saída do programa. Smart: Mostra os efeitos da tela somente quando houver um comando de saída. Always: Mostra sempre a tela resultante. Refresh display: Retorna para a tela do ambiente. 2.7 Break/watch [ALT][B] Se a opção "Integrated debugging" do menu "Debug" estiver em "On" pode-se adicionar, deletar, editar, remover todos os "watches" ou colocar, retirar ou procurar "BreakPoints". Add watch [CTRL][F7]: Permite que a variável sob o cursor seja exibida na janela de assistência quando o "debug" for executado Delete watch: Permite que uma variável da janela de assistência seja deletada. Edit watch: Permite que uma variável da janela de assistência seja editada (alterada). Remove all watches: Remove todas as variáveis da janela de assistência. Toggle breakpoint [CTRL][F8]: Permite que "BreakPoints" (pontos de parada) sejam colocados ou retirados. Clear all breakpoints: Permite que todos os "BreakPoints" sejam removidos. View next breakpoint: Permite visualizar o próximo "BreakPoint". 2.8 Como usar o DEBUG Passo 1: Ter as duas janelas na tela: janela de edição e janela de assistência [F5]; Passo2: Marcar um "BreakPoint" (ponto de parada) [CTRL][F8] ou opção "Toggle breakpoint" do menu "Break/watch"; Passo 3: Rodar o programa "Run" ou [CTRL][F9], o programa é executado até a linha anterior ao "BreakPoint"; Observação: Para visualizar o resultado obtido na tela de execução [ALT][F5] ou a opção "User screen" do menu "Run"; Passo 4: Para selecionar as variáveis que se deseja assistir, posiciona-se o cursor em cima da variável e [CTRL][F7] ou a opção "Add watch" do menu "Break/watch", após aparecer uma janela com a variável no seu interior (podendo-se alterar ou mudar a variável) pressiona-se [RETURN]; Passo 5: Para visualizar a execução do programa linha é linha pressiona-se [F8] (opção "Step over" do menu "Run") ou [F7] (opção "Trace into" do menu "Run"): [F8]: executa o programa linha é linha sem entrar nas "procedure" e "function"; [F7]: executa o programa linha é linha entrando também nas "procedure" e "function"; Passo 6: Pode-se ainda "Delete watch" (deletar variável), "Edit watch" (editar variável) ou "Remove all watches" (remover todas as variáveis) no menu "Break / watch". Passo 7: Pode-se ainda desviar a execução do "debug" para a linha que está o cursor [F4] ou a opção "Goto cursor" do menu "Run"; Passo 8: Para encerrar a execução do "debug" [CTRL][F2] ou a opção "Program reset" do menu "Run", deve-se ainda desmarcar todos os "breakpoints" através da opção "Clear all breapoints" do menu "Break/watch". 3. Estrutura de um Programa Pascal 3.1 Identificadores São os nomes criados pelo programador para: - nomes de Constantes (Const); - nomes de Variáveis (Var); - nomes de Tipos (Type); - nomes de Procedimentos (Procedure); - nomes de Funções (Function); - nomes de Unidades (Unit); - nomes de Programas (Program). Regras: - Todo identificador deve começar com uma letra ou subscrito (_); - Não pode conter espaços; - Os caracteres válidos são letras, dígitos, subscrito; - Pode conter qualquer quantidade de caracteres, mas somente os primeiros 63 são significativos. 3.2 Comentários O programador pode, dentro do seu programa, fazer comentários sem que o código seja compilado, isto pode ser feito de duas maneiras: (* aqui começa o programa *) ou { aqui começa o programa } 3.3 Estrutura Geral (* ----------------------------------------- Nome do programa *) Program nome_do_programa; (* opcional *) (* ------------------------------------------------- Unidades *) Uses Crt,Printer,Graph; // unidades (* ---------------------------------------------- Declarações *) Const x = 100; PI = 3.1415; UP = #72; {tecla acima} LEFT = #75; {tecla esquerda} RIGHT = #77; {tecla direita} DOWN = #80; {tecla abaixo} PGUP = #73;` {tecla pagina acima} PGDN = #81; {tecla pagina abaixo} ENTER = #13; {tecla RETURN ou ENTER} ESC = #27; {tecla ESC} BACKSPACE = #8; {tecla BACKSPACE} Type Nome = String[80]; Var A,B: Integer; C: Real; N: Nome; (* ----------------------------------------------- Definições *) Procedure nome_do_procedimento(parâmetros); Begin comandos; End; Function nome_da_função(parâmetros): TIPO DA FUNÇAO; Begin comandos; End; (* --------------------------------------- Programa Principal *) Begin comandos; End. 3.4 Definição de Tipos (Type) Em Pascal o programador pode definir seus próprios tipos de dados. Uses Crt; Type TIPO_DATA = Record ano: Integer; mes: 1..12; dia: 1..31; End; TIPO_NOME: String[80]; Var Data: TIPO_DATA; Nome: TIPO_NOME; Begin ClrScr; Data.ano := 1995; Data.mes := 12; Data.dia := 19; Nome := _UCPel'; 4. Tipos de Dados 4.1 - Integer: (2 bytes) Faixa: [-32768 à 32767] Var Contador,Acumulador: Integer; Begin Contador := 1000; Acumulador := -32000; 4.2 - Real: (6 bytes) Faixa: [1.0E-38 à 1.0E+38] Var Pi,Inflacao,Juros,Nota,Salario: Real; Begin Pi := 3.1415; Inflacao := 13.6; Juros := 25.7; Nota := 5.99; Salario := 87657.99; 4.3 - Byte: (1 byte) Faixa: [0 à 255] Var Dia,Mes,Idade,Numero_de_Dentes: Byte; Begin Dia := 31; Mes := 12; Idade := 33; Numero_de_Dentes := 12; 4.4 - Char: (1 byte) Faixa: [0 à 255] caracteres Var Sexo,Opcao,Letra,Operacao: Char; Begin Sexo := 'F'; Opcao := '1'; Letra := 'a'; Operacao := '+'; Caracter := #65; { Letra A } Letra := CHR(66); { Letra B } 4.5 - Boolean: (1 byte) Faixa: [True ou False] Var Continua: Boolean; X,Y: Integer Begin Continua := FALSE; Repeat ReadLn(X); ReadLn(Y); If X = Y then Continua := TRUE; Until Continua; 4.6 - String[n]: (n+1 bytes) Var Nome: String[40]; Begin ClrScr; Nome := 'Turbo Pascal 5.5'; Write('Nome: ',Nome); 4.7 - Array[faixa] Of Tipo: Var Nome: Array[1..10] of String[80]; Nota: Array[1..10] of Real; Letra: Array[1..40] of Char; I: Byte; Begin ClrScr; For I := 1 to 10 do Begin Write('Nome: '); Readln(Nome[I]); Write('Nota: '); Readln(Nota[I]); End; For I := 1 to 40 do Begin Write('Letra: '); Letra[I] := ReadKey; End; 4.8 - Word: (2 bytes) (0 à 65535) Var Numero_de_Alunos_Catolica,Numero_de_Funcionarios: Word; 4.9 - ShortInt: (1 byte) (-128 à 127) 4.10 - LongInt: (4 bytes) (-2147483648 à 2147483647) 5. Operadores 5.1 - Operadores Aritméticos 5.1.1 - Com REAIS + Adição - Subtração * Multiplicação / Divisão 5.1.2 - Com INTEIROS + Adição - Subtração * Multiplicação / Divisão com resultado real Div Resultado inteiro da divisão Mod Resto da divisão Uses Crt; Var X,Y: Integer; Divisao: Real; Resto,Quociente: Integer; Begin ClrScr; X := 7; Y := 2; Divisao := X / Y; { Divisao = 3,5 } Resto := X Mod Y; { Resto = 1 } Quociente := X Div Y; { Quociente = 3 }  EMBED Microsoft Draw  5.1.3 HIERARQUIA (Precedência) 1. Parênteses: () 2. Operador unário: -(valor) 3. Funções 4. Operador Not 5. * / Div Mod And 6. + - Or Xor 7. = <> > < >= <= (Operadores Relacionais) 5.2 - Operadores Relacionais = Igual <> Diferente >= Maior ou igual <= Menor ou igual < Menor > Maior 5.3 - Operadores Lógicos 5.3.1 - Not (negação):  EMBED Microsoft Draw  5.3.2 - And (e):  EMBED Microsoft Draw  5.3.3 - Or (ou):  EMBED Microsoft Draw  5.3.4 - Xor (ou exclusivo):  EMBED Microsoft Draw  5.4 Operador de Inclusão (In) Operador que testa a inclusão de uma variável em uma lista de constantes. Exemplo (1): Repeat Ch := ReadKey; Until Ch In ['S','s','N','n']; (* verdadeiro quando Ch é igual a: 'S','s','N','n' *) É igual a: Repeat Ch := ReadKey; Until (Ch = 'S') Or (Ch = 's') Or (Ch = 'N') Or (Ch = 'n'); (* verdadeiro quando Ch é igual a: 'S','s','N','n' *) Exemplo (2): Repeat ReadLn(X); Until X In [1,2,3,4,5]; (* ou X In [1..5]; *) (* verdadeiro quando X é igual a: 1,2,3,4,5 *) É igual a: Repeat ReadLn(X); Until (X=1) or (X=2) Or (X=3) Or (X=4) Or (X=5); (* verdadeiro quando X é igual a: 1,2,3,4,5 *) 5.5 Procedimentos Especiais 5.5.1 Inc Procedimento que permite o incremento de uma variável inteira. Modo de Usar: Inc(variável,passo); Inc(i); (* i := i + 1 *) Inc(i,5); (* i := i + 5 *) 5.5.2 Dec Procedimento que permite o decremento de uma variável inteira. Modo de Usar: Dec(variável,passo); Dec(i); (* i := i - 1 *) Dec(i,5); (* i := i - 5 *) 6. Funções Padrões 6.1 - Exp(x): Função exponencial ex 6.2 - Abs(x): Valor absoluto (valor sempre positivo). 6.3 - ArcTan(valor): Função arco tangente (resultado em radianos). 6.4 - Cos(ang): Função cosseno (ângulo em radianos). 6.5 - Sin(ang): Função seno (ângulo em radianos). 6.6 - Frac(x): Retorna a parte fracionária. 6.7 - Int(x): Retorna a parte inteira. 6.8 - Sqr(x): Retorna x elevado a segunda potência. 6.9 - Sqrt(x): Retorna a raiz quadrada de x. 6.10 - Ln(x): Logaritmo Natural. 6.11 - Chr(x): Transforma ordinal em caracter. 6.12 - Ord(x): Transforma caracter em ordinal. 6.13 - Round(x): Converte real em inteiro arredondando. 6.14 - Trunc(x): Converte real em inteiro sem arredondar. 6.15 - Pi: Valor Pi = 3.1415926535897932385. 6.16 - Random(v): Gera um número aleatório de zero até (v-1). 7. Comandos 7.1 Tipos de Comandos 7.1.1 Seqüência É um tipo de comando que no fluxo lógico do programa é executado e o controle passa para o próximo comando. Exemplo: Var Nome: String; Begin ClrScr; Write('Nome: '); Readln(Nome); 7.1.2 Seleção (If e Case) É um tipo de comando que no fluxo de execução do programa permite que, através de condições, desvios sejam feitos, ou seja, alguns comandos são executados e outros não. Exemplo: If numero = 0 Then WriteLn('Zero') Else If numero > 0 Then WriteLn('Positivo') Else WriteLn('Negativo'); 7.1.3 Repetição (For, While e Repeat) É um tipo de comando que no fluxo de execução do programa, permite que outros comandos sejam repetidos até que uma condição seja satisfeita ou enquanto uma condição é satisfeita. Por exemplo: Exemplo: i := 1; Repeat (* repete até que uma tecla seja pressionada *) WriteLn('i = ',i); Inc(i); (* inc(i) é igual a i := i+1 *) Until KeyPressed; 7.1.4 Atribuição É um tipo de comando que permite que uma expressão (equação) seja resolvida e o seu valor atribuído (igualado a uma variável). Exemplo: i := 1; x := x + 1; x1 := (- b + sqrt(sqr(b) - 4 * a * c)) / (2 * a); 7.2 - Comando SIMPLES e COMPOSTO: Simples: Quando há apenas um comando ligado a outro. For i := 1 to 100 do WriteLn(i); Composto: Quando mais de um comando está ligado a outro, usar-se os delimitadores Begin, End; For i := 1 to 100 do Begin WriteLn('i = ',i); ch := ReadKey; End; 7.3 - Comando If ... Then ... Else (Comando de Seleção) Modo de usar: If condição Then comando; Se a condição é verdadeira então o comando é executado, senão é executado o próximo comando. ou If condição Then comando 1 Else comando 2; Se a condição é verdadeira o comando 1 é executado senão é executado o comando 2. Comando, comando 1 e comando 2 podem ser simples ou compostos. 7.4 - Comando Case ... Of ... Else ... End (Comando de Seleção) Modo de usar: Case variável OF constante 1: comando 1; constante 2: comando 2; . . . . constante n: comando n; End; Se a variável é igual a alguma constante o comando correspondente é executado, se nenhuma constante for encontrada o comando será terminado. ou Case variável Of constante 1: comando 1; constante 2: comando 2; . . . . . . constante n: comando n; Else comandos; End; Se a variável for igual a alguma constante, o comando correspondente é executado, se nenhuma constante for encontrada os comandos após o Else são executados, logo após o comando Case é terminado. Observação: A variável não pode ser Array, String e Real. Case letra Of 'a'..'z': WriteLn('Minúsculas'); 'A'..'Z': WriteLn('Maiúsculas'); '0'..'1': WriteLn('Número'); Else WriteLn('Caracter Especial'); End; Case digito Of '0': WriteLn('Zero'); '1': WriteLn('Um'); '2': WriteLn('Dois'); : '9': WriteLn('Nove'); Else WriteLn('ERRO: Não é um Número'); End; 7.5 Comando For ... Do (Comando de Repetição) Modo de usar: For Variável_de_Controle := Valor_Inicial (To) Valor_Final Do comando; A variável de controle não deve ser alterada no corpo do comando, pode-se ter comando simples ou comando composto, a variável de controle não deve ser real, array ou string. To: Comando de repetição crescente DownTo: Comando de repetição decrescente For i := 0 To 255 Do Begin WriteLn('Código: ',i,'- Caracter ASCII:',Chr(i)); ch := ReadKey; End; For i := 1 To n-1 Do For j := i+1 To n Do Begin WriteLn('i=',i,' | j=',j); ch := ReadKey; End; 7.6 Comando While ..Do (Comando de Repetição) Modo de Usar: While condição Do comandos; Enquanto a condição é verdadeira os comandos são repetidos. Pode-se usar comando simples ou comando composto. Exemplo: i := 1; While i <= 10 Do Begin WriteLn('i = ',i); i := i+1; End; 7.7 Comando Repeat ... Until (Comando de Repetição) Modo de Usar: Repeat comandos; Until condição; Os comandos são repetidos, até que a condição se torne verdadeira, enquanto a condição é falsa os comandos são repetidos. Exemplo: i := 1; Repeat WriteLn('i = ',i); i := i+1; Until i >= 10; { Repete até i ser igual a 10 } i := 0; Repeat WriteLn('i = ',i); i := i+1; Until KeyPressed; { Repete até que uma tecla seja pressionada } 7.8 O Procedimetro Halt Força o término do programa (aborta o programa), retornando ao sistema operacional, se o programa for executável ou ao ambiente do Turbo Pascal, se o programa for um arquivo fonte. Modo de Usar: Halt (x: Word); ou Halt; 7.9 O Procedimento Exit Força a saída de um laço, passando a execução para a próxima instrução. Repeat : If KeyPressed then Exit; : Until False; 8. Entrada e Saída 8.1 Entrada pelo Teclado ReadLn: Procedimento que permite entrada de dados via teclado. A variável x pode ser de qualquer tipo. ReadLn(x); ReadKey: Função que permite a entrada de um caracter sem pressionar a tecla . A variável deve ser do tipo Char e é necessário usar a unidade Crt;. Uses Crt; Var Tecla: Char; Begin ClrScr; Write('Digite uma TECLA: '); Tecla := ReadKey; WriteLn('Você digitou: ',Tecla); End. 8.2 Saída no Vídeo Procedimento que permite escrita no vídeo: Write(x); (* Imprime x e cursor fica ao lado *) ou WriteLn(x); (* Imprime x e cursor vai para próxima linha *) ou WriteLn; (* Deixa uma linha em branco na tela *) 8.3 Saída na Impressora É necessário usar a unidade Printer. Uses Crt,Printer; Begin ClrScr; WriteLn(Lst); (* Pula uma linha na impressora *) Write(Lst,'x = '); WriteLn(Lst,x); End. Observação: WriteLn(lst,#12); (* Salta uma página na impressora *) WriteLn(lst,#15); (* Comprime os caracteres na impressora *) 9. Controle do Vídeo e Teclado: 9.1 ClrScr (Clear Screen) Procedimento que permite limpar a tela, o cursor permanece no canto superior esquerdo. É obrigatório o uso da unidade Crt. A tela é limpa com a cor de fundo corrente. Uses Crt; Begin ClrScr; 9.2 GotoXY(coluna,linha) (Vá para posição X,Y) Procedimento que permite o posicionamento do cursor em qualquer posição da tela. É obrigatório o uso da unidade Crt.  EMBED Microsoft Draw  Uses Crt; Begin ClrScr; GotoXY(30,12); Write('Turbo Pascal'); GotoXY(34,13); Write('5.5'); 9.3 ClrEol (Clear End Of Line) Procedimento que permite que uma linha seja apagada desde a posição do cursor até o final da linha. É obrigatório o uso da Unidade Crt. Uses Crt; Var L: Byte; Begin TextBackGround(WHITE); { Altera a cor de fundo} ClrScr; TextColor(BLACK); { Altera a cor do Texto } For L := 1 to 24 do Begin GotoXY(40,L); ClrEol; End; End. 9.4 DelLine (Delete Line) Procedimento que permite que uma linha seja apagada. É obrigatório o uso da Unidade Crt. Uses Crt; Var L: Byte; Begin TextBackGround(WHITE); { Altera a cor de fundo} ClrScr; TextColor(BLACK); { Altera a cor do Texto } For L := 1 to 24 do Begin GotoXY(40,L); DelLine; End; End. 10 Comandos Especiais (Unidade Crt) 10.1 Delay (Atraso) Procedimento que permite uma parada temporário da execução por parte do computador. Modo de Usar: Delay(x); { x em milisegundos } 10.2 TextBackGround (Cor de Fundo) Procedimento que permite mudança na cor de fundo do vídeo. Modo de Usar: TextBackGround(cor); { cor: número ou nome } Número Nome Cor 0 Black preto 1 Blue azul 2 Green verde 3 Cyan azul claro 4 Red vermelho 5 Magenta rosa 6 Brown marrom 7 LightGray cinza 10.3 TextColor (Cor de Frente) Procedimento que permite mudança na cor de texto do vídeo. Modo de Usar: TextColor(cor); { cor: número ou nome } Número Nome Cor 0 Black preto 1 Blue azul 2 Green verde 3 Cyan azul claro 4 Red vermelho 5 Magenta rosa 6 Brown marrom 7 LightGray cinza 8 DarkGray cinza brilhante 9 LightBlue azul brilhante 10 LightGreen verde brilhante 11 LightCyan azul claro brilhante 12 LightRed vermelho brilhante 13 LightMagenta rosa brilhante 14 Yellow amarelo 15 White branco Observação: Piscante (Blink é cor a 128) 10.4 Window (Janela) Procedimento que permite definir a janela de texto ativa, ou seja, parte do vídeo ativo onde as escritas são feitas. Normalmente a janela ativa é toda tela, ou seja: Window(1,1,80,25);  EMBED Microsoft Draw  Modo de Usar: Window(Xi,Yi,Xf,Yf); Observação: Após setar uma janela ativa a posição (1,1) passa ser o canto superior esquerdo. 10.5 Sound e NoSound (Som e Sem Som) Sound: Procedimento que ativa o auto-falante do computador. Modo de Usar: Sound(nota: Word); Uses Crt; Begin Sound(220); (* ativa o auto-falante com a nota 220 *) Delay(200); (* período de duração do som *) NoSound; (* desativa o auto-falante *) End. NoSound: Procedimento que desativa o auto-falante do computador. Modo de Usar: NoSound; 10.6 WhereX e WhereY (Localização do Cursor) Funções que indicam a posição corrente do cursor [x (coluna) e y (linha)]. Uses Crt; Var Coluna,Linha: Byte; Begin Coluna := WhereX; Linha := WhereY; WriteLn('Coluna: ',Coluna); WriteLn('Linha : ',Linha); End. 10.7 TextMode (Modo do Texto) Procedimento que define o tipo de modo texto, colorido ou preto e branco e 40 ou 80 colunas. C80 - Colorido com 80 colunas C40 - Colorido com 40 colunas BW80 - Preto e Branco com 80 colunas BW40 - Preto e Branco com 40 colunas 11. Vetores e Matrizes Vetores e matrizes são variáveis que possuem vários elementos de mesmo tipo, cada elemento possui um ou mais índices que os referenciam e os diferenciam. Uma característica importante é que todos os valores permanecem na memória ao mesmo tempo. Os elementos são alocados com contigüidade física, ou seja, um ao lado do outro. 11.1 Vetores É um tipo particular de matriz onde cada elemento possui só um índice (unidimensional). O programa exemplo abaixo, permite a entrada de nomes e idades, logo após imprime todos os nomes e idades contidos na memória. Program Vetor; Uses Crt; Const QUANT = 255; Var Nome: Array[1..QUANT] of String[40]; Idade: Array[1..QUANT] of Byte; I,N: Byte; Ch: Char; Begin ClrScr; I := 1; Repeat Write('Nome: '); ReadLn(Nome[i]); (* entrada de um nome *) Write('Idade: '); ReadLn(Idade[i]); (* entrada de uma idade *) Inc(I); Write('Continua [S]im ou [N]ão ? '); Repeat Ch := ReadKey; Until Ch IN ['S','s','N','n']; Until (Ch IN ['N','n']) Or (I > QUANT); N := I - 1; (* número de elementos *) For I := 1 To n Do Begin WriteLn('Nome: ',Nome[i]); WriteLn('Idade: ',Idade[i]); Ch := ReadKey; End; End. 11.2 Matriz É um tipo de dado que permite que uma variável contenha vários elementos de mesmo tipo. Cada elemento possui dois ou mais índices (bidimensional, tridimensional, etc) que o diferencia dos outros elementos. O programa abaixo, calcula a soma de duas matrizes: C = A + B. Program vetor; Uses Crt; Const QUANT = 10; Var A,B,C: Array[1..QUANT,1..QUANT] of Real; Col,Lin,J,M,N: Byte; Ch: Char; Begin ClrScr; Write('Informe a ORDEM da MATRIZ (MxN): '); Repeat Write('Número de Linhas (M): '); Readln(M); Until (M >= 1) And (M <= QUANT); Repeat Write('Número de Colunas (N): '); Readln(N); Until (N >= 1) And (N <= QUANT); For Lin := 1 To M Do For Col := 1 To N Do Begin Write('A[',Lin,',',Col,'] = '); Readln(a[Lin,Col]); Write('B[',Lin,',',Col,'] = '); Readln(b[Lin,Col]); End; For Lin := 1 To M Do For Col := 1 To N Do Begin C[Lin,Col] := A[Lin,Col]+B[Lin,Col]; Write('C[',Lin,',',Col,'] = ',C[Lin,Col]); Ch := ReadKey; End; End. 11.3 Sort (Ordenação) Método de classificação de dados. Para exemplificar melhor as variáveis do tipo vetor, abaixo é dado dois tipos de Sort: Program Sort; Uses Crt; Const QUANT = 255; Type TIPO = String[40]; Var Nome: Array[0..QUANT] of TIPO; Temp: TIPO; I,J,N: Byte; Ch: Char; Begin ClrScr; I := 0; Repeat Write('Nome: '); Readln(Nome[i]); (* Entrada de um nome *) Inc(I); Write('Continua [S]im ou [N]ão ? '); Repeat Ch := ReadKey; Until Ch IN ['S','s','N','n]; Until (Ch IN ['N','n']) Or (I > QUANT); N := I - 1; (* Número de Elementos *) For I := 1 to N do For J := I+1 to N do If Nome[I] > Nome[J] then Begin Temp := Nome[i]; Nome[i] := Nome[j]; Nome[j] := Temp; End; WriteLn('Nomes ORDENADOS'); For I := 0 to N do Begin WriteLn('Nome: ',Nome[i]); Ch := ReadKey; End; End. Program Buble_Sort; (* Método da Bolha - Buble Sort*) Uses Crt; Const QUANT = 255; Type TIPO = String[40]; Var Nome: Array[0..QUANT] of TIPO; Temp: TIPO; I,N,K: Byte; Ch: Char; Ordenado: BOOLEAN; Begin ClrScr; I := 0; Repeat Write('Nome: '); Readln(Nome[i]); (* Entrada de um Nome *) Inc(I); Write('Continua [S]im ou [N]ão ? '); Repeat Ch := ReadKey; Until Ch IN ['S','s','N','n']; Until (Ch IN ['N','n']) Or (I > QUANT); N := I - 1; (* Número de Elementos *) K := N - 1; Repeat Ordenado := TRUE; For I := 0 to K do If Nome[I] > Nome[I+1] then Begin Temp := Nome[i]; Nome[I] := Nome[I+1]; Nome[I+1] := Temp; Ordenado := FALSE; End; K := K - 1; Until Ordenado; WriteLn('Nomes ORDENADOS'); For I := 0 to N do Begin WriteLn('Nome: ',Nome[i]); Ch := ReadKey; End; End. 12. Manipulação de String 12.1 Chr Função que retorna o caracter correspondente ao código da tabela ASCII. Modo de Usar: Chr(código: Byte): Char; Uses Crt; Var Codigo: Byte; Caracter: Char; Begin ClrScr; Repeat Write('Código: '); Readln(Codigo); Caracter := Chr(Codigo); WriteLn('Código :',Codigo,' Caracter ASCII: ',Caracter); Until Codigo = 0; End. 12.2 Ord Função que retorna o código ASCII correspondente ao caracter da tabela ASCII. Modo de Usar: Ord(caracter: Char): Byte; Uses Crt; Var Codigo: Byte; Caracter: Char; Begin Repeat ClrScr; Write('Caracter: '); Caracter := ReadKey; Codigo := Ord(Caracter); WriteLn('Caracter :',Caracter,' Código ASCII: ',Codigo); Until Caracter = #13; (* #13 é o código da tecla *) End. 12.3 Concat Função que retorna as strings s1,s2,... sn concatenadas, ou seja, unidas. Modo de Usar: Concat(s1,s2,... sn: String[]): String[]; Uses Crt; Var S1,S2,S3: String[7]; Sr: String[21]; Begin ClrScr; S1 := 'Turbo '; S2 := 'Pascal '; S3 := '5.5'; Sr := Concat(S1,S2,S3); WriteLn(S1); WriteLn(S2); WriteLn(S3); WriteLn(Sr); (* Sr := 'Turbo Pascal 5.5' *) Repeat Until KeyPressed; End. 12.4 Copy Função que retorna uma substring a partir de outra string. Modo de Usar: Copy(s: String[], início, tamanho: Byte): String[]; Uses Crt; Var Velha: String[15]; Nova: String[10]; Begin ClrScr; Velha := 'MICROCOMPUTADOR'; Nova := Copy(velha,6,10); WriteLn(Velha); WriteLn(Nova); (* Nova := 'COMPUTADOR' *) Repeat Until KeyPressed; End. 12.5 Delete Procedimento que remove caracteres de uma string. Modo de Usar: Delete(s: String[],início,tamanho: Byte); Uses Crt; Var Velha: String[15]; Begin ClrScr; Velha := 'MICROCOMPUTADOR'; Delete(Velha,6,10); WriteLn(Velha); (* Velha := 'MICRO' *) Repeat Until KeyPressed; End. 12.6 Insert Procedimento que insere s1 em s2 na posição desejada gerando uma nova string. Modo de Usar: Insert(s1,s2: String[],posição: Byte); Uses Crt; Var S1: String[2]; S2: String[17]; Begin ClrScr; S1 := 'ES'; S2 := 'MICROCOMPUTADOR'; Insert(S1,S2,16); WriteLn(S1); WriteLn(S2); (* S2 := 'MICROCOMPUTADORES' *) Repeat Until KeyPressed; End. 12.7 Length Função que retorna o número de caracteres de uma string Modo de Usar: Length(s: String[]): Byte; Uses Crt; Var Nome: String[40]; Begin ClrScr; Write('Digite seu Nome: '); Readln(Nome); Write(Nome,' seu Nome tem: ',Length(Nome),' caracteres'); Repeat Until KeyPressed; End. 12.8 Pos Função que retorna a posição de s1 em s2 (0 se não encontrar). Modo de Usar: Pos(s1,s2: String[]): Byte; Uses Crt; Var S1: String[6]; S2: String[15]; Posicao: Integer; Begin ClrScr; S1 := 'COMPUT'; S2 := 'MICROCOMPUTADOR'; Posicao := Pos(S1,S2); If Posicao<>0 then Write('String Encontrada na Posição: ',Posicao) Else Write('String não encontrada'); Repeat Until KeyPresssed; End. 12.9 Str Procedimento que converte um valor númerico (Real ou qualquer tipo de inteiro) em String. O tamanho do número é dado pelo tamanho da String, sendo que um byte é deixado para o sinal. Modo de Usar: Str(valor: Integer ou Real, s: String[]); Uses Crt; Var N: Real; S: String[7]; Begin ClrScr; N := 3.14151617; Str(N,S); WriteLn('String: ',S); (* S := '3.1415' *) Repeat Until KeyPressed; End. 12.10 UpCase Função que retorna o caracter convertido em letra maiúscula. Modo de Usar: UpCase(ch: Char): Char; Uses Crt; Var Ch: Char; Begin ClrScr; Repeat Write('Digite uma Tecla: '); Ch := ReadKey; WriteLn(UpCase(Ch)); Until UpCase(Ch) = 'F'; End. Uses Crt; Var Ch: Char; Begin ClrScr; Repeat Write('Confirma [S]im ou [N]ão ?'); Ch := UpCase(ReadKey); Until Ch In ['S','N']; End. 12.11 Val Procedimento que converte uma string em valor númerico (Real ou qualquer tipo de inteiro), se a string possuir letras, a variável erro retorna a posição da letra (pois não é númerica), senão retorna zero. Modo de Usar: Val(s: String[], valor: Real ou Integer, erro: Integer); Uses Crt; Var S: String[10]; Valor: Integer; Erro: Integer; Begin ClrScr; Repeat Write('Digite alguma coisa [Fim para Finalizar]: '); Readln(S); Val(S,Valor,Erro); If Erro=0 then Begin WriteLn('SEM ERRO'); WriteLn('Número: ',Valor); End Else WriteLn('ERRO: ',Erro); Until (S = 'FIM') or (S = 'fim'); End. 12.12 FillChar Procedimento que inicializa uma variável string com caracteres repetitivos. Modo de Usar:FillChar(variável: Qualquer_tipo; quantidade: Word; constante); Uses Crt; Var Linha: String[80]; Espacos: String[40]; Begin FillChar(Linha,80,'-'); Linha[0] := #80; (* indicar o número de caracteres *) FillChar(Espacos,40,#32); Espacos[0] := #40; 13. Procedimentos (Procedure) e Funções (Function) 13.1 Variáveis Locais e Globais Variável Local Todas as variáveis definidas dentro de uma função ("function") ou procedimento ("procedure") são chamadas locais, só podem ser referenciadas dentro do módulo que a definiu. Variável Global Todas as variáveis definidas fora de todas as funções são chamadas globais e podem ser referenciadas em qualquer parte do programa inclusive dentro das funções e procedimentos. Observações: a)Todas as variáveis usadas no programa principal são globais e devem, obrigatoiamente ser definidas no "Var". b)As variáveis locais tem prioridade sobre as variáveis globais. c)Também existem constantes ("Const"), tipos ("Type"), procedimentos ("Procedure") e funções ("Function") locais. d)Todos os parâmetros são locais, por esta razão, não necessitam ter o mesmo nome das variáveis de chamada. Program Exemplo; Uses Crt; Var Base,Expoente,Resultado: Real; Tecla: Char; Procedure TROCA(Var x,y:Real); (* Var passagem por referência *) Var temp: Real; Begin temp := x; x := y; y := temp; End; Function ELEVA (b,e: Real): Real; Var pot: Real; Begin pot := exp(log(b)*e); ELEVA := pot; (* Saída da Função *) End; Begin Repeat ClrScr; WriteLn('Base: '); Readln(Base); WriteLn('Expoente: '); Readln(Expoente); Resultado := ELEVA(Base,Expoente); WriteLn('Resultado: ',Resultado:7:2); TROCA(Base,Expoente); (* Chamada do Procedimento *) Resultado := ELEVA(Base,Expoente); (* Chamada da Função *) WriteLn('Resultado: ',Resultado:7:2); WriteLn('Continua [S]im [N]ão ? '; Repeat Tecla := ReadKey; Until Tecla IN ['S','s','N','n']; Until Tecla IN ['N','n']; End. Variáveis Globais: Base, Expoente, Resultado e Tecla. Variáveis Locais: - Procedure TROCA: x, y e temp. - Funtion ELEVA: b, e, pot. 13.2 Parâmetros São todas as variáveis que num procedimento ("Procedure") ou Função ("Function") estão entre parênteses. Existem parâmetros de entrada e saída (são os mesmos, a diferença é se são alterados ou não). Chamada: TROCA(Var x,y: Real); (* Procedimento *)  EMBED Microsoft Draw  13.3 Passagem de Parâmetros por Valor Quando os parâmetros passados para as funções ("Function") ou procedimentos ("Procedure") não alteram os valores das variáveis de chamada, isto é chamado passagem de parâmetro por Valor. No exemplo abaixo, "b" e "e" são passados por valor, logo não alteram as variáveis do programa principal. Function ELEVA (b,e: Real): Real; Var pot: Real; Begin pot := exp(log(b)*e); ELEVA := pot; End; 13.4 Passagem de Parâmetros por Referência Quando os parâmetros passados para as funções ("Function") ou procedimentos ("Procedure") alteram os valores das variáveis de chamada, isto é chamado passagem de parâmetro por Referência. No exemplo abaixo, "x" e "y" são passados por referência, logo alteram as variáveis do programa principal. Procedure TROCA(Var x,y:Real); Var temp: Real; Begin temp := x; x := y; y := temp; End; 13.5 Function (Funções) Módulo desenvolvido pelo programador. Permite a criação de uma função própria. Pode ter vários parâmetros de entrada (passagem por valor) e ou saída (passagem por referência), mas apenas um retorno de saída. O retorno é dado pelo nome da função, assim, pode-se considerar que uma função nada mais é do que uma variável. Function nome_da_função (parâmetros: tipo): tipo_do_resultado; Type Const Var variável: tipo_do_resultado; Begin comandos; nome_da_função := variável; (* Retorno da Função *) End;  EMBED Microsoft Draw  13.6 Procedure (Procedimento) Módulo desenvolvido pelo programador. Permite a criação de um comando próprio. Pode ter vários parâmetros de entrada e vários de saída. Os parâmetros podem ser alterados ou não. Permite passagem de parâmetros por valor ou por referência. Procedure nome_do_procedimento (parâmetros: tipo); Type Const Var Begin comandos; End;  EMBED Microsoft Draw  Tipo A: O procedimento acima possui parâmetros de entrada e saída. x e y passagem por valor z passagem por referência  EMBED Microsoft Draw  Tipo B: O procedimento acima somente possui parâmetros de entrada x, y e z passagem por valor  EMBED Microsoft Draw  Tipo C: O procedimento acima possui somente parâmetros de saída a e b passagem por referência Observação: Os parâmetros de saída podem ser usados como parâmetros de entrada.  EMBED Microsoft Draw  Tipo D: O procedimento acima não possui parâmetros. Exemplos: Program Comandos; (* Procedimento Tipo B *) Uses Crt; Var A,B,C: Real; Tecla: Char; Procedure BASCARA (a,b,c: Real); Var delta,x1,x2,r,i: Real; Begin delta := sqr(b)-4*a*c; (* Cálculo do Determinante *) If delta >= 0 then (* Raízes REAIS *) Begin x1 := (-b+sqrt(delta))/(2*a); x2 := (-b-sqrt(delta))/(2*a); WriteLn('x1 = ',x1:7:2); WriteLn('x2 = ',x2:7:2); Repeat Until KeyPressed; End Else (* Raízes COMPLEXAS *) Begin r := -b/(2*a); i := sqrt(abs(delta))/(2*a); WriteLn('x1 = ',r:7:2,' + ',i:7:2,' j'); WriteLn('x2 = ',r:7:2,' - ',i:7:2,' j'); Repeat Until KeyPressed; End; End; Begin Repeat ClrScr; WriteLn('Calcula Raízes'); WriteLn; WriteLn('Qual o valor de A: '); Readln(A); WriteLn('Qual o valor de B: '); Readln(B); WriteLn('Qual o valor de C: '); Readln(C); BASCARA(A,B,C); Write('Continua [S]im ou [N]ão ? '); Repeat Tecla := UpCase(ReadKey); Until Tecla IN ['S','N']; Until Tecla = 'N'; End. Program Comandos; (* Procedimento Tipo A *) Uses Crt; Var A,B,C: Real; Delta,R,I: Real; X1,X2: Real; Tecla: Char; Procedure BASCARA (a,b,c: Real;VAR delta,r,i: Real); Var delta,x1,x2,r,i: Real; Begin delta := sqr(b)-4*a*c; (* Determinante *) r := -b/(2*a); (* Parte Real *) i := sqrt(abs(delta))/(2*a); (* Parte imaginaria *) End; Begin Repeat ClrScr; WriteLn('Calcula Raizes'); WriteLn; WriteLn('Qual o valor de A: '); Readln(A); WriteLn('Qual o valor de B: '); Readln(B); WriteLn('Qual o valor de C: '); Readln(C); BASCARA(A,B,C,Delta,R,I); If Delta >= 0 then (* Raizes REAIS *) Begin X1 := r+i; X2 := r-i; WriteLn('x1 = ',X1:7:2); WriteLn('x2 = ',X2:7:2); Repeat Until KeyPressed; End Else (* Raizes COMPLEXAS *) Begin WriteLn('x1 = ',R:7:2,' + ',I:7:2,' j'); WriteLn('x2 = ',R:7:2,' - ',I:7:2,' j'); Repeat Until KeyPressed; End; Write('Continua [S]im ou [N]ão ? '); Repeat Tecla := UpCase(ReadKey); Until Tecla IN ['S','N']; Until Tecla = 'N'; End. 14. Arquivos  EMBED Microsoft Draw  a Identificação do Registro b,c,d Campos e,f,g,h Registros a) Um arquivo é formado por registros; b) Cada registro é formado de campos; c) O arquivo possui um nome (8 caracteres para o nome mais 3 caracteres para a extensão), este nome é chamado de nome externo (DOS); d) Cada registro possui um índice interno e o arquivo possui um ponteiro que indica a posição atual do arquivo; e) Quando o arquivo é aberto ("Reset") ou criado ("ReWrite") o ponteiro aponta para o registro ZERO; f) A cada leitura ou gravação o ponteiro aponta para o próximo registro (Acesso seqüencial); g) Pode-se ainda, apontar para qualquer registro (Acesso Randômico) através do procedimento Seek. Tipos de Arquivos: Texto Tipo de Arquivo formado de caracteres organizados em linhas. No final de cada linha existem dois caracteres de controle LF (#10) + CR (#13). Como Definir: Var Arquivo: Text; (* ou Arquivo: File Of Char; *) Reg: Char; (* Reg é a variável que representa o registro *) Binário Tipo de Arquivo usado para armazenar tipos de dados diferentes. Type Registro = Record Nome: String[30]; Idade: Byte; Salário: Real; End; Var Arquivo: File Of Registro; Reg: Registro; 14.1 Procedimentos 14.1.1 Assign Procedimento que associa o nome externo do arquivo (DISCO) ao nome interno do arquivo dentro do programa (File Of). Modo de Usar: Assign(Arq: File Of ..., nome_arquivo: String[]); Exemplo: Arquivo Genérico Var Arq: File Of Byte; Reg: Byte; Nome_arquivo: String[14]; Begin ClrScr; Write('Informe o Nome do Arquivo: '); Readln(Nome_arquivo); Assign(Arq,Nome_arquivo); ou Exemplo: Arquivo Específico Var Arq: File Of Integer; Reg: Integer; Begin ClrScr; Assign(Arq,'B:\FILES\AGENDA.DAT'); (* Drive:\Path\Nome *) 14.1.2 Close Procedimento que permite fechar um arquivo. Modo de Usar: Close(Arq: File Of ...); 14.1.3 Erase Procedimento que permite deletar um arquivo no disco. Modo de Usar: Erase(drive: Arq: File Of ...); 14.1.4 Read Procedimento que permite ler campos ou registros do arquivo contido no disco. Modo de Usar: Read(Arq: File Of ..., registro ou campo); 14.1.5 Write Procedimento que permite gravar campos ou registros no arquivo contido no disco. Modo de Usar: Write(Arq: File Of ..., registro ou campo); 14.1.6 ReName Procedimento que permite renomear o arquivo no disco. Modo de Usar:ReName(drive:Arq: File Of ..., novo_nome_para_o_arquivo); 14.1.7 Reset Procedimento que permite abrir de um arquivo. Modo de Usar: Reset(Arq: File Of ...); Na abertura de um arquivo, deve ser verificado sua existência, pois se o arquivo não existir haverá um erro em tempo de execução (Run Time Error), e o programa será abortado, para que isto não aconteça é feito o seguinte: Program Exemplo; Uses Crt; Var Arq: File Of Integer; Reg; Integer; Nome_arquivo: String[14]; Begin ClrScr; Write('Nome do Arquivo: '); ReadLn(Nome_arquivo); Assign(Arq,Nome_arquivo); {$I-} Reset(Arq) {$I+}; Observação: {$I-} e {$I+} são diretivas de compilação que forçam o compilador a não abortar se houver um erro em tempo de execução (RunTime Error), fazendo ainda com que a variável pré-definida "IoResult" retorne com a informação se houve erro ou não da seguinte maneira: IoResult = 0 Arquivo EXISTE IoResult <> 0 Arquivo NÃO EXISTE If IoResult = 0 Then WriteLn('Arquivo EXISTE') Else WriteLn('ERRO: Arquivo NÃO EXISTE') 14.1.8 ReWrite Procedimento que permite criar um arquivo em disco, se o arquivo não existe, é criado, se existe é apagado, e o ponteiro do arquivo é posicionado no registro zero. Modo de Usar: ReWrite(Arq: File Of ...); 14.1.9 Seek Procedimento que permite posicionar o ponteiro do arquivo no registro especificado (Acesso Randômico). Modo de Usar: Seek(Arq: File Of ..., número_do_registro); 14.2 Funções 14.2.1 EOF (End Of File) Função que retorna TRUE se o ponteiro do arquivo chegou ao fim do arquivo, FALSE enquanto não for fim de arquivo. Modo de Usar: EOF(Arq: File Of ...): Boolean; 14.2.2 FilePos Função que retorna a posição do registro corrente, ou seja, a posição do ponteiro no arquivo (o primeiro registro é Zero). Modo de Usar: FilePos(Arq: File Of ...): Integer; 14.2.3 FileSize Função que retorna o número de registros do arquivo, "zero" se não existir nenhum registro. Modo de Usar: FileSize(Arq: File Of ...): Integer; 14.2.4 SizeOf Função que retorna o número de bytes ocupado por uma variável. Modo de Usar: SizeOf(tipo ou variável): Word; 14.3 Como Definir um Registro Uses Crt; Type REGISTRO = Record Nome: String[40]; Idade: Byte; Fone: String[12]; End; Var Arq: File Of REGISTRO; (* Definição do Arquivo Interno *) Reg: REGISTRO; (* Definição do Registro *) Nome_do_arquivo: String[14]; Ch: Char; Begin ClrScr; Write('Nome do Arquivo: '); ReadLn(Nome_do_arquivo); Assign(Arq,Nome_do_arquivo); {$I-} Reset(Arq) {$I+}; If IoResult <> 0 Then Begin ReWrite(Arq); Repeat Write('Nome: '); ReadLn(Reg.nome); Write('Idade: '); ReadLn(Reg.idade); Write('Fone: '); ReadLn(Reg.idade); Write(Arq,Reg); (* Grava um Registro no Disco *) Write('Continua [S]im ou [N]ão ? '); Repeat Ch := UpCase(ReadKey); Until Ch IN ['S','N']; Until Ch ='N'; End Else WriteLn('ERRO: Arquivo EXISTE') Close(Arq); End. 15. Gráficos 15.1 Placas Gráficas 15.1.1 CGA Resolução: 640x200 alta resolução (2 cores) 320x200 baixa resolução (4 cores) Observação: Palette é um conjunto de cores disponíveis, sendo que na placa CGA possui 16 cores. 15.1.2 EGA Resolução: 640x350 alta resolução (16cores, 2 págs. gráficas) 640x200 baixa resolução (16 cores, 4 págs. gráficas) 15.1.3 VGA Resolução: 640x480 alta resolução (16 cores, 1 página) 640x350 média resolução (16 cores, 2 páginas. gráficas) 640x200 baixa resolução (16 cores, 4 páginas. gráficas) 15.2 Coordenadas de Tela 15.2.1 CGA x 0 à 639 ou 319 y 0 à 199 15.2.2 EGA x 0 à 639 ou 319 y 0 à 199 ou 349 15.2.3 VGA x 0 à 639 ou 319 y 0 à 199, 349 ou 479 15.3 Detecção e Inicialização da Tela Gráfica Para sair do modo texto e inicializar o modo Gráfico, o programador deve definir duas variáveis: Placa e Modo (podem ter qualquer nome). Placa: É a variável responsável pelo tipo de placa a ser usada. Pode assumir os seguintes tipos: Número Nome 0 DETECT 1 CGA 2 MCGA 3 EGA 4 EGA64 5 EGAMONO 6 IBM8514 7 HERCMONO 8 ATT400 9 VGA 10 PC3270 Modo: É responsável pelo modo da placa (alta, média ou baixa resolução): CGAC0 (320 x 200) 4 cores, 1 página gráfica CGAC1 (320 x 200) 4 cores, 1 página gráfica CGAC2 (320 x 200) 4 cores, 1 página gráfica CGAC3 (320 x 200) 4 cores, 1 página gráfica CGAHi (640 x 200) sem cor, 1 página gráfica EGALo (640 x 200) 16 cores, 4 páginas gráficas EGAHi (640 x 350) 16 cores, 2 páginas gráficas VGALo (640 x 200) 16 cores, 4 páginas gráficas VGAMed (640 x 350) 16 cores, 2 páginas gráficas VGAHi (640 x 480) 16 cores, 1 páginas gráficas Program Detecta_Placa; Uses Crt,Graph; Var Placa,Modo: Integer; Begin Placa := DETECT; InitGraph(Placa,Modo,''); (* Procura Arquivos BGI no Diretório Corrente *) If GraphResult <> GrOk then WriteLn('ERRO: Inicialização Gráfica'); ou Program Seta_Placa_VGA; Uses Crt,Graph; Var Placa,Modo: Integer; Begin Placa := VGA; (* Placa VGA *) Modo := VGAHI; (* Modo 640 x 480, 16 cores *) InitGraph(Placa,Modo,'D:\\TP\\BGI'); (* Path dos Arquivos *.BGI *) If GraphResult <> GrOk then WriteLn('ERRO FATAL: Inicialização Gráfica'); 15.4 PutPixel (Pontos) PutPixel: Procedimento que permite plotar um pixel (ponto ) na tela gráfica. Modo de Usar: PutPixel(x,y: Integer; Cor_Pixel: Word); Program Pontos; Uses Crt,Graph; Var Placa,Modo: Integer; X,Y: Integer; Cor: Byte; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); (* Procura arquivos *.BGI no diretório corente *) Randomize; Repeat X := Random(640); Y := Random(480); Cor := Random(16); PutPixel(X,Y,Cor); Until KeyPressed; CloseGraph; End. 15.5 Line (Linhas) Line: Procedimento que permite plotar uma linha através de dois pontos, Pi (Xi,Yi) e Pf (Xf,Yf). Modo de Usar: Line(Xi,Yi,Xf,Yf: Integer); Program Retas; Uses Crt,Graph; Var Placa,Modo: Integer; Xi,Yi,Xf,Yf: Integer; Cor: Byte; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); Randomize; Repeat Xi := Random(640); Yi := Random(480); Xf := Random(640); Yf := Random(480); Cor := Random(16); SetColor(Cor); Line(Xi,Yi,Xf,Yf); Until KeyPressed; CloseGraph; End. 15.6 Rectangle (Retângulos) Rectangle: Procedimento que permite plotar um retângulo na tela gráfica através de dois pontos, Pi (Xi,Yi) e Pf (Xf,Yf), estes dois pontos representam a diagonal do retângulo. Modo de Usar: Rectangle(Xi,Yi,Xf,Yf: Integer); Program Retangulos; Uses Crt,Graph; Var Placa,Modo: Integer; Xi,Yi,Xf,Yf: Integer; Cor: Byte; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); Repeat Xi := Random(640); Yi := Random(480); Xf := Random(640); Yf := Random(480); Cor := Random(16); SetColor(Cor); Rectangle(Xi,Yi,Xf,Yf); Until KeyPressed; CloseGraph; End. 15.7 Circle (Círculos) Circle: Procedimento que permite plotar um círculo na tela gráfica, através de um ponto central (Xc,Yc) e um Raio. Modo de Usar: Circle(Xc,Yc: Integer; Raio: Word); Program Circulos; Uses Crt,Graph; Var Placa,Modo: Integer; Xc,Yc: Integer; Cor,Raio: Word; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); Repeat Xc := Random(640); Yc := Random(480); Cor := Random(16); Raio := Random(100); SetColor(Cor); Circle(Xc,Yc,Raio); Until KeyPressed; CloseGraph; End. 15.8 Arc (Arcos) Arc: Procedimento que permite plotar um arco na tela gráfica, através de um ponto central (Xc,Yc), um Raio e dois ângulos (Inicial e Final). Modo de Usar:Arc(Xc,Yc: Integer; Ang_Inic, Ang_Fim: Word; Raio:Word); Program Arcos; Uses Crt,Graph; Var Placa,Modo: Integer; Xc,Yc: Integer; Ang_Inic,Ang_Fim: Word; Raio,Cor: Word; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); Repeat Xc := Random(640); Yc := Random(480); Ang_Inic := Random(360); Ang_Fim := Random(360); Cor := Random(16); Raio := Random(100); SetColor(Cor); Arc(Xc,Yc,Ang_Inic,Ang_Fim,Raio); Until KeyPressed; CloseGraph; End. 15.9 DrawPoly (Polígonos) DrawPoly: Procedimento que permite plotar um polígono na tela gráfica, através de n pontos (P1,P2,...Pn). Procedimento: DrawPoly(Número_de_Pontos: Word; Vetor_de_pontos); Program Boneco; Uses Crt, Graph; Const Rosto: Array[1..9,1..2] of Integer = ((109,149),(209,149),(259,124), (259, 74), (209, 39),(109, 39),( 59, 74),( 59,124),(109,149)); Var Placa,Modo: Integer; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); (* ------------------------------------ rosto *) DrawPoly(9,Rosto); (* ------------------------------------ olho esquerdo *) Circle(109,74,7); (* ------------------------------------ olho direito *) Circle(209,74,7); (* ------------------------------------ nariz *) Circle(159,99,15); (* ------------------------------------ boca *) Rectangle(109,120,209,128); (* ------------------------------------ orelha esquerda *) Arc(59,99,90,270,20); (* ------------------------------------ orelha direita *) Arc(259,99,270,90,20); (* ------------------------------------ cabelos *) Arc(139,39,0,105,20); Arc(179,39,75,180,20); Repeat Until KeyPressed; CloseGraph; End. 15.10 Cores (SetColor e SetBkColor) SetColor: Procedimento que permite a mudança da cor de frente (ForeGround). Modo de Usar: SetColor(número ou nome_cor: Word); SetBkColor: Procedimento que permite mudança da cor de fundo (BackGround). Modo de Usar: SetBKColor(número ou nome_cor: Word); GetColor: Função que retorna a cor de frente corrente. Modo de Usar: GetColor: Word; GetBkColor: Função que retorna a cor de fundo corrente. Modo de Usar: GetBKColor: Word; 15.11 OutTextXY e SetTextStyle (Textos) SetTextStyle: Modifica o tipo de caracter (Fonte), direção e o tamanho do texto. Modo de Usar: SetTextStyle(fonte, direção, tamanho: Word); Número Fontes Direções Tamanhos 0 DefaultFont HorizDir 0 1 TriplexFont VertDir 1 2 SmallFont 2 3 SansSerifFont : 4 GothicFont 10 OutTextXY: Permite que um texto seja escrito na tela gráfica na posição P (x,y). Modo de Usar: OutTextXY(X,Y: Integer; Texto: String[]); Program Texto; Uses Crt; Graph; Var Placa,Modo: Integer; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); SetBkColor(Cyan); Bar(0,0,639,479); SetColor(Blue); SetTextStyle(GothicFont,HorizDir,5); OutTextXY(100,100,'Turbo Pascal V5.5'); Repeat Until KeyPressed; End. 15.12 Preenchimento (pintura) 15.12.1 Retângulos Bar: Usado para pintar um retângulo. Antes, deve-se definir o estilo de preenchimento, usando SetFillStyle. Modo de Usar: Bar(Xi,Yi,Xf,Yf: Word); SetFillStyle: Usado para escolher o estilo de preenchimento. Modo de Usar: SetFillStyle(estilo: Byte; cor: Byte); Número Estilos 0 EmptyFill (Preenche com a cor de fundo) 1 SolidFill 2 LineFill 3 LTSlashFill 4 SlashFill 5 BKSlashFill 6 LTBKSlashFill 7 HatchFill 8 XhatchFill 9 InterLeaveFill 10 WideDotFill 11 CloseDotFill 12 UserFill Program ESTILOS; Uses Crt, Graph; Var Placa,Modo: Integer; Estilo: Byte; Cor: Byte; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); For Estilo := 1 to 12 do Begin Cor := 1 + Random(15); SetFillStyle(Estilo,a); Bar(0,0,100,100); ReadLn; End; CloseGraph; End. 15.12.2 Polígonos a) FillPoly: É usado para pintar um polígono, usando o estilo definido pelo procedimento SetFillStyle. Este procedimento preenche qualquer polígono fechado, se o polígono estiver aberto este procedimento preenche até encontrar um objeto fechado. Modo de Usar: FillPoly(Estilo: Byte; Cor: Byte); Program Preenche_Polígono; Uses Crt, Graph; Const Objeto: Array[1..5,1..2] of Integer = ((159,0),(0,50),(159,199),(319,50),(159,0)); Var Placa,Modo: Integer; Estilo: Byte; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); DrawPoly(5,objeto); (* Plota Polígono Vazado*) Repeat Until KeyPressed; For Estilo := 0 to 12 do Begin SetFillStyle(Estilo,YELLOW); (* Define Estilo e Cor *) FillPoly(5,Objeto); (* Pinta Polígono *) ReadLn; End; CloseGraph; End. b) FloodFill: É usado para preencher um polígono, usando o estilo definido pelo procedimento SetFillStyle. O preenchimento parte de um ponto central Pc (Xc,Yc) do objeto e preenche ao redor deste ponto até encontrar uma borda com a cor especificada (função recursiva). Modo de Usar: FloodFill(Xc,Yc: Integer; Cor_da_Borda: Word); Program Rosa_dos_Ventos; Uses Crt, Graph; Const Pontos = 17; Rosa: Array[1..pontos,1..2] of Integer = ((159,0),(189,49),(279,24),(239,72),(319,99), (239,123),(279,173),(189,149),(159,199),(109,149), (39,173),(79,123), (0,99),(79,72),(39,24),(109,49),(159,0)); Var Placa,Modo: Integer; Estilo: Byte; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); SetColor(YELLOW); (* Cor da borda *) DrawPoly(Pontos,Rosa); (* Imprime Rosa dos Ventos *) Circle(159,99,20); (* Imprime Círculo *) SetFillStyle(SOLID_FILL,BLUE); (* Define Estilo e Cor de Preenchimento *) FloodFill(10,99,YELLOW); (* Preenche a partir do ponto 10,99 *) ReadLn; CloseGraph; End. 15.13 Ativação de Janelas Gráficas 15.13.1 Janela Ativa SetViewPort: Procedimento define uma janela ativa  EMBED Microsoft Draw  Modo de Usar: SetViewPort(Xi,Yi,Xf,Yf: Integer; Recorta: Boolean); Pi (Xi,Yi): Ponto Inicial Pf (Xf,Yf): Ponto Final Recorta: TRUE ou FALSE (Variável que indica se haverá recorte na janela ou não). Program Janela_Ativa_com_Recorte; Uses Crt,Graph; Const ENTER = #13; ESC = #27; UP = #72; DOWN = #80; LEFT = #75; RIGHT = #77; Var Placa,Modo: Integer; X,Y: Integer; Tecla: Char; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); SetFillStyle(SOLID_FILL,GREEN); Bar(0,0,639,479); SetViewPort(19,19,300,180,TRUE); (* Teste o programa usando FALSE *) SetColor(RED); ClearViewPort; (* Limpa Janela Ativa *) X := 319; Y := 239; Repeat SetColor(RED); Rectangle(X,Y,X+10,Y+10); Tecla := ReadKey; SetColor(BLACK); Rectangle(X,Y,X+10,Y+10); Case Tecla Of UP: Dec(Y,5); DOWN: Inc(Y,5); LEFT: Dec(X,5); RIGHT: Inc(X,5); End; Until Tecla IN [ENTER,ESC]; End. 15.13.2 Limpar Janela Ativa ClearViewPort: Procedimento que limpa, com a cor de fundo, a janela ativada pelo procedimento SetViewPort, se nenhuma janela for ativada, por falta (default), a janela ativa é toda a tela. Modo de Usar: ClearViewPort; 15.13.3 Salvar e Recuperar Janelas Gráficas GetImage e PutImage: Quando é necessário colocar janelas sobrepostas na tela, deve-se antes de exibir a janela, salvar o local onde a janela será exibida. Para salvar e recuperar (respectivamente) janelas são usados os seguintes procedimentos: Modo de Usar: GetImage(Xi,Yi,Xf,Yf: Word; Var P: Pointer); Modo de Usar: PutImage(Xi,Yi: Word; P: Pointer; Modo: Word); Número Modos Função 0 CopyPut { Mov } 1 XorPut { XOr } 2 OrPut { Or } ou NormalPut 3 AndPut { And } 4 NotPut { Not } Para definir o ponteiro, que irá conter os pixels da tela, é necessário saber a quantidade de bytes (porção de memória) para salvar a janela gráfica, isto é feito da seguinte maneira: ImageSize: Retorna o número de bytes necessários para conter a janela definida pelos pontos Pi (Xi,Yi) e Pf (Xf,Yf). Modo de Usar: ImageSize(Xi,Yi,Xf,Yf: Word): Word; GetMem: Procedimento que faz alocação dinânica de memória para o ponteiro p, o qual ocupará n bytes na memória. Modo de Usar: GetMem(Var P: Pointer; Número_Bytes: Word); FreeMem: Procedimento que libera a área de memória ocupada pelo ponteiro p. Modo de Usar: FreeMem(P: Pointer; Número_Bytes: Word); Program Janelas; Uses Crt,Graph; Type TIPO = String[20]; Var Placa,Modo: Integer; P: Array[1..5] of Pointer; Cor: Byte; Num_Bytes: Array[1..5] of Word; Procedure Moldura(xi,yi,xf,yf:Word; cor_frente,cor_fundo:Byte); Begin SetColor(cor_fundo); SetFillStyle(SolidFill,cor_fundo); Bar(xi,yi,xf,yf); SetColor(cor_frente); Rectangle(xi,yi,xf,yf); Rectangle(xi+2,yi+2,xf-2,yf-2); End; Procedure Salva_Janela(janela,xi,yi,xf,yf: Word); Begin Num_Bytes[janela] := ImageSize(xi,yi,xf,yf); GetMem(p[janela],Num_Bytes[janela]); GetImage(xi,yi,xf,yf,P[janela]^); End; Procedure Restaura_Janela(janela,xi,yi,xf,yf: Word); Begin SetFillStyle(0,BLACK); Bar(xi,yi,xf,yf); PutImage(xi,yi,P[janela]^,NormalPut); FreeMem(p[janela],Num_Bytes[janela]); End; Begin Placa := VGA; Modo := VGAHI; InitGraph(Placa,Modo,''); SetFillStyle(SOLID_FILL,BLACK); Bar(0,0,639,479); Salva_Janela(1,10,10,100,50); Moldura(10,10,100,50,0,1); ReadLn; Salva_Janela(2,30,30,130,80); Moldura(30,30,130,80,1,2); ReadLn Salva_Janela(3,50,50,150,100); Moldura(50,50,150,100,2,3); ReadLn;; Restaura_Janela(3,50,50,150,100); ReadLn; Restaura_Janela(2,30,30,130,80); ReadLn; Restaura_Janela(1,10,10,100,50); ReadLn; CloseGraph; End. 16. Criação de Unidades (Units) Uma unidade é um conjunto de procedimentos e funções, que podem ser usados por qualquer programa. 16.1 Como Criar uma Unidade O programador pode definir suas próprias unidades Units. Por exemplo: Uses Crt,Graph; que são unidades do "Turbo Pascal 5.5". A definição de uma unidade é feita da seguinte maneira: Unit nome_da_unidade; Interface Uses Const Type Var Procedure Procedure ... (* Cabeçalho de todos os Módulos *) Function Function Implementation Procedure Const Type Var Begin comandos; End; Function Const Type Var Begin comandos; End; End. Observação: Uma unidade é um programa Fonte Pascal sem programa principal. Possui extensão "nome.PAS" e após compilada, "nome.TPU". A vantagem de uma unidade definida pelo programador é que permite que as "procedure" e "function" sejam usadas em qualquer programa. 16.2 Exemplo de Criação de uma Unidade: Unit Luzzardi; Interface Uses Crt; Type TIPO = String; Function Pot(x,y: Real): Real; Procedure Troca(VAR x,y: Real); Procedure Imprime_String(c,l: Byte; s: String); Procedure Moldura_Simples(xi,yi,xf,yf: Byte); Procedure Imprime_Char(c,l: Byte; ch: Char); Procedure Moldura_Dupla(xi,yi,xf,yf: Byte); Procedure Limpa_Area(xi,yi,xf,yf: Byte; cor: Byte); Procedure Entrada(c,l,t: Byte; VAR nome: TIPO; mensagem: TIPO); Implementation (* ----------------------------------- Pot *) Function Pot(x,y: Real): Real; Begin Pot := Exp(Ln(x)*y); End; (* ---------------------------------- Troca *) Procedure Troca(VAR x,y: Real); Var temp: Real; Begin temp := x; x := y; y := temp; End; (* ---------------------------------- Imprime_String *) Procedure Imprime_String(c,l: Byte; s: String); Begin GotoXY(c,l); Write(s); End; (* ---------------------------------- Imprime_Char *) Procedure Imprime_Char(c,l: Byte; ch: Char); Begin GotoXY(c,l); Write(ch); End; (* ---------------------------------- Moldura_Dupla *) Procedure Moldura_Dupla (xi,yi,xf,yf: Byte); Var c,l: Byte; Begin For c := xi to xf do Begin Imprime_Char(c,yi,#205); Imprime_Char(c,yf,#205); End; For l := yi to yf do Begin Imprime_Char(xi,l,#186); Imprime_Char(xf,l,#186); End; Imprime_Char(xi,yi,#201); Imprime_Char(xf,yi,#187); Imprime_Char(xf,yf,#188); Imprime_Char(xi,yf,#200); End; (* ------------------------------------ Moldura_Simples *) Procedure Moldura_Simples (xi,yi,xf,yf: Byte); Var c,l: Byte; Begin For c := xi to xf do Begin Imprime_Char(c,yi,#196); Imprime_Char(c,yf,#196); End; For l := yi to yf do Begin Imprime_Char(xi,l,#179); Imprime_Char(xf,l,#179); End; Imprime_Char(xi,yi,#218); Imprime_Char(xf,yi,#191); Imprime_Char(xf,yf,#217); Imprime_Char(xi,yf,#192); End; (* -------------------------------- Limpa_Area *) Procedure Limpa_Area(xi,yi,xf,yf: Byte; cor: Byte); Begin TextColor(cor); Window(xi,yi,xf,yf); ClrScr; Window(1,1,80,25); End; (* --------------------------- Entrada *) Procedure Entrada(c,l,t: Byte; Var nome: TIPO; mensagem: TIPO); Var ch: Char; tam,col,i: Byte; Begin nome := ''; Gotoxy(c,l); Write(mensagem,nome); tam := Length(mensagem); col := c+tam; Gotoxy(col,l); i := 1; Repeat Repeat ch := ReadKey; Until ch IN [#65,#90,#97,#122,#13,#8,#75,#27,#32]; If ch IN [#8,#75] Then Begin If i >= 2 Then Begin Delete(nome,length(nome),1); col := col-1; Imprime_Char(col,l,' '); Gotoxy(col,l); i := i-1; End; End Else If (ch <> #13) and (ch <> #27) Then Begin Imprime_Char(col,l,ch); col := col+1; nome := nome+ch; i := i+1; End; Until (ch In [#13, #27,]) Or (i >= t); End; End. 16.3 Exemplo de Programa que usa a Unidade Criada: Uses Crt,Luzzardi; Var Nome: TIPO; I: Byte; Begin Limpa_Area(1,1,80,25,WHITE); Moldura_Simples(5,3,35,22); Moldura_Dupla(45,3,75,22); Entrada(6,5,20,Nome,'Nome: '); Imprime_String(50,5,Nome); GotoXY(50,7); For I := 1 to Length(Nome) do Begin Imprime_Char(49+I,7,Nome[I]); ReadLn; End; ReadLn; End. Observação: Para executar o programa e, obrigar que a unidade seja compilada novamente, deve-se compilar com a opção Build do menu Compile. 17. Memória de Vídeo Em Pascal, pode-se escrever direto na memória de vídeo sem ser através do comando Write ou WhiteLn, isto é feito endereçando um vetor de 4000 bytes a partir do endereço $B800:0000 que é o início da tela de texto (endereço na placa de vídeo), isto é feito da seguinte maneira: a primeira posição da tela é p[0], a segunda é p[2], pois p[1] e o atributo de cor do primeiro caracter. Para calcular a posição no vetor unidimensional através da coluna e linha é o seguinte:  EMBED Microsoft Draw  Localização na Memória de Vídeo posição := 160 * (linha - 1) + 2 * (coluna - 1); Atributo de COR: (1 Byte)  EMBED Microsoft Draw  P: Caracter Piscante (Bit 7) Fundo: Cor do Fundo (Bits: 6,5,4) I: Intensidade da Cor (Bit 3) Frente: Cor de Frente (Bits: 2,1,0) Program Memoria_Video; Uses Crt; Var Video: Array[0..3999] of Char Absolute $B800:0000; C,L: Byte; Ch: Char; (* ------------------------ Imprime *) Procedure Imprime_Caracter(c,l: Byte; caracter: Char); Var posicao: Word; Begin posicao := 160 * (l - 1) + 2 * (c - 1); Video[posicao] := caracter; End; Begin Repeat For L := 1 To 24 Do For C := 1 To 80 Do Begin GotoXY(C,L); Write('A'); End; Ch := ReadKey; For L := 1 To 24 Do For C := 1 To 80 Do Imprime_Caracter(C,L,'B'); (* Imprime na Memória *) Until KeyPressed; End. 18. Passagem de Parâmetros pela Linha de Comandos do Sistema Operacional Objetivo: Desenvolver programas que interagem com o Sistema Operacional, através de parâmetros. Variáveis Pré-Definidas ParamCount: Armazena o número de parâmetros da linha de comandos ParamStr(n): Armazena a lista de strings da linha de comandos Onde: n é o índice da string (0 até ParamCount) C:\>Inverte PELOTAS SATOLEP C:\_ Onde: ParamCount = 1 ParamStr(0) = 'A:\INVERTE.EXE' ParamStr(1) = 'PELOTAS' Objetivo do Programa: Recebe uma string qualquer pela linha de comandos do Sistema Operacional e a inverte. Uses Crt; Var I,N: Byte; S: String; Begin ClrScr; If ParamCount <> 1 Then WriteLn('Sintaxe: INVERTE ') Else Begin S := ParamStr(1); N := Length(S); For I := N DownTo 1 Do Write(S[I]); End; End. A:\>lista LISTA.PAS Onde: ParamCount = 1 ParamStr(0) = 'A:\LISTA.EXE' ParamStr(1) = 'LISTA.PAS' Objetivo do Programa: Recebe o nome de um arquivo texto, abre o arquivo e lista o conteúdo na tela, numerando as linhas e parando quando a tela está cheia. Uses Crt; Var Arq: File Of Char; Reg: Char; N: Byte; Linha: Word; N_Car: LongInt; Begin ClrScr; If ParamCount <> 1 Then WriteLn('Sintaxe: LISTA ') Else Begin Assign(Arq,ParamStr(1)); {$I-} Reset(Arq) {$I+}; If IoResult <> 0 Then WriteLn('ERRO: Arquivo Não Existe') Else Begin Linha := 1; N := 1; Read(Arq,Reg); Write(Linha:3,': '); While Not(Eof(Arq)) Do Begin Write(Reg); If Reg = #13 Then Begin Inc(N); Write(Linha:3,': '); Inc(Linha); If N = 23 Then Begin WriteLn; WriteLn; Write('Arquivo: ',ParamStr(1)); Write(' - Tecle '); ReadLn; ClrScr; End; End; Read(Arq,Reg); End; Close(Arq); End; End; End; End. C:\>procura UNIVERSIDADE E UNIVERSIDADE possui 2 letras E C:\>_ Onde: ParamCount = 2 ParamStr(0) = 'A:\PROCURA.EXE' ParamStr(1) = 'UNIVERSIDADE' ParamStr(2) = 'E' Objetivo do Programa: Recebe uma palavra e uma letra e verifica quantas vezes a letra está presente dentro da palavra Uses Crt; Var S,Saux: String; Letra: Char; I,N,T: Byte; Begin ClrScr; If ParamCount <> 2 Then WriteLn('Sintaxe: PROCURA ') Else Begin S := ParamStr(1); Saux := ParamStr(2); Letra := Saux[1]; N := Length(S); T := 0; For I := 1 To N Do If S[i] = Letra Then Inc(T); WriteLn(S,' possui ',T,' letras ',Letra); End; End. 19. Ponteiros (Variável que Aponta) 19.1 Tipos de Alocação de Memória 19.1.1 - Alocação Estática de Memória Tipo de alocação de memória onde cada variável global possui um número definido de bytes alocados (reservados) na memória, não podendo ser aumentado ou diminuído durante todo o programa. Exemplo: Var x: Byte; (* 1 byte alocado na memória *) y: Integer; (* 2 bytes alocados na memória *) 19.1.2 - Alocação Dinâmica de Memória Tipo de alocação onde cada variável possui um número indefinido de bytes alocados na memória, podendo ser alocado ou desalocado a qualquer momento com qualquer tamanho. Para isto, é necessário usar uma variável do tipo Ponteiro. As variáveis locais são alocadas dinamicamente. Observação: Um ponteiro é uma variável que ocupa 4 bytes Definição: Var nome_do_ponteiro: ^tipo_base; Exemplo: Var p: ^Integer; (* p aponta para um inteiro [2 Bytes] *) Alocação: Espaço reservado na memória RAM Alocar um Ponteiro New(p); Procedimento que aloca memória do tamanho do tipo_base; Exemplo: New(p); If p = Nil Then WriteLn('ERRO: Falta de Memória') Else WriteLn('Ok, Ponteiro Alocado'); Nil: Palavra reservada que representa ponteiro nulo, ou seja, ponteiro não aponta para nada. Desalocação: Liberação de espaço alocado na memória Desalocar o Ponteiro Dispose(p); Procedimento que desaloca a memória alocada pelo procedimento New(p); Alocar uma Área GetMem(p,número_de_bytes); Procedimento que aloca uma área com "n" bytes Exemplo: Uses Crt; Var P: ^Integer; N: Byte; Num_Bytes: Word; Begin ClrScr; Write("Número de Elementos: '); ReadLn(N); Num_Bytes := N * SizeOf(Integer); (* Calcula o Número de Bytes *) GetMem(P,Num_Bytes); If P = Nil Then WriteLn('ERRO: Falta de Memória') Else WriteLn('Ok, Ponteiro Alocado'); Desalocar uma Área FreeMem(p,número_de_bytes); Procedimento que desaloca uma área com n bytes Definições p Contém o endereço de memória apontada pelo ponteiro p^ Contém o conteúdo do ponteiro @n Contém o endereço da variável n Uses Crt; Var N: Integer; P: ^Integer; Begin ClrScr; N := 65; P := @N; (* Ponteiro aponta para a variável n *) WriteLn('Conteúdo: ',P^); End.  EMBED Microsoft Draw  Endereço: [Segmento:OffSet] Funções a) MemAvail: Retorna o número de bytes disponível na memória b) MaxAvail: Retorna o número de bytes do maior bloco disponível na memória Exemplo: Uses Crt; Var Livre: LongInt; Bloco: LongInt; Begin ClrScr; Livre := MemAvail Div 1024; WriteLn(Livre,' K Bytes Livres na Memoria'); Bloco := MaxAvail Div 1024; WriteLn(Bloco,' K Bytes do Maior Bloco Livre'); ReadLn; End. 19.2 Acesso Direto a Memória Variável Pré -Definida Mem[Segmento:OffSet] Para acessar diretamente a memória usa-se a variável pré-definida Mem. Com esta variável, pode-se listar ou modificar uma posição de memória. Endereço do Vídeo: $B800:0000 Segmento $B800 OffSet $0000 Objetivo do Programa: Possui dois procedimentos, um para preencher a tela com caracteres aleatórios e outro para limpar a tela (preencher com espaços) sem Write. Uses Crt; Procedure Limpa_Tela; Var Segmento,OffSet: LongInt; Begin Segmento := $B800; OffSet := $0000; Repeat Mem[Segmento:OffSet] := 32; (* 32 - Espaço *) Inc(OffSet,2); Until OffSet = 4000; End; Procedure Suja_Tela; Var Segmento,OffSet: LongInt; Letra: Byte; Begin Segmento := $B800; OffSet := $0000; Repeat Letra := Random(256); Mem[Segmento:OffSet] := Letra; Inc(OffSet,2); Until OffSet = 4000; End; Begin Repeat Limpa_Tela; Suja_Tela; Until KeyPressed; End. 19.3 Acesso Direto a Memória de Vídeo: Uses Crt; Var Video: Array[0..3999] Of Char Absolute $B800:0000; C,L: Byte; Letra: Byte; Procedure Imprime(c,l,Letra: Byte); Var posicao: Integer; Begin posição := 160 * (l - 1) + (c - 1) * 2; Video[posição] := Chr(Letra); End; Begin Repeat ClrScr; For L := 1 To 24 Do For C := 1 To 80 Do Begin Letra := Random(256); Imprime(C,L,Letra); End; Until KeyPressed; End. 19.4 Listas Encadeadas Permitem alocação indeterminada de elementos. Tem por característica um elo de ligação entre um elemento e outro. Possui um Header (cabeça) que indica o primeiro elemento da lista.  EMBED Microsoft Draw  As listas são percorridas seqüencialmente, apenas numa direção, ou seja, do primeiro ao último elemento. A informação do número de elementos da lista é obtida somente com a varredura de toda a lista. Para resolver estes dois problemas pode-se usar um descritor da seguinte maneira:  EMBED Microsoft Draw  19.5 Filas e Pilhas As listas podem ser Filas ou Pilhas: Fila: FIfO (First Input First Output), ou seja, o primeiro elemento a entrar na fila é o primeiro elemento a sair da fila. Pilha: LIfO (Last Input First Output), ou seja, o último elemento a entrar na pilha é o primeiro a sair. E - Entrada de Dados S - Saída de Dados  EMBED Microsoft Draw  Pilha: Fila: Entrada: 1,2,3 Entrada: 1,2,3 Saída: 3,2,1 Saída: 1,2,3 Implementação de uma Pilha Objetivo do Programa: Inserir números inteiros em uma pilha. Quando o número for igual à zero (0), todos os números da pilha são listados. Program Pilha; Uses Crt; Type PONTEIRO = ^ELEMENTO; ELEMENTO = Record dado: Integer; elo: PONTEIRO; End; Var P,Header: PONTEIRO; N: Integer; Begin Header := Nil; Repeat ClrScr; Write('Número: '); ReadLn(N); If N <> 0 Then Begin New(P); If P = Nil Then WriteLn('ERRO: Falta de Memória') Else Begin P^.elo := Header; P^.dado := N; Header := P; End; End; Until (N = 0) or (P = Nil); P := Header; While P^.elo <> Nil Do Begin WriteLn('Valor: ',P^.dado); P := P^.elo; End; WriteLn('Valor: ',P^.dado); ReadLn; End. Implementação de uma Fila Objetivo do Programa: Inserir números inteiros em uma fila. Quando o número for igual à zero (0), todos os números da fila são listados. Program Fila; Uses Crt; Type PONTEIRO = ^ELEMENTO; ELEMENTO = Record dado: Integer; elo: PONTEIRO; End; Var P,Q,Header: PONTEIRO; N: Integer; Begin ClrScr; Write('Número: '); ReadLn(N); New(P); Header := P; P^.elo := Nil; P^.dado := N; Repeat ClrScr; Write('Número: '); ReadLn(N); If N <> 0 Then Begin Q := P; New(P); If P = Nil Then WriteLn('ERRO: Falta de Memória') Else Begin Q^.elo := P; P^.dado := N; P^.elo := Nil; End; End; Until N = 0; P := Header; While P^.elo <> Nil Do Begin WriteLn('Valor: ',P^.dado); P := P^.elo; End; WriteLn('Valor: ',P^.dado); ReadLn; End. 19.6 Lista Duplamente Encadeada Possui um elo para o elemento anterior e um elo para o elemento posterior. Possui uma vantagem sobre a lista encadeada, pois pode ser percorrida em duas direções. Objetivo do Programa: Inserir números inteiros em uma lista duplamente encadeada. A inserção pode ser pela esquerda ou a direita. A exibição dos elementos da lista pode ser feita pela esquerda ou direita. Program Lista_Duplamente_Encadeada; Uses Crt; Type PONTEIRO = ^ELEMENTO; ELEMENTO = Record anterior: PONTEIRO; dado: Integer; posterior: PONTEIRO; End; DESCRITOR = Record primeiro: PONTEIRO; n: Word; ultimo: PONTEIRO; End; Var P: PONTEIRO; D: DESCRITOR; N: Integer; Op: Char; Procedure Inicializa_Descritor; Begin D.primeiro := Nil; D.n := 0; D.ultimo := Nil; End; Procedure Insere_Esquerda(n: Integer); Var q: PONTEIRO; Begin New(P); If P = Nil Then WriteLn('ERRO: Falta de Memória') Else Begin If D.n = 0 Then Begin P^.anterior := Nil; P^.dado := N; P^.posterior := Nil; D.primeiro := P; D.n := 1; D.ultimo := P; End Else Begin q := D.primeiro; P^.anterior := Nil; P^.dado := n; P^.posterior := q; q^.anterior := P; D.primeiro := P; D.n := D.n + 1; End; End; End; Procedure Insere_Direita(n: Integer); Var q: PONTEIRO; Begin New(P); If P = Nil Then WriteLn('ERRO: Falta de Memória') Else Begin If D.n = 0 Then Begin P^.anterior := Nil; P^.dado := n; P^.posterior := Nil; D.primeiro := P; D.n := 1; D.ultimo := P; End Else Begin q := D.ultimo; P^.anterior := q; P^.dado := n; P^.posterior := Nil; q^.posterior := P; D.ultimo := P; D.n := D.n + 1; End; End; End; Procedure Exibir_Lista_Direita; Begin P := D.ultimo; While P^.anterior <> Nil Do Begin WriteLn('Valor: ',P^.dado); P := P^.anterior; End; WriteLn('Valor: ',P^.dado); End; Procedure Exibir_Lista_Esquerda; Begin P := D.primeiro; While P^.posterior <> Nil Do Begin WriteLn('Valor: ',P^.dado); P := P^.posterior; End; WriteLn('Valor: ',P^.dado); End; Begin Inicializa_Descritor; Repeat ClrScr; Write('Número: '); ReadLn(N); If N <> 0 Then Begin Write('[E]squerda ou [D]ireita ?'); Repeat Op := UpCase(ReadKey); Until Op IN ['E','D']; Case op Of 'E': Insere_Esquerda(N); 'D': Insere_Direita(N); End; End; Until N = 0; ClrScr; Repeat Write('Listar: [E]squerda, [D]ireita ou [F]im?'); Repeat Op := UpCase(ReadKey); Until Op IN ['E','D','F']; WriteLn(Op); Case Op Of 'E': Exibir_Lista_Esquerda; 'D': Exibir_Lista_Direita; End; Until Op = 'F'; End. 20. Interrupções O Microcomputador PC (Personal Computer) possui um circuito integrado responsável por interromper o processamento do Microprocessador (8086) chamado PIC 8259 (Programmable Interrupt Controller), possuindo 256 tipos de interrupções diferentes. As interrupções podem ser de hardware ou software. Por exemplo Ctrl+Break é uma interrupção de hardware (teclado). Procedimento de Interrupção Intr(número_da_interrupção: Byte; Var regs: Registers); Registers Tipo de dado pré-definido do Pascal que permite manipular diretamente os registradores do 8086. Atenção: Para usar este procedimento é necessário; Uses Dos; Objetivo do Programa: Testar se a impressora (IBM 2390) está On-Line (Ligada) ou Off-Line (Desligada) Uses Crt, Dos; Function Testa_Impressora: Boolean; Var regs: Registers; status: Boolean; Begin regs.ah := $02; regs.dx := $00; Intr($17,regs); If regs.ah = 144 Then status := TRUE Else status := FALSE; Testa_Impressora := status; End; Begin ClrScr; Repeat If Testa_Impressora Then WriteLn('Impressora On-Line') Else WriteLn('Impressora Off-Line'); Until KeyPressed; End. Objetivo do Programa: Posicionar o cursor na tela em qualquer posição c (coluna) e l (linha). Uses Crt, Dos; Const TEMPO = 100; Var C,l: Byte; Procedure Cursor(col,lin: Byte); Var regs: Registers; Begin regs.ah := $02; regs.bh := 0; (* Número da Página *) regs.dh := lin; regs.dl := col; Intr($10,regs); End; Begin ClrScr; For L := 1 To 24 Do For C := 1 To 80 Do Begin Cursor(C,L); Write(' =O-'); Delay(TEMPO); (* Controla a Velocidade *) End; End.      PAGE 1 8HgmŠ“›­º»ÂÏêëøÿ  * > ? k ‚ ¤ þ  ƒ ¦    " ' , 1 6 ; @ E M R Y ^ d i n s | ‚ Š ‹ ™ 7 = A I M U X Z t v ž ¢ ª ® öîãî×îÎîÎîÎîÃÎîÎîÎîÃÎîöÎîÎîÎîÎîÃîÃîÃîÃîÃîÃîÃîÃîÃîÃîÎî·¨·¨·¨·îÃîÃîÃhw¯56CJaJmH sH hw¯CJaJmH sH hw¯56CJaJhw¯5CJaJhw¯CJOJQJaJhw¯56CJ<aJ<hw¯CJaJhw¯5CJ(aJ(B!89:;<=>?@ABCDEFGHghlmŠ‹Œàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$]+]ýýŽ‘’“¨©ª«¬­º»÷øk l ‚ ƒ ¤ ¥ ààààààààààààÁÁÁÁÁààÁÁÁ$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$¥ ´ à ý þ   " , 5 B O Z k ‚ ƒ ¦ § ¼ Í â     " , àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$, 6 @ M Y d n | Š ‹ ™ š ¶ · É Þ  4 5 A M X Y x • – àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$– ¢ ® ¯ Â Ã Ì Ø á ê ó ý    " , 6 B N W d e q r ‰ Š àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$® Â Ä È Ì Ñ Ø Ý á æ ê ï ó ø ý þ       " ( , 2 6 < B H N T W X ] d e q ó ÿ  !%*,15:>?KNSVchmpq}ƒˆŽöîâÓâÓâÓâÓâÓâÓâǸǸǸǸǸǸǸǸǸÇî­îöîǸǸǸǸǸǸǸÇî­î­î­î­îǸǸÇhw¯56CJaJhw¯56CJaJmH sH hw¯CJaJmH sH hw¯56CJaJmH sH hw¯CJaJmH sH hw¯CJaJhw¯5CJaJDŠ œ ¬ ¾ Ñ Ò ò >VpŽ ²³ÆÇáõ$%1=IVàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$› ­²³Æ$&*16=BIJNVWnpu{– ¦­³¸»ÃÉÏÒÙÚßèé6SUZ^dhnu{€†“š §­±·»ÂÉÐÔÛäå…ŠøíøíøäøäøØÉØÉØÉØøíøäøØÉØÉØÉØÉØÉØÉØÉØÉØøíøäøäøØÉØÉØÉØÉØÉØÉØÉØÉØÉØÉØÉØÉؼØøØhw¯5CJaJmH sH hw¯56CJaJmH sH hw¯CJaJmH sH hw¯5CJaJhw¯56CJaJhw¯CJaJJVWno{ ­ÃÙèé56ST^hu€š§àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$§±»ÉÔäå"3Y„“£¤±²ÆÇ×æõ"1àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$Š“™£¤±³Ð×àæèïõþ "+1:BDKPimov~‡™ ¢ÁÇÊ×—§«»ÄØÞðó &)3Zcfr²µÌÔ×àc}‚…ùXñåñåØåÐÅÐÅÐåñåñåñåñåñåñåÐÅÐÅÐåñåñåñåÐÅмÐÅÐÅÐÅÐÅÐÅÐÅÐÅÐÅÐÅÐÅÐÅÐÅÐÅмżммhw¯5CJaJhw¯56CJaJhw¯CJaJhw¯5CJaJmH sH hw¯CJaJmH sH hw¯56CJaJmH sH J1BPQ_`m~ ¡ÉÊ×Øîïü 12?LYZàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$Z‰¡µÒêüS|›œ·âãþÿ4bc…†¢Êøùàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ùXYgh‹Œ§ÂÃá 5XYj‹Œš›$%34àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$XYgYj‹Œš¼Ê %3ŠÀ×ôõöøûýÿ  1;O  y†ŒŽ“¥§GLTZ›¤¨«³×øïøïæøæøÛøÛøæøæøæøÏø¶¶¶¶¶¶æ®øï¡•¶øÛøÛøï¡•¶øÛøÛøÛøæ®øhw¯CJ(aJ(mH sH hw¯5CJ(aJ(mH sH hw¯CJ(aJ(hw¯CJaJmH sH hw¯5CJaJmH sH jhw¯CJUaJhw¯56CJaJhw¯5CJ(aJ(hw¯5CJaJhw¯CJaJ:4m‰ŠÀÁö2…Ö×ôõ÷ø0123OP ààààààààààààÁàÁàà¿àààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ Ž¥¦§¨³´YZmn/0°±ÇÈD E c d àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$×ÛZ^m²¼/”™¦¬±ºÇD E O c ƒ Ž š ¢ Í 0!4!7!;!L!£!«!¾!R"Y"v"w"z""’"¦"«"Ï"Ü"ú"7#<#Z#_#c#o#†#‘#–#÷#$$!$&$A$I$g$p$u$õíõíäÜíõíõíäÜíõíõíäÜíÓäÜíõíäÜíõíäÜíäÜíäÜíƺ®íõíäÜíõíõíäÜíõíäÜíõíõíõíhw¯CJaJmH sH hw¯CJ(aJ(mH sH hw¯5CJ(aJ(mH sH hw¯5CJaJhw¯CJ(aJ(hw¯5CJ(aJ(hw¯CJaJhw¯56CJaJDd š Í Î 6!7!L!M!¢!£!¾!¿!Q"R"v"w""‘"Î"Ï"ú"û"b#c#†#‡#ö#àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ö#÷#$$€$$Ÿ$ $ó$ô$%%D%E%e%f%ƒ%„%³%´%Æ%Ç%s&t&†&‡&Ø&àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$u$}$$Š$Ÿ$ª$¯$Ê$Ô$Ú$ã$è$ð$ô$ÿ$%E%P%e%f%m%ƒ% %¥%´%¸%Æ%È%å%ñ%W&[&t&y&†&Ç&Ó&Ù&ä&'6'<']'a'”'˜''§'µ'Õ'â'((($(Z(^(c(h(l(t(‹(Å(Æ(Ñ(ä(å(ï(þ(õíäÜíõíõíõíõíäÜíäÜíäÜíõíÏ÷íõíõíäÜíõíäÜíõíõíõíäÜíõí®äÜíõíõíäÜí®äÜíäÜhw¯5CJaJhw¯CJaJmH sH hw¯CJ(aJ(mH sH hw¯5CJ(aJ(mH sH hw¯CJ(aJ(hw¯5CJ(aJ(hw¯CJaJhw¯56CJaJDØ&Ù&''œ''µ'¶'(($(%(k(l(‹(Œ(Å(Æ(ä(å(æ(ç(þ(ÿ(Q)R)ààààààààààààààààààààÞàààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$þ(R)a)Š))”)š)Ñ)à)W*`*e*m*q*~*+ + ++P+T+[+d+i+q+”+¥+Ð+×+ì+ð+õ+,,,7,;,U,Y,],q,‹,‘,¶,¼,Û,â,þ,-3-@-|-„-¨-»-Ú-ä-.. .....".(.0.d.n.½.Ï.2/@/¿/Ó/<0I0ã0î0-1<1n1~1±1¸1ü12øïøäøäøïøäøäøïøäøïøäøäøäøïøäøäøïøäøäøäøïøäøäøäøïøäøäøïøäøäøäøäøäøäøïøïøïøïøïøïøïøïøÛøähw¯5CJ(aJ(hw¯56CJaJhw¯5CJaJhw¯CJaJVR)Ð)Ñ)p*q* + +“+”+ô+õ+\,],ý,þ,§-¨-c.d.¼.½.1/2/¾/¿/;0<0àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$<0ã0-1n1°1±1¸1¹1"2#2S2T2y2Á23R3S3•3–3Ï34444F4G4Ë4àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$222#2$2,2T2V2Y2y2ƒ2º2¿2Á2Ê2ï2ø2ù23 3333S3_3‡3’3˜3Ÿ3Ï3Ö34 44G4X4–4ž4Ì4Û40535f5j5p5x5}5Š5¦5«5Ð5Ù566/6<6`6d6f6k6o6u6‰6•67%727H7S77 7Ê7Õ7ñ7øíøä×Ë×äøäøíøäøíøíøíøäøäøíøäøäøºøäøíøäøíøíøíøäøíøäøíøäøíøíøíøäøºøíøäøíøhw¯CJ(aJ(hw¯5CJ(aJ(hw¯CJaJmH sH hw¯5CJaJmH sH hw¯5CJaJhw¯56CJaJhw¯CJaJIË4Ì4|5}5Ï5Ð5.6/6ˆ6‰677273777ñ7ò7J8K8¹8º89àààààÀàààààààààààààààà $ Æ,Є p@ à°€P ðÇ!þ#„3]„3a$$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ñ788$878<8K8_8º8Ë89 9909^9c9g9w9»9Í9::':„:: :¢:Ã:Ç:Ê:Ñ:Ó:Û:á:ñ:;;*;.;1;8;:;B;H;Q;g;h;q;Ì;Ö;$<,<}<ˆ<©<µ<==$=,=|=Œ=³=¼=Â=Ê=Í=ã=> >>>F>[>x>‹>‘>•>«>³>Î>Ó>å>ô>öîãîãîöîöîãîöîãîöîöîÚÒîÚÒöîãîãîãîÚÒöîãîãîãîÚÒîöîöîöîöîöîãîãîöîãîãîöîãîãîöîãîãîãîãîãhw¯CJ(aJ(hw¯5CJ(aJ(hw¯56CJaJhw¯CJaJhw¯5CJaJS99f9g9º9»9::':(:ƒ:„: :¡:à:á:;;G;H;g;h;Ë;Ì;$<}<©<àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$©<|=Í=Î=E>F>÷>ø>‚?ƒ?³?@,@-@`@a@z@{@,A-A­A®AþAÿAWBXB¡Bàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ô>ø> ?Q?W?ƒ?Š?³?»?@ @,@=@a@p@z@|@ˆ@œ@§@¬@º@¼@ô@û@A)A-A7A˜AA®A»AÿA BXBkB¢B´BÎBÙB C#C;CFCYCoCC™CœCC´CµC½CÛCëCîCD DDD(DQDbDmDxD|D„D—DšDÛDåDéDøïøäøïøïøïøïø×Ë¿øäøäøäøäøäøïøäøïøïøïøïøäøïøäøïøäøï¶øïøäøäøïøäøäøäøïøäøäøhw¯5CJ(aJ(hw¯CJaJmH sH hw¯CJ(aJ(mH sH hw¯5CJ(aJ(mH sH hw¯56CJaJhw¯5CJaJhw¯CJaJH¡B¢B C CYCZCœCCžC´CµC D D{D|DèDéD_E`E{F|FGGàààààààÞààààààààààààà¿$ Æ)  p@ à°€P ðÇ!þ#„3]„3a$$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$éDôDBEMEXE[E`EhEáEêEõEF{F„FÔFÝFèFëFþFGGGG"GSG\GaGiGlGsG©G²G·G¿GÂGËGÛGçGþGH H2HZHgHkHsH™HžHÐHÛHæHéHîHöHII2I?IJIMIrI}I‘I¥I°I»I¿IãIäIøI>JCJ\J_JtJxJ•JžJµJ½JÕJÙJòJùJýJKåKöîãîãîöîãîãîöîãîãîãîãîöîãîãîöîãîãîöîãîãîãîãîöîãîãîãîöîãîãîãîãîãîãîÚöÚîãîãîãîãîãîãîãîöîhw¯5CJ(aJ(hw¯56CJaJhw¯CJaJhw¯5CJaJVGlGÂGÃGjHkHíHîH¾I¿IÀIãIäIøIùI&J'JFJbJ{J¡JÀJÜJßÀÀÀÀÀÀÀÀ¾ÀÀÀÀÀÀÀÀÀÀÀÀ$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ $ Æ,Å p@ à°€P ðÇ!þ#„3]„3a$ÜJüJýJKKHKcK›KüKýK LL”L•L²L·LÒLÓLçLèL)M*MTMUM–M—M¼Màààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$åKçKýK L•L—L¯L²L·L¸LÏLÒLÓLçLèL)M*M1MUM–M—M›M½MþMÿMN NIOMOUO[ObOeOlOsOyO}O‰OËOÌOÕOøOþO P PPPDPJPUPXP[PœPP£P®P±P´PÒP#Q'QÀQãQR)R*R7R8RuR|R¯R¹RºRS SkSöîåîöîöîöîöîåîöîÚîöîÚîöîË¿îË¿Ë¿ÚîÚîÚîöîÚîË¿Ë¿ÚîË¿Ë¿öîÚîÚîåîÚî¿îåîåöîÚîåöîÚîhw¯CJaJmH sH hw¯56CJaJmH sH hw¯56CJaJhw¯5CJ(aJ(hw¯CJaJhw¯5CJaJK¼M½MþMÿMNN9NZN{N™N¾NãN O$OHOIOaObOuOO‰OŠOËOÌOøOþO Pàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ PPPDPJPUPZP[PœPP£P®P³P´PÒPÓPQQ"Q#QYÜYöíåÚåÎåöíåÚåÂåöíåÚåÎÂåöíåÚ嵨™™™¨µ¨ÂåÚåöíåöíåöåöåöåöåíåÎhw¯56CJaJmH sH hw¯5CJaJmH sH hw¯5CJ(aJ(mH sH hw¯CJaJmH sH hw¯CJaJmH sH hw¯56CJaJhw¯CJaJhw¯5CJaJhw¯5CJ(aJ(<(U6UVeV‚V VªV°V¹Vàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$¹VÎVÕVèVûVW!W'WYHYIY\YlY‡YˆYŽY—Y Y©YÐYàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ÜYßYZZZZ5Z6Z7Z8Z:ZYZ¥Z¹ZóZ[Z[[[t[u[Š[Œ[[Ž[¤[¥[¦[§[©[¸[º[»[Ñ[Ò[Ó[Ô[Ö[å[ç[è[þ[ñåñåÝÙÎƺ²©²²©²”©²©Œ²ÝÙyº²©ŒÝÙnfº”©ŒÝÙjÁ hw¯UjXÎ hw¯UVjÊhw¯Uj\u hw¯UVhw¯CJ(aJ(hw¯5CJaJhw¯CJaJmH sH hw¯5CJ(aJ(hw¯CJaJjhw¯CJUaJjMhw¯Uj\t hw¯UVhw¯jhw¯Uhw¯CJaJmH sH hw¯56CJaJmH sH (ÐYóYZZ9Z:ZYZZZlZŠZ•Z¥Z¹ZÇZòZóZ[[[&[8[J[R[Z[[[t[u[àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$u[Œ[[¨[©[º[Õ[Ö[ç[\\\:\;\Y\Z\¥\¦\³\´\»\Ë\ê\ ]!],]-]àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$þ[ÿ[\\\\\ \6\7\8\9\;\S\Y\¦\³\Ô\Ö\ê\!],]-]]¸]Å]á]ã] ^;^F^G^‹^»^×^Ø^â^$_0_2_5_H_K_ôìàØÏÇ¿»°¨àØÏÇØ›€ØwØØ›€ØwØØÏØÏØwØlØ€hw¯56CJaJhw¯5CJaJhw¯56CJaJmH sH hw¯CJaJmH sH hw¯5CJ(aJ(mH sH jÑhw¯Uj\q hw¯UVhw¯jhw¯Uhw¯CJ(aJ(hw¯5CJ(aJ(hw¯CJaJjhw¯CJUaJjH hw¯Uj\r hw¯UV*-]4]D]]·]¸]Å]Æ]Í]Ù] ^:^;^F^G^N^Z^‹^º^»^×^Ø^â^ã^#_$_G_àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$G_H_c__€_Š_‹_Ë_Ì_ï_ð_ `(`)`<`=`b`™`Þ`aGataœaÑaÿa bObàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$K_c_f_€_Š_Ì_Ø_Ú_Ý_ð_ó_ ``)`<`K```b`q`™`¯`Þ`ï`a$aGaVata‚aœaªaÑaáaÿa b b/bOb^b~bŽb¶bÇbðbúbc*c\chcicc€ccÿcdd=dLdYd[d]d`dddfdeeeôåôÜÔËÔÀÔåôåôÜËÔºËÔËÔËÔËÔËÔËÔËÔËÔËÔËÔËÔËÔËÔËÔËÔÜÔÜÔÜÔÀÔôÔܲ§²§²Ôåôhw¯56CJ(aJ(hw¯CJ(aJ( hw¯EHhw¯56CJaJhw¯5CJaJhw¯CJaJhw¯5CJ(aJ(hw¯56CJaJmH sH hw¯CJaJmH sH BOb~b¶bðbc[c\chcicc€cc‘cþcÿcd dd!d*dgKgLg]g_gßgègëgígógõgýghh0hRhSh[h‰h¥h²h»hiii&i,i2irixiñåñåñåñåñåñåÝÔÌÁÌÁÌÁÌݶݶÝåÝñå©œåݶݶݶÝåñåÔÝ“ÝåÝ“Ý“Ýå©ñå©hw¯5CJaJhw¯5CJ(aJ(mH sH hw¯5CJaJmH sH hw¯56CJaJhw¯56CJ(aJ(hw¯CJ(aJ(hw¯5CJ(aJ(hw¯CJaJhw¯CJaJmH sH hw¯56CJaJmH sH :ßgègégñgýg/h0hRhShˆh‰hŸh±h²hii&i2iTiri}i~i¶i·iÆiÇiØiàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$xi{i}i~iœi i¶i·iÆiÇiÉiÊiÓiØiIjKjLjUjZjjjojk2k>kUkVkekfkkkukxkïkôkˆll—lšl!m&m7mn?nJnMnsn™n»nÀnàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$4n7n;n?nCnJnMnžn»nÀnånènënðn÷núnxo}o¦o©o¬oÀoÂoÚoÛoéoêoíopppp%p'pÅpÈpÒpÖpØpÝpápçpêpîp qq6q7q:qBqDqIqLqq’qÁqÄqÌqøíøàÔàÔÈàÔàÔàÔàÔ¿øàÔ²©¡ø¿ø¿ø¿ø¿ø¿ø¿øíøíøíøíøíø¿’Ô’Ô’Ô’Ô’Ôhw¯56CJaJmH sH hw¯CJ(aJ(hw¯5CJ(aJ(hw¯5CJ(aJ(mH sH hw¯5CJaJhw¯CJaJmH sH hw¯CJaJmH sH hw¯5CJaJmH sH hw¯56CJaJhw¯CJaJ9Ànånênën÷núno.oIo]oxo}o¦o«o¬oÚoÛoéoêo)p9p:pépêp q6q7qàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$7qLqXq˜qµqÀqÁqÖqñqr2rUrerfr”r•r£r¤r·rËrÌr;sšIš_šàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$_šzš’šªš³šÁšÒšïš› ›)›;›B›H›I›c›d›m›n›·›¸›ß›à›ê›ý›œœàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$œœ%œ:œLœgœ¢œµœºœ»œÄœÅœ>?I\ms{…œ³Î žHžàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$HžMžNžZž[ž¦ž§žßžàžêžŸŸŸ%Ÿ6ŸHŸVŸoŸ}Ÿ‹Ÿ™ŸÉŸãŸèŸéŸóŸôŸàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$pŸŒŸÊŸãŸéŸîŸóŸ   ( . ? C F G t ° Þ â 0¡I¡O¡T¡[¡‡¡¡ž¡¤¡É¡ñ¡¢¢¢V¢o¢u¢z¢¢É¢Ï¢à¢æ¢£>£m£n£t£Ø£Þ£ã£ê£¤$¤%¤3¤9¤<¤=¤v¤È¤Î¤Ð¤æ¤ÿ¤¥ ¥¥ôìôìãØìÏìÄìÄìÏìôìÄìôìãØìÄìÄìôìÏÄìôìãØìÄìÄìôìϵôìãØìÄìôµô¨ôìÄÏìôìãØhw¯5CJaJmH sH hw¯56CJaJmH sH hw¯56CJaJhw¯5CJaJhw¯56CJ(aJ(hw¯5CJ(aJ(hw¯CJaJhw¯CJaJmH sH BôŸ0 1 s t ~ – © ¯ ¸ Õ ð ¡/¡I¡N¡O¡[¡\¡¡¡È¡É¡Ó¡ê¡ð¡ù¡àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ù¡¢+¢U¢o¢t¢u¢¢‚¢Ñ¢Ò¢£££&£7£=£F£S£m£€£Ž£¾£Ø£Ý£Þ£ê£àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ê£ë£$¤%¤N¤O¤Y¤o¤u¤~¤›¤ª¤å¤ÿ¤¥¥¥¥O¥P¥z¥{¥…¥˜¥©¥¼¥Â¥àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$¥^¥a¥{¥Ý¥¦¦¦$¦U¦—¦¦¢¦¦¦Õ¦Ù¦Ú¦ú¦§-§3§n§q§²§Ç§á§â§å§í§4¨;¨A¨H¨–¨œ¨ ¨¡¨ÿ¨©©,©2©c©›©¡©§©Ê©Ð©Ö©Ú©ú©ªªª<ªBª^ªbª¸ª»ªòª«‹«Ž««¢«×«øíøáøíøáøáøØÍøíÄøíøíøíøáøÄíøáøØÍøíøÄøáµáµáøáµáøØÍøíøíøíøÄøíøáøÄíøáhw¯56CJaJmH sH hw¯5CJaJhw¯56CJ(aJ(hw¯5CJ(aJ(hw¯CJaJmH sH hw¯56CJaJhw¯CJaJB¥˥ܥö¥¦"¦T¦Z¦|¦—¦œ¦¦¦¦§¦_§`§˜§™§£§±§À§Æ§Ï§á§ì§¨4¨àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$4¨:¨;¨H¨I¨‡¨ˆ¨®¨¯¨¹¨Ç¨Í¨Ö¨Þ¨ý¨©%©>©C©D©N©\©b©k©s©™©²©àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$²©Ê©Ï©Ð©Ú©Û©©ªªªñªòªüª« «0«6«?«G«~«‹« «±«º«Ó«ò«ù«¬¬àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$׫û«>¬D¬J¬S¬~¬„¬¯¬·¬ð¬/­7­­‰­°­Ã­Ì­Ù­á­ã­ä­®®®®J®R®g®p®Ä®Ô®Ö®ˆ¯“¯ÿ¯°d°i°u°y°°–°¥°­°{±€±”±—±³±Ê±ß±ù±þ±(²>²D²e²Â²ã²è²!³(³g³l³ß³@´F´ôèà×ÌàÁàÁàèÁàÁà×Ì×Ì×à×à׸àÁàÁà׸à¸àÁàÁàÁàÁàÁà¸àÁàèôè«èà¸àèà¸à¸à¸àèàhw¯5CJaJmH sH hw¯5CJaJhw¯56CJaJhw¯56CJ(aJ(hw¯5CJ(aJ(hw¯CJaJhw¯CJaJmH sH hw¯CJaJmH sH C¬>¬C¬D¬S¬T¬¡¬¢¬ï¬ð¬ú¬­(­.­G­€­›­¯­°­ã­ä­®®®®Ã®Ä®àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ĮԮծ‡¯ˆ¯•¯–¯°F°¸°$±%±6±@±c±q±³±Ã±É±Õ±Þ±ë±ð±²!²'²>²àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$>²e²j²p²x²‚²—²§²À²Ô²ù²!³X³•³½³â³ë³´%´@´E´F´|´}´¯´Î´Ï´àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$F´W´}´´Ï´ß´µµ'µ/µ©µ°µÝµÞµôµõµöµ÷µùµ¶Q¶Y¶o¶x¶{¶†¶Õ¶Ú¶ð¶ñ¶ö¶÷¶G··ª·Õ·¸¸%¸.¸1¸8¸‡¸‘¸§¸¨¸­¸®¸ÿ¸¹¹¹5¹J¹\¹öîöîåîÚîÚîöîÒÎû¯öåîÚîÚîöîöîÚîÚî£îåîÚîÚîöîöîÚîÚî—Š—£—£hw¯5CJaJmH sH hw¯CJaJmH sH hw¯CJaJmH sH jhw¯CJUaJjThw¯UjTì® hw¯UVhw¯jhw¯Uhw¯56CJaJhw¯5CJ(aJ(hw¯CJaJhw¯5CJaJ6Ï´ß´à´¨µ©µÜµÝµøµùµ¶ ¶F·G·i·x·~·•·¤·©·ª·Õ·Ö·þ¸ààÀààààààààààààààààààà $ Æ,Рp@ à°€P ðÇ!þ#Ã&„3]„3a$$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$þ¸ÿ¸¹.¹4¹@¹I¹V¹[¹\¹t¹u¹¶º·ºöºûº»"»(»3»i»n»o»Š»‹»©»ª»àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$\¹a¹i¹t¹ì¹þ¹ º#º·º¿ºo»p»†»‡»ˆ»‰»‹»»™»©»€¼…¼¼—¼š¼£¼Í¼ó¼ô¼ ½ ½ ½ ½½½½T½U½X½Y½g½n½{½‡½ˆ½‰½Ÿ½öëãÛÐÛÐÛÐÛÈű¥ÛöëãÛÐÛÐÛÐÛ™ÈÄŽ†¥ÛÐ}ÛÐÛÐÛÐÛÐÛÈÄhw¯6CJaJj»!hw¯UjXÄ hw¯UVhw¯CJaJmH sH jhw¯CJUaJjµhw¯UjXÆ hw¯UVhw¯jhw¯Uhw¯56CJaJhw¯CJaJhw¯CJ(aJ(hw¯56CJ(aJ(hw¯5CJ(aJ(.ª»™¼š¼Í¼Ò¼Ø¼Ü¼â¼í¼ò¼ó¼½½S½T½m½‡½ˆ½£½¤½ç½è½¾¾ ¾!¾b¾àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$Ÿ½ ½¡½¢½¥½«½è½é½ë½ì½ï½ð½þ½¾¾¾¾¾¾¾"¾(¾c¾d¾g¾h¾v¾¾‚¾Œ¾Ó¾Ô¾ê¾ë¾ì¾í¾ð¾ö¾%¿-¿T¿Z¿‘¿˜¿ÀáÁy€¬ÂÃ1Ã7ÃŽÃôìàØÍØÍØÍØÍØÍØÅÁ¶®àØÍØÍØÍØÍØÍØÅÁ£›àØÍØÍØÍؒ؆ØÍ؆ØÍØhw¯CJaJmH sH hw¯5CJaJjÛ+hw¯UjXÊ hw¯UVj·(hw¯UjXÇ hw¯UVhw¯jhw¯Uhw¯56CJaJhw¯CJaJjhw¯CJUaJjh%hw¯UjXÈ hw¯UV4b¾c¾¾‚¾Ò¾Ó¾î¾ï¾$¿%¿/¿0¿^¿h¿y¿‡¿¨¿Ã¿É¿À(À0ÀQÀààÀààààààààààààààààààà $ Æ,VþРp@ à°€P ðÇ!þ#„3]„3a$$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$QÀrÀŽÀªÀÆÀÌÀìÀôÀÁ)ÁUÁÁÁ¤Á©Á¯Á·ÁÁÁßÁêÁ ÂÂ;ÂHÂjÂw‰Âàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$‰Â°Â¹ÂÖÂóÂà à Ã;ÃEÃVÃhÃvÄùÃÔÃÚÃÄ+ÄaÄfÄlÄuÄÄĨÄÊÄàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ŽÃ•ÃfĪÄ5Å>ÅSŖťŢÆÊÆ%Ç+Ç8Ç9Ç:ÇPÇQÇRÇSǰǹÇÙÇßÇRÈ^ÈöÈûÈ ÉÉÉ…É–ÉËÉÛÉõÉùÉüÉÊÊÊʧʵÊØÊßÊäÊ-Ë5Ë7ËxË|ˆËçË>ÌöîâîöîâîâîâîÙöÑͺ¬îöîöî¡î¡î¡˜îöîöî¡îÙöÙöîöî¡öîÙöîâ‹âîhw¯5CJaJmH sH hw¯6CJaJhw¯56CJaJjhw¯5CJUaJj.hw¯UjXÌ hw¯UVhw¯jhw¯Uhw¯5CJ(aJ(hw¯CJaJmH sH hw¯CJaJhw¯5CJaJ6ÊÄ×ÄùÄÅ(Å5ÅQÅzŃŒšžÅÛÅøÅÿÅÆ(ÆUƂƟƧÆÎÆ×ÆôÆÇ%Ç*Çàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$*Ç+Ç8Ç9ÇTÇUÇrǀǓǔǻÇáÇfÈ×È<É™ÉûÉüÉÊÊÊʦʧʵÊñÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒ$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$$ ÆÇ!þ#„3]„3a$µÊ¶ÊéÊ,Ë-Ë5Ë6ËwËxËËÄËôË&ÌCÌbÌwÌx̛̋̌̚ÌÍÍQÍRÍlÍmÍàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$>ÌPÌWÌXÌ`ÌhÌx̷̋̌̓̚ÌÃÌÚÌæÌÍ ÍÍ%ÍRÍYÍmÍvÍ}Í…ÍùÍÿÍÎ!Î7Î@ÎGÎpÎvΗΧάγιÎÔÎÚÎöÎûÎÏ ÏÏÏÏ8Ï?ÏdÏiÏ}ÏυόϑϬϯÏðÏôÏÐ#Ð)ÐDÐJЋÐôåôØôÐÇÐǼггШШШÐôåôШШÐôåôåôåôǼШШгÐǼШШгÐǼШШÐǼШÐhw¯56CJaJhw¯5CJaJhw¯56CJ(aJ(hw¯5CJ(aJ(hw¯CJaJhw¯5CJaJmH sH hw¯56CJaJmH sH hw¯CJaJmH sH BmÍ„ÍͫͱͺÍáÍøÍÎÎÎÎ6Î7ÎQÎ`ÎfÎoΫάικÎçÎèÎÏÏÏàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ÏÏUÏVÏ„Ï…Ï‘Ï’ÏáÏâÏÐÐ)Ð*Ð|Ð}зиÐÆÐÇÐþÐÿÐFÑGÑHÑUÑàààààààààààààààààààààààÞà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$‹ÐипÐÆÐáÐéÐ ÑÑ%Ñ)ÑGÑOÑUÑpÑuєљѦѪÑ1Ò?Ò©Ò²Ò¹ÒÄÒLÓQÓRÓWÓ]ÓbÓeÓoÓéÓöÓ(Ô0Ô1ÔvÔxÔ€Ô–Ô˜Ô Ô¦Ô¨Ô¼Ô¿ÔÇÔÓÔÕ!Õ)ÕDÕIÕÞÕåÕòÕöÕúÕÖÖ!Ö+Ö\ÖlÖõíäÙíõíõíÐíäÙíõíõíÐíõíĵÄí¨ÄµÄ¨ÄõíõíõÐíÐõíÐõíÐíĵÄíäÙíõíõíÐíäÙíõíÐhw¯5CJaJmH sH hw¯56CJaJmH sH hw¯CJaJmH sH hw¯5CJaJhw¯56CJ(aJ(hw¯5CJ(aJ(hw¯CJaJhw¯56CJaJBUÑVхцѭѮÑÒŽÒŸÒ©ÒÃÒÒÒíÒóÒüÒÓ0ÓKÓdÓeÓuÔvÔ–ÔºÔ»ÔÑÔíÔàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$íÔóÔÕÕ)Õ*ÕÏÕÐÕùÕúÕÖÖoÖpÖªÖ«Ö¸Ö¹ÖÒÖÓÖF×G×u×vׅ׆×Øàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$lÖ~Ö‚Ö«Ö¸Ö¹ÖÀÖÃÖÒÖÔÖçÖëÖ×××$×U×X×e×i×v×}ׅלף×ØØ6Ø=ØFØ]ØpسػØÈØÌØØØÙØàØçØýØ Ù8Ù>ÙYÙwÙxÙˆÙÙ“ÙšÙÝÙøíøàÔàŹÔøíøíøíøíø°ø§œøíøíø§œøíøíø°ø°§œøíøíø§øÔÔ‚Ôhw¯6CJaJmH sH hw¯5CJaJmH sH hw¯56CJ(aJ(hw¯5CJ(aJ(hw¯5CJaJhw¯CJ(aJ(mH sH hw¯56CJ(aJ(mH sH hw¯CJaJmH sH hw¯5CJ(aJ(mH sH hw¯56CJaJhw¯CJaJ3ØØ5Ø6ØFØGؤإØØØÙØçØèØ)Ù*ÙXÙYÙwÙxÙ‚ÙšÙ°ÙÁÙ×ÙâÙ"ÚPÚnÚàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ÝÙàÙâÙìÙóÙôÙüÙ(Ú0ÚoÚ€ÚÞÚ`ÛŽÛ¤ÛܬܹܺÜÏÜÐÜÛÜÜÜåÜ-Ý7ݎݙݚݣÝÞÞÞ%ÞÈÞáÞâÞíÞ ßß9ßDßmß›ßþßàà à'à,à‰à•àþàá<ãEãJãLãuã{ã~ã‡ãËãÎãÙãÝãáãéã0ä9ä>äòæÞÓÞÊÞÊÞæÞæÞæÞæÁÞÁÞÁÞÊÞÊÞÁÞÊÞÁÞÊÞÁÞÁÞÁÞÁÞÁÞÊÞÊÞÊÞÊÞÊÞæ²æÞÊÞÓÞæ²æ²æÞæ²hw¯56CJaJmH sH hw¯5CJ(aJ(hw¯5CJaJhw¯56CJaJhw¯CJaJhw¯CJaJmH sH hw¯6CJaJmH sH FnÚyÚÚˆÚ¥Ú¿ÚÝÚöÚ ÛÛ&Û0ÛFÛ\ÛsÛŠÛ Û·ÛíÛÜ!Ü=ÜYÜkÜqÜwÜ™Üàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$™Ü¦Ü«Ü¬Ü¹ÜºÜÏÜÐÜÛÜÜÜÝ,Ý-ÝݎݙݚÝØÝÞÞÞÞSÞÞÇÞààÒÒàààààààààààààààààààà$ ÆÇ!þ#„3]„3a$$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ÇÞÈÞáÞâÞíÞîÞÿÞ ß ßßß'ß8ß9ßDßEßVßlßmߛߜß&à'àˆà‰à•à–ààààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$–à à§à¯à¶à¿àÊàÕàáàëàòàýàþàGáHává¤áÒáâ.â_ââÁâóâ$ã%ã<ãàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$<ãLãeãkã}ãÊãçãääää0ä@äYä_ä€ä±äöäåCåDå[å\å©åªåáåâåàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$>ä@äiälä‰äŽä²ä»äÛäßä÷äúäå å ååDå[å\ådå‰åŽååå•å–å¸åÀåòåæ+æ=æ©æùæûæçç4çGçHçLçrçwç¸ç¼çäçþèéé9éUéVéôìãìãìØìÏìôÂô³ôìªìãìãØìÏØìØìôžôìôžô‚ôãìØìØìô³ô‚ôhw¯5CJ(aJ(mH sH hw¯56CJaJmH sH hw¯CJaJmH sH hw¯5CJ(aJ(hw¯56CJaJmH sH hw¯5CJaJmH sH hw¯6CJaJhw¯56CJaJhw¯5CJaJhw¯CJaJhw¯CJaJmH sH 3âåòåææ*æ6æ<æKæ[æ¨æ´æ¼æÐæäæùæç!ç.ç3ç4çGçHç©çààààààààÀÀàààààààààààà $ Æ,Рp@ à°€P ðÇ!þ#Q'„3]„3a$$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$©çªçÔçÕçäçôç è$è0è6èEèUèpè|è„è™è®èÃèØèíèþèé&é3é8é9éUéàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$UéVéêê6ê7êKê[êtê‹ê—êê¬ê¼ê×êßêôê ëë3ëHëYësë†ë“ë˜ë™ëàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$Vé_é„ééêêKêYë[ëdë™ë°ë±ë·ëÜëãë3ì9ìjìdífílí í²í³í¶íÛíßíNîQîÂî‹ï¥ïàïâïåï*ðDðEðMðrðzð—ð˜ð¾ðÆðòðoñ.ò6òYôôÁôÂôÊôòôÿôõ õõ&õDõNõtõ€õ‚õöîöîãî×Ê»×®Êöîöîãî×Ê»×®×öîöîãî×î×Ê»×®×öîöîãîãî×îãî×®×öîöî¥îãîöîöîhw¯6CJaJhw¯5CJ(aJ(mH sH hw¯56CJaJmH sH hw¯5CJaJmH sH hw¯CJaJmH sH hw¯56CJaJhw¯CJaJhw¯5CJaJA™ë°ë±ë$ì%ìWìXìjìzì“ì¤ìµì»ìÊìÚìõìýìí'í<íSídízííšíŸí íàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ í¡í²í³í@îAî‡îˆî—î§îÁîÒîëîüîïï!ï<ïDïYïnï‰ï£ï¸ïÏïàïýÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$àïðð$ð)ð*ðDðEð¯ð°ðñðòðññiñ£ñ¼ñÂñÑñáñüñ-òAòzòòÅòØòàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$Øò óóMójó¥ó¼óöóôAôXôpôŠô—ôœôôÁôÂôõõCõDõõõÆõÇõþõàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$‚õŒõŸõ©õÇõÏõÜõãõæõóõüõþõöö ö*ö7ö>öAöMöVöXöhörösötö|ö¢ö¤ö¥ö±ö¾öÎöØößöäöëöìö÷÷+÷/÷3÷@÷C÷K÷M÷V÷W÷¡÷Î÷×÷è÷ú÷.ø7øhø ù ùù/ù0ù9ùYùöîãîÚîÚîÚîãîãîÚîÚîÚîöîãîÚîÑÉîÚîÚîÚîÚãîãîÚîÚîÚîÚî½îÚîÚîãî½°¡½°ãîhw¯56CJaJmH sH hw¯5CJaJmH sH hw¯CJaJmH sH hw¯CJ(aJ(hw¯5CJ(aJ(hw¯5CJaJhw¯56CJaJhw¯CJaJhw¯6CJaJ?þõÿõö öXöYö{ö|ö¤ö¥ööö÷ö2÷3÷V÷W÷s÷Ž÷¡÷¸÷Í÷Î÷ø øXøYøhøàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$høyø’ø˜ø§ø·øÒøåøøø ù/ùXùrùwùxù–ù—ùªù«ùúú>ú?ú|ú}ú²ú³úàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$Yùrùxù‹ù–ù—ùªù«ù®ù úú&ú)ú?úKú‹ú—ú³úÂúïú ûÝûþûSüsüvü‚ü‘ü”üÈüÚüÛüÞüæü4ý@ýáýéý!þöþþþAÿ\ÿœÿŸÿ§ÿèÿñÿúÿKW  SdØà…†ãôìãÛìãìÒìÇìÇìÒìÇìÒìôìôìôº«ô«ôžôìÒìÇìÇìô«ôìôº«ôìÒìÇìÒÇìôìÇìÒÇìãhw¯5CJ(aJ(mH sH hw¯56CJaJmH sH hw¯5CJaJmH sH hw¯56CJaJhw¯5CJaJhw¯CJ(aJ(hw¯5CJ(aJ(hw¯CJaJhw¯CJaJmH sH >³úÂúÃúïúüúûû$û3ûDûQû_ûqûû’ûŸû û±ûÂûÜûëû÷ûýû üü7üQüàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$QüYüsüŽü£ü®üµüÂüÇüÈüÚüÛüÒýÓýþþ!þ2þŒþ¦þµþ»þÊþÚþõþ&ÿ@ÿàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$@ÿZÿbÿœÿÉÿÔÿÛÿèÿíÿîÿûü9:SdwÏEF`ou„”¯àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$¯×:…ÇÐÝâãOPkl¯°Êâ34Vfyàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$(PQghijz…V¸áõ/Pcn©¹Æ/Vrñ÷!r}©°áîñ  & ) 1 ! ) \ d  £ Ì øïøäøÜØÍŹøäø­¡­ø­øäø¡’¡­¡­øïøäøäø‰øäøïøäøäøäøäø€øhw¯5CJaJhw¯6CJaJhw¯56CJaJmH sH hw¯CJaJmH sH hw¯CJaJmH sH jhw¯CJUaJj92hw¯Uj`P9 hw¯UVhw¯jhw¯Uhw¯56CJaJhw¯5CJ(aJ(hw¯CJaJ2y…ª¸Ñàîô.Ob¨¸âíø-ATp}àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$}‚“¦¹ÍÔñö÷ÒÓðñ    N Œ  £ ¤ ¸ Ì àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$Ì ë þ   Ì Í B C v w ç è " # o p § ¨ ¹ É á ú "CDàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$Ì þ ? E d w Ì Í Ö â ñ C Q Z w } ” ° Á  Ó Ô ö ü # * = J l m ~ … ¨ ‹¡Øïg|…”•›º»ÃIJRpqx—ÿYst‹’”ùINôìãìãìãØìãìôÉôØìãìØìØìØìØìãìØìØìôìôìôìØìãØìãÉô¼ØìãØìôìô¼³«¢«ì³ìØhw¯6CJ(aJ(hw¯CJ(aJ(hw¯5CJ(aJ(hw¯5CJaJmH sH hw¯56CJaJmH sH hw¯56CJaJhw¯5CJaJhw¯CJaJhw¯CJaJmH sH @D„Š Ä×î(-.`f”ºÝâã6Ip—œ£àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$£²ÂÝþ0LUt˜¸Õß -6Xanst”•øàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$øùÍÎäåïðõûCLUVefpv{…àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$NÎÒåïCVeÄÇÉÊÕ˜¡¦®ÓÔüý Wwb£²ªÜ÷Nˆ£ÄúÑ<c¾’ÃE l ¦ ¬ ¯ ² å ï ÷ !8!‘!"$"/"™"ž"§"®"²"Ç"# #$#øíøÞÒøÒÞÒíÉøÉøÉøíøíøÉÀøÞÒÞÒ´ÒøÞÒ´ÒøÒøÒøÒøÒøÒøÒøÒøÒøíøÀøíøÒøÒøÉøÉøÉøÀøÉøhw¯CJaJmH sH hw¯5CJ(aJ(hw¯5CJaJhw¯CJaJmH sH hw¯56CJaJmH sH hw¯56CJaJhw¯CJaJG…•–Ÿ¥ª®´¿ÄÉÊÓÔüý  "#78Wwàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$w§Õ.b¢£²³áâ"#RSsƒ‰•žª¯°àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$°èé-8=>tu¢¨¶ÂÇÈÿ-<BX`|˜Ÿàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$Ÿµ½Ùõü2Mhmn©ªÙèî (DKai…¡¨àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$¨ÃÞùLM‡˜®·ËÐÑûü<J\bo}”®àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$®½ÍÖÞçù.GOak ¾Òáêðö % A S h v ~ àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$~ ¦ « ¬ ± ² å æ ù  !!!7!T!p!!¬!»!Ú!â!""""#"$"±"àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$±"²"Ç"È"ž$Ÿ$º$»$Û$Ü$%%*%+%F%G%d%†%¤%È%É%à%á%ë%ì%#&/&àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$$#+#r#|#Ÿ$ $¶$·$¸$¹$»$Û$%%*%+%,%B%C%D%E%G%H%d%i%†%‡%¤%ª%á%²'é'(K(L(T(­(Å(Æ(Ð())G)K)k)u)|)ƒ)š)ž)ë)ÿ)X*‘*öîöîæâ×ÏÃöºîº²îæ⧟Ãîöîöîöîöî“îöîºîˆîˆîöîˆîˆîöîöî“hw¯56CJaJhw¯CJaJmH sH j!9hw¯Uj`T9 hw¯UVhw¯CJ(aJ(hw¯5CJ(aJ(jhw¯CJUaJj*5hw¯UjTç® hw¯UVhw¯jhw¯Uhw¯CJaJhw¯5CJaJ5/&:&;&b&c&š&­&³&Ü&ù&þ&ÿ&' '#':'D'V'g'p''—'®'è'û'(ààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$((K(L(¬(­(Å(Æ())F)G)w)x)Œ)”)™)š)¯)Ð)ê)ñÒÒ²ÒÒÒÒÒÒÒ²ÒÒÒÒÒÒÒÒ $ Æ,Рp@ à°€P ð !Ç!þ#„3]„3a$$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$$ ÆÇ!þ#„3]„3a$ê)ë)W*X*b*r*~*„**¦*Î*Ô*Ü*ñ*++/+6+;+<+P+Q+f+…+¡+¢+ààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$‘*›*¨*Ï*ä*ì*@+E+Q+U+¢+¶+?,b,x,©,³,À,í,--O-v-D.s.¹.Ë.Ó.á.w//ˆ/½/Â/(0<0Ÿ0¿0Ú0í0÷0131H1P1X1`1h1…1Ô12#2:2;2]2^2„2†2¬2»2Í2Õ2B3I3¬3Ò3Ô3 44¯4·4ê4ô4ñåÝåñåñåÔÝÔÝåÝåñåÝåñåÝåÝåÝÉÝåÝÉÝÔÝÔÝåÝåñåÝåñåÝÉÝåÝÀ¸ÝÀÝÀÔÝÔÝÔÝÔÝÀÔÝÔÝÔÝÔhw¯CJ(aJ(hw¯5CJ(aJ(hw¯56CJaJhw¯5CJaJhw¯CJaJhw¯CJaJmH sH hw¯56CJaJmH sH H¢+>,?,I,J,a,m,w,…,–,œ,¥,¾,ì,ò,ú,-1-K-s-{-…-–-ßÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ $ Æ,Рp@ à°€^ ðÇ!þ#º'„3]„3a$–-£-·-Ñ-í-ø- ."...=.Y.l.‚.. .±.Ù.ü. //(/3/H/R/b/j/q/àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$q/w/|/}/˜/·/½/¾/Ó/ô/0'0(0ž0Ÿ0ª0¾0Ì0Ú0à0é012181@1U1m1àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$m1‚1•1 1¶1Ï1Ü1 2222:2;2]2^2„2…2A3B3L3M3{3«3¬3Ò3Ó3é4àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$é4ê4#5$5Q5R5—5˜5Â5Ã5Ö5×5à5á566-6@6f6o6”6•6ò6ó6'7(7=7àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ô4$5-5R5Z5c5k5˜5 5Ã5Ö5Ø5Û5ó5ø56%6(676:6D6•6™6ó6þ6(7=7?7F7^7f7‹7Ž7”7¤7¥7¦7¬7Ô7Ù7ò7ü7"838²8³8¹8É8Û8&9'9:9<9C9k9s99‚9Š9•9–9¢9ª9Ú9â9::/:D:\:^:øïøïøäøïøÛïäøïøο³¿³øäøïøÛïäøïøäøÛïøäøïøïø³øïäø³øïÛïäøïøäøÛïøïøïøäø³øïhw¯CJaJmH sH hw¯56CJaJmH sH hw¯5CJaJmH sH hw¯5CJ(aJ(hw¯56CJaJhw¯5CJaJhw¯CJaJF=7>7K7L7“7”7¤7¥7Á7Â7ñ7ò7û7ü788!83898B8c8o8²8È8Ù8ý89àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$9&9'9:9;9X9Y9‰9Š9•9–9Í9ï9:::.:=:C:L:V:‹:¦:«:Æ:Ç:ã:àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$^:Œ:¡:£:¦:«:¬:Â:Ã:Ä:Å:Ï:ã:ä:ì:ð:ø:-;5;w;~; ;·;É;Ñ; <<<(<g<„<…<ž<¡<÷<ú<D=U=‡=›=">'>+>ž> >£>‰?‹?Ž?@?@øìÝìøÕÑƾ°§ø§žø“ø“ø§øìø“øìÝìøžø§“ø“ø§ø§ø“øì†Ýì†Ýìžhw¯5CJaJmH sH hw¯56CJaJhw¯5CJ(aJ(hw¯5CJaJjhw¯>*CJUaJj=hw¯Uj`W9 hw¯UVhw¯jhw¯Uhw¯56CJaJmH sH hw¯CJaJmH sH hw¯CJaJ2ã:ä:ì:í:*;v;w;€;;‹;Ÿ;°;¶;¿;Ü; <'<X<a<f<g<„<…<œ<<³<´<àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$´<C=D=r=†=‡=*>+>5>6>L>j>p>„>–>ž>Ï>à>ö>û>ü>?/?=?C?W?i?àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$i?q?‰?ª?¼?Ò?×?Ø?Þ?æ?ô?@@@@A@B@L@M@„@@ž@Ÿ@Ã@Ù@ß@Aàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$?@A@B@‘@(AAµAÍAÒAÓAêAjBpB¥B¦B¼B½B¾B¿BÝCÞCßCõCöC÷CøCúCD$D)D-D3D6D:DBDCDHDIDNDODTDUD²D·D¿DÀDÄDÅDÊDËDÐDÑDEE1EøðäðäðäðÛÒðÉðÁ½²ªžðÛÁ½“‹žðÒðÉðÉðÉðÉðÉðÉðÉðÉðÉðÉðÉðÉðÉðj¥Ehw¯Uj`Y9 hw¯UVjhw¯CJUaJj Bhw¯Uj`X9 hw¯UVhw¯jhw¯Uhw¯5CJaJhw¯5CJ(aJ(hw¯>*CJaJhw¯CJaJmH sH hw¯CJaJhw¯CJ(aJ(6A(A-A.A4A*CJaJmH sH hw¯CJaJmH sH hw¯CJaJmH sH hw¯>*CJaJhw¯5CJ(aJ(hw¯56CJaJjhw¯CJUaJjŽHhw¯Uj`\9 hw¯UVhw¯jhw¯Uhw¯CJaJhw¯5CJaJ2F°FÃFÌFäFñF÷FGGG.G;GLGUGaGuGœG¥G°GÈGÜGðGúGHH-HEHàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$EHMHlH|HƒH H©H®H¯HÉHÊHSITIbIlI‡IšI­IÀIÉIãIðIöIÿIJJ(Jàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$(J6JFJUJ]JgJ|J‰JšJ£J¯J»JÏJöJÿJ KK1KGKQKYKgKuKK•K´KÄKàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ÄKËKèKñKöK÷KLL¼L½LŠM‹M¯M°MºM»MÖMéMNN-N6NJNbNoN…NNàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$tM}MMˆM1NNN^OìO/PaPóPQQQPQÞQ!RSRœRS(SfS…SŸS»SûS#TBT]TyT°TÒTäTUlU¦UÂUVaV£V¹V¾V¿VÐVgWoWqWrW~WWˆW‰WãWëWïW÷WXX%X-X:XöîöîâîâîâîÖâÉîâîâîâîâÖâÖîâÖâÖâîâîâîâîâîâîÀ·îöî¬î¬î¬î£î£î˜î£îhw¯56CJaJhw¯6CJaJhw¯5>*CJaJhw¯5CJ(aJ(hw¯>*CJaJhw¯>*CJaJmH sH hw¯CJaJmH sH hw¯CJaJmH sH hw¯CJaJhw¯5CJaJS[ScSàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$cS‚S—SžS»SÀSÁSâSèSúST T?TUT\TyT~TT…TœT¤T®TÃTÐTáTêTUàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$UU9UTU`UgU…U¢U«U³UÁUÊUÒUVV)VFVUV_VdVƒV¡V¨V¹V¾V¿VÐVàààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$ÐVÑVÅW9X:XVXWXX‘X›XœXýXþX;Y*CJaJmH sH hw¯5CJaJmH sH hw¯56CJaJmH sH hw¯CJaJmH sH hw¯5CJaJhw¯56CJ(aJ(hw¯56CJaJhw¯CJaJhw¯5CJ(aJ(3þYZZ&Z7ZNZ_ZeZxZ•ZšZ›Z¡ZªZ²ZÌZìZòZ['[,[-[‹[Œ[›[œ[¯[àààààààààààààààààààààààààà$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$¯[°[¿[À[á[ö[ü[ \5\F\W\h\m\n\t\}\’\¨\±\Â\Õ\] ]]]]ààààààààààààààààààààààààÞ$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$]]]]]]]])]*]+],]ýýýýýýýøýýÙ$ Æ) Рp@ à°€P ðÇ!þ#„3]„3a$$a$ /1h;0°Ð/ °à=!°Š"°n#Š$n%°°Ð°Ð ÐMDd´=¯ ´Bc§§ðT² ð ƒ ð0‚ƒ„Aƒ¿ÿð€2ð¥|PÙ17P` ÿD`!ðy|PÙ17P` Ø µ=¯ˆÆ¾ 4öGþxœ­–KoÓ@Çg×±‡KM%è ‰×Ám‚Äó”Ò6¢i£¦©â&Kq›ØQì*âæ#‚KNÜ€^9‘À!P‰âÐcUeg§PA#‘8²gvvüߟgwH(?âë€Ç9q^Ó&aŽÄ‘íbk±6 E§Úò|ïyÀZvd>f~”ý>ˆö; ò><¤œh+ÒÆ´ÃÑ_°æ4¸Ï–y›­z Ûò,Cá,(äÓ…)PÌ@¯×ƒ0 %CV:‰_ˆgúÌS’Y¤h¿‚xm¼ÕUágèh£gÐ÷5ý2ˆòŠ¤ŒŠè¥(â`ŸNidBZi)¡p¬0C.ö£DVõ'Ýí×è3,L,Áï°DôVºD:²`… ò/…ƒL¤틼T_i_²9uþ4‘Pu ,ŽÊ¤HUs‚1P‰IÞêT±REÁáwÜÑ™X‡Ÿ)ÝW šð¼FSLáè\_TD(+«!WËÛâÕ`t®’Ž+càêêÈÕ ÏõÇP¯$",ŒaÅgSá;›c¨VŽ@eÄÕJcÝZÜÞžmÛAõEDÛ% aæ¢Ø 8æ!ÕÄØI)3e zÇòK z ̹*vQB±ÖBrzVO IÅ–…Z`ú°,¦WŒaY8Úð¬t}w(}Whuɤ¬YSÍ«è¹ïÛ›œÍ²§XСuÊ«¦¸óô¬==¯VŒ¼­q“ö×øcÇå,Çòÿ­æ½:ËÁ OÁ¼%×ç­ Ž™*æ-Õ¸H6ŒU4iÍÞ`§^£{º.¼'®#s£§ì)‚Wx[¶Ëë6«qÆkη¯ÞÙ›ÕXbúÞw±®Ïj³Žâp>ÒÒJ‰KdÛ¾ïøÁw·êØìF ÷ÊÍ>c¨wi 9ë¯7Q“ÊèmkÝóýUê=×qáŽUn;ñ`|WÅç,ܵÖZv•ÇQ&Ÿ³pÏ*üXy7)£÷­¢½ÍÑRZ*ä²V‘»;qýR8ò܃å•å¹ââLi®lÊiJæxJ¯”_úoD»Ëß ¿ïìC9ƒÑ§ÏÉýŠö:Á/µÈF_[¿ ‚¢/}Dd­}C3 @G§§ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð€"ðÏUç³J`Sg•V3 ÿ«‘@=ð£Uç³J`Sg•V3 œ ­}C3H»°8Hqþxœcd``Ha@€ý, ïü5µ NÆ ®¾n Œ s8Lâ, ¨àPàPŸ#7£Éq±Ÿʇé²y€˜ˆ… l˜ƒU™­ÄPµ ðÿÿ0­Šd†Ë1&€©Éé±Ô_ ¼H¼PÁÁ0µì Húˆ5ŸjÇ  ™PZƒ"‡.FM»@æe0£Ú…,óÒ@.Ã`& ™9‘„B2rRŠ¡ä¤ËtC>P,‘!‹{F"c€Äó@Åaq ã(Ž†í ݤ“i˜I$æÀ=¾€Øˆõ‘ÌçBJ/ »Fã–z€”¸­`‚Äßr&̸…ÉŠ[#†Ñ¸¥ 5ßv0Bòíg,ù¶ƒ‘pÜ2ŒÆ-½©ùv0|Wie&Ì|»ƒˆ¸6• p·Y” l`´þG烪ƒ¹Ä¯Af;÷DdËnC3 Ð>§§ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð€"ðI* 6œSPG3 ÿ%@=ð* 6œSPG3 ËnC3xÍ›8HëþxœíWOKAÿ­«db¡ô êÔ­°(0 ‘êhP`Pz(èuñÐèû}‚>I‡  Ž‚½çÌ´Ïu¥´Kûàç›yoöÍÛù½-Çp$Þ-§ÿRÖ—ÔÆÎ&`!>ì“=ŒvY"Ã=7E¸uùb„qÑÖ}ó̵ã„BB·9…Bí~Ù^ $õX–f³ÙÒs"ƶåá]{P{HNĉ:â¹nû'½p[±v'·Æ÷·tP`ýÙ#2„WK¬![¿æŠÚ*.k3—ÛÔìàÅoÍ– ¨º\±y/âVü7™ÿ5¾ÚWñ?Øn`~ÿŽž"®œ&.Û”Y×U„ýpâ³D¾2¿ß˜ûëî=n|þûáFØß·–ÔeòÖrk6ë 5[u¤(·-¤gYÞSí¸÷­e}2~·gžL·ç/¾gXj´Ýzoýf}¡~«ŽøÖærKmîÞÏÖW”ÛAÿkœ3mÒÚÕöcfœ]³´€Û‰Dd©_ `è5§§ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð€"ðÛÇxD"Ø,s0F ÿ·Œ @=ð¯ÇxD"Ø,s0F ¸€©_\îð¶…}þxœíY¿kAþö6«1D‘ !ŠÅEð·’©¢E¢Q$z„ 6b„ˆZ KÓi™"Á)Ò„¤,¯°°³±°²Uðð8¿—çÎÎ]t–cÁyðx3ï›}óî}³3»{€Edòp°gý[ÀÑ{@ýúì ÂûcÀKú{—G¼î5¯{¿¬zØê0}½æÛýÔƒÔÓf S{‘Çíöê+Òjµví)+Æiê jšX9ÈX'Øë ;M© s{e±öËg­ñv\Wì¸R§©qÇgcâWÛÌÿž?9D‘ü‹Öe'Jsܬ•[;nâølLüjw¢êÔe½–渗[;nâølLüj×Kâæ"u‚“~4v%N1×WÖ\õž4®XËõͱ=Còd{Ú ! VÌf6ÑÀ<ã àê¸IûœvO黥ùü2ˆ”ƒ!£ýƯÜHç.³þ Öýí‡(»¯`aâ›Ag¾ÔÛH×µÆï³Ö‹Ì¸-O|¸ÝHRþ¾%íÜ*ö/nù`€qn»!>ÜJg‚õ¢Ý®å¹U  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstþÿÿÿvwxyz{|Ñýÿÿÿýÿÿÿýÿÿÿýÿÿÿ‚†›…‡Šˆ‰‹ŒŽ‘”’“•—–˜š™œŸ²ž £¡¢¤§¥¦¨«©ª¬¯­®°±³¶Ç´µ·¹¸º½»¼¾Â¿ÀÁÃÆÄÅÈËþÿÿÿÉÊÌÎÍÏðÐqÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïþÿÿÿþÿÿÿýÿÿÿóôõö÷øùúûüýþÿRoot EntryÿÿÿÿÿÿÿÿY ÀF€iœœÉJÌ„mData ÿÿÿÿÿÿÿÿÿÿÿÿuHLWordDocumentXÿÿÿÿÿÿÿÿ1èObjectPool[ÿÿÿÿPÞ{›ÉJÌ€iœœÉJÌ_153056348ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿCompObjÿÿÿÿ>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿdþÿÿÿþÿÿÿ þÿÿÿþÿÿÿþÿÿÿ þÿÿÿþÿÿÿþÿÿÿ$%&'()*+,-./0123þÿÿÿþÿÿÿþÿÿÿ789:;<=>?@ABCDEFþÿÿÿþÿÿÿþÿÿÿJKLMNOPQRSTUVWXYZ[þÿÿÿþÿÿÿþÿÿÿ_`abcdefghijklmnoþÿÿÿþÿÿÿþÿÿÿstuvwxyz{|}~þÿÿÿþÿÿÿþÿ ÿÿÿÿÀFMicrosoft DrawMSDraw`ò‹ ‹Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Times New RomanÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdØH˜8 HØ ðÀÿÿÿ  &MrEdàP0üÿÿÿÿÿ-ú- xx4”LÜ & MrEd%À°Àp & MrEd%Àp@p.û ÿTimes New Roman-2 @072 @P22 Ð012 P3û¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿ-ð'ÿÿ'ÿÿnu^M_153056604ÿÿÿÿÿÿÿÿ ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿCompObj ÿÿÿÿ>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿ¤þÿ ÿÿÿÿÀFMicrosoft DrawMSDraw w‹ ±Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿokÿÿÿÿÿÿ Times New Romanê<™ÿfÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEd¨HØ8 H¨ ð0ÿÿÿ  &MrEd°PÐ@üÿÿÿÿÿ-ú-DÔL¬&MrEd°@Ð04Ô<¬.û ÿ¼Times New Roman,-2 àðV2 àF & MrEd%P0 & MrEd%°P°0 2 àNOT 2 ÐNot A2 ÐðF2 ÐVû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿ   ¿ ¥¸•@ ¥@<++++Y]]C\X@ @ 9 €P9Œ†þÿ ÿÿÿÿÀFMicrosoft DrawMSDraw @Ù ôZ&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸ<Uÿÿÿÿÿÿ Times New Roman_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdpØ( p ˜hÿÿ_152424024ÿÿÿÿÿÿÿÿÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿ!CompObj ÿÿÿÿ">Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿ#$ÿ  &MrEd°PÐ@üÿÿÿÿÿ-ú-DÔL¬&MrEd°@Ð04Ô<¬&MrEd°0Ð $Ô,¬ & MrEd%°P°  & MrEd%P .û ÿ¼Times New Roman-2 àðV2 àF2 ÐpV2 ÀpF2 ÀF 2 ðÀ Condição A 2 `p Condição B2 ÐðV 2 à@AND2 ÀðF2 ÐFû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿmes New Romanm-s New Romanm-ÿÿÿÿþÿ ÿÿÿÿÀFMicrosoft DrawMSDraw @Ù óZ&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸ|™ÿÿÿÿÿÿ_153055836ÿÿÿÿÿÿÿÿÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿ4CompObjÿÿÿÿ5>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿ6$ Times New Roman_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEd Pˆè P  ˜hÿÿÿ  &MrEd`€üÿÿÿÿÿ-ú-„ \&MrEd`€ðô„ü\&MrEd`ð€àä„ì\ & MrEd%``à & MrEd%@@à.û ÿ¼Times New Roman-2   V2  ÀF2  V2 € F2 €ÀF2 ÀV 2 °p Condição A 2   Condição B2  ðOR2  V2 € Vû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿTimes New Romanm-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_153055580$<ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿGCompObjÿÿÿÿH>Ole10NativeÿÿÿÿÿÿÿÿÿÿÿÿI¤þÿ ÿÿÿÿÀFMicrosoft DrawMSDraw @Ù .Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸš›|™ÿÿÿÿÿÿF SystemNSITOOEMôÿ@@ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEd€è˜ € ˜hÿÿÿ  &MrEdÀÀà°üÿÿÿÿÿ-ú-´ä¼¼&MrEdÀ°à ¤ä¬¼&MrEdÀ à”䜼 & MrEd%ÀÀÀ & MrEd% À .û ÿ¼Times New RomanN- 2 PPXOR2 PV2 P F2 @€V2 0€F2 @F2 0 F2 @ VûÀÿ¼Times New Roman‹w-ð2 0Vû ÿ¼Times New RomanN-ð 2 `Ð Condição A 2 Ѐ Condição Bû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿ ˜hÿÿÿüÿÿþÿ ÿÿÿÿÀFMicrosoft DrawMSDraw`Œ(½ Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_145679700ÿÿÿÿ@ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿ\CompObjÿÿÿÿ]>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿ^d Times New RomanÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdð" ¸ ð (2 ÿÿÿ  &MrEdàÀ püÿÿÿÿÿ-ú-tÄ ÜŒ & MrEd%PÀ P & MrEd% € & MrEd%À À € & MrEd%ÐàÐp & MrEd% àà & MrEd% pp.ûpÿ¼Times New Roman- 2 ÀTelaû ÿ¼Times New Roman~-ð2 @40 ou 80 Colunas 2 Àð 25 Linhas2 ð 802 ð` 12 p12  25û¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿN- a= ÿ„tÿÅU ÿUˆÿVÿû_145680468 ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿpCompObjÿÿÿÿq>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿrþÿ ÿÿÿÿÀFMicrosoft DrawMSDrawf!e YZ&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Roman 10cpi)_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEd {3  {   “ÿÿÿ  &MrEd0@0 püÿÿÿÿÿ-ú-t4 <,.ûÿTimes New Roman1- 2 à (Xi,Yi) 2  (Xf,Yf)û¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_145681492ÿÿÿÿ("ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿCompObj!#ÿÿÿÿ€>Ole10NativeÿÿÿÿÿÿÿÿÿÿÿÿÄþÿÿÿ‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”þÿÿÿþÿÿÿþÿÿÿ˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®þÿÿÿþÿÿÿþÿÿÿ²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆþÿÿÿþÿÿÿþÿÿÿÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜþÿÿÿþÿÿÿþÿÿÿàáâãäåæçèéêëìíîïðþÿÿÿþÿÿÿþÿÿÿôõö÷øùúûüýþþÿÿÿþÿÿÿþÿ ÿÿÿÿÀFMicrosoft DrawMSDrawÀ6!_  8Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Roman 10cpi)_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdð˜x¸ ˜ð  ˆÿÿÿ  &MrEdP p°üÿÿÿÿÿ-ú-´tœL.ûÿTimes New Roman- 2 ÀpTROCA 2 0ðEntrada 2 PðSaída & MrEd%Àð0 & MrEd%ð0À` & MrEd%Àðð  & MrEd%ð ÀP2 0Ðx2 Ðy & MrEd%ð000 & MrEd%ð 0  & MrEd%0 `ð & MrEd%0 `P & MrEd%00` & MrEd%00``2 ÀPeû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿTEM\VGAFIX.FONÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ ÿÿÿÿÀFMicrosoft DrawMSDrawà®/‹ ÔZ&ÿÿÿÿMrEdMicrosoft _152421976,&ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿ•CompObj%'ÿÿÿÿ–>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿ—äDrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Times New Roman_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEd`80 ( 8` ðÐ ÿÿÿ  &MrEdÀpÐÀüÿÿÿÿÿ-ú-ÄÔl¼.ûÿTimes New Roman- 2 0 Função & MrEd%ÐÀÐ & MrEd%`À` & MrEd% ÀÐ & MrEd%ÀÐ & MrEd%0À` & MrEd%À` & MrEd%ÐÀ & MrEd%ÐÀ & MrEd%0À2 Рx2 ` y 2 0ð Resultado & MrEd%@@@  & MrEd%@    & MrEd%@@ @ & MrEd% @0 @ & MrEd%0 @0 ð & MrEd% ð0 ð 2 ðSaída 2 Ð`Entrada2 `ðe 2 0 Retorno & MrEd%`00 & MrEd%`0û¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿÿÿÿÿÿÿÿÿÿéæßÿÿÿÿÿÿÿÿÿïôÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ_152421464ÿÿÿÿÿÿÿÿ*ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿ¯CompObj)+ÿÿÿÿ°>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿ±dþÿ ÿÿÿÿÀFMicrosoft DrawMSDraw`@®  Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Times New Romanpi¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEd`Øȸ Ø` àhÿÿÿ  &MrEdð@ÀPüÿÿÿÿÿ-ú-TÄ<ì.û ÿTimes New Roman€L- 2 `P Procedimento & MrEd%  ð  & MrEd% 0ð0 & MrEd% ÀðÀ & MrEd%Àpð  & MrEd%ÀÐð  & MrEd%Àð0 & MrEd%À`ð0 & MrEd%ÀðÀ & MrEd%ÀððÀ & MrEd%°à°° & MrEd%°àpà & MrEd%°°p°2  px2 0py2 Àpz 2 `Saída 2  `Entrada & MrEd% ÀÐ & MrEd% ÀÐð2 `Àeû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿµµ<Øž-Ž @檾¨jjéz¦ú8 2Øt u ÿ…ý0U_15242248808.ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿÇCompObj-/ÿÿÿÿÈ>Ole10NativeÿÿÿÿÿÿÿÿÿÿÿÿÉäþÿ ÿÿÿÿÀFMicrosoft DrawMSDrawà@®  WZ&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Times New Romanpi¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEd`Øȸ Ø` àhÿÿÿ  &MrEdð@ÀPüÿÿÿÿÿ-ú-TÄ<ì.û ÿTimes New Roman- 2 `P Procedimento & MrEd%  ð  & MrEd% 0ð0 & MrEd% ÀðÀ & MrEd%Àpð  & MrEd%ÀÐð  & MrEd%Àð0 & MrEd%À`ð0 & MrEd%ÀðÀ & MrEd%ÀððÀ & MrEd%°à°° & MrEd%°àpà & MrEd%°°p°2  px2 0py2 Àpz 2 ``Entradaû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿ ÿÞ0hh stem-ð*þÿ ÿÿÿÿÀFMicrosoft DrawMSDraw`l®  Z&ÿÿÿÿMrEdMicrosoft _152422232ÿÿÿÿÿÿÿÿ2ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿÝCompObj13ÿÿÿÿÞ>Ole10NativeÿÿÿÿÿÿÿÿÿÿÿÿßdDrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Times New Romanpi¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdØȸ Ø à8ÿÿÿ  &MrEdÀ@ÀPüÿÿÿÿÿ-ú-TÄ<¼.û ÿTimes New Roman- 2 `P Procedimento & MrEd%°à°° & MrEd%°àpà & MrEd%°°p°2 Ð@a2 ð@b 2 `Saída & MrEd%ÐÐÀÐ & MrEd%ÐÀÀÀ & MrEd%ÐР & MrEd%ÐÐ & MrEd%ÐÀ & MrEd%ÐÀðû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿà & MrEdem-ðþÿ ÿÿÿÿÀFMicrosoft DrawMSDrawà _  PZ&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Times New Romanpi¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEd¸ˆÈ¨ ˆ¸  ÿÿ_152423000ÿÿÿÿÿÿÿÿ6ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿñCompObj57ÿÿÿÿò>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿóäÿ  &MrEdÀÀ üÿÿÿÿÿ-ú-¤ÄŒ¼.û ÿTimes New Romanø‹- 2 °P Procedimentoû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿÿÿÿÀÀÀ€€€ÿ€ÿÿ€€%pàpà &**_1524235124 :ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿÿCompObj9;ÿÿÿÿ>Ole10NativeÿÿÿÿÿÿÿÿÿÿÿÿDþÿÿÿ     þÿÿÿþÿÿÿþÿÿÿ !"#$%&þÿÿÿþÿÿÿþÿÿÿ*+,-./0123456789:;<=>?þÿÿÿþÿÿÿþÿÿÿCDEFGHIJKLMNOPQRSTUVWXþÿÿÿþÿÿÿþÿÿÿ\]^_`abcdefghijklmnopqrsþÿÿÿþÿÿÿþÿÿÿwxyz{|}~€þÿ ÿÿÿÿÀFMicrosoft DrawMSDraw@’%> |Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Times New Roman_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdðKu ¨ Kð ]…ÿÿÿ  &MrEd0à  üÿÿÿÿÿ-ú-¤¤Ü,&MrEd0  `d¤œ,&MrEd0`  $¤\,&MrEd0  àä¤,&MrEd0à  ¤¤Ü,.ûÿTimes New Roman/y-2 p02 012 ð22 °32 @: & MrEd% à   & MrEd% à   & MrEd% à   & MrEd%@@@ & MrEd%Ð@ & MrEd%Ðp@ 2 @ðPonteiro2 °a2 °°b2 °0c2 p e2 0 f2 ð g2 ° h2 °°dû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿ ¸ÿ†³(' ¸ÿ}@@$)())(&š|ÿÖ›|ÿÖœ}ÿÕ~C\X@_154751072H>ÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿCompObj=?ÿÿÿÿ>Ole10NativeÿÿÿÿÿÿÿÿÿÿÿÿDþÿ ÿÿÿÿÀFMicrosoft DrawMSDraw@÷$á …Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Times New Romanpi¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEd Z  Z  ¼bÿÿÿ  &MrEdà  üÿÿÿÿÿ-ú-¤” Üü&MrEd ÐðPTôÌ.û ÿTimes New RomanF- 2  À(xi,yi) 2 °`(xf,yf) 2 ° (0,0) 2   (Xmax,Ymax)û¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿ. N  Žÿ_145680212ÿÿÿÿÿÿÿÿBÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿ'CompObjACÿÿÿÿ(>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿ)„þÿ ÿÿÿÿÀFMicrosoft DrawMSDraw€ä+Å šZ&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Times New Roman_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdÊ„ h Ê žô ÿÿÿ  &MrEdP `üÿÿÿÿÿ-ú-dT ü & MrEd%PP P & MrEd%` & MrEd% € & MrEd%P P € & MrEd%à@ & MrEd%à`@`.û ÿTimes New Roman- 2 p 80 colunas 2 P 25 linhas & MrEd% P   & MrEd%0P 02 p002 pÀ22 pP42 p 12  22 à012 àÀ22 àð 80 & MrEd%ÐP Ð & MrEd%` & MrEd%  ` & MrEd%°°` & MrEd%À À `2 0p25û¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿÿÿÿþ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüÿÿ_154752096ÿÿÿÿÿÿÿÿFÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿ@CompObjEGÿÿÿÿA>Ole10NativeÿÿÿÿÿÿÿÿÿÿÿÿB¤þÿ ÿÿÿÿÀFMicrosoft DrawMSDraw Y!p  ±Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸ=Usÿÿÿÿÿÿ Times New Roman_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEd¨š8 ¦ š¨  ÿÿÿ  &MrEd° 0 üÿÿÿÿÿ-ú-4 ¬ & MrEd%   .û ÿTimes New Roman|"-2 ð7 & MrEd%  & MrEd%€ € & MrEd%p p & MrEd%` ` & MrEd%0 0  & MrEd%P P & MrEd%@ @2 ð62 ðð52 ðà42 ðÐ32 ðÀ22 ð°12 ð 0 & MrEd%°0  & MrEd%°Ð°0 & MrEd% Ð 0 & MrEd%0 Ð0 0 & MrEd%`Ð`0 & MrEd%pÐp0 2 `Fundo 2 `PFrente2 P2 ÐIû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿú-ÿÿÿÀÿüøþÿ ÿÿÿÿÀFMicrosoft DrawMSDrawX&$ æZ&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿTimes New Roman_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdP+ [ +P 0²ÿÿ_154752864DPJÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿYCompObjIKÿÿÿÿZ>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿ[ÿ  &MrEd@°üÿÿÿÿÿ-ú-´” <.ûÿTimes New Romanë- 2   1000 2  1001 2 € 1002 2 p 1003 2 ` 1004 2 P 1005 & MrEd%@ðð & MrEd%ðð° & MrEd%@ð & MrEd%@àðà & MrEd%@ÐðÐ & MrEd%@ÀðÀ2 ÐP@n2 €P@p & MrEd%ð€€ & MrEd%ðPð° & MrEd%P° 2 P€1 Byte & MrEd%PP° & MrEd% ð€ð & MrEd% € & MrEd% °€°2 0°n2 °p 2 0 (2 bytes) 2 @ (4 bytes)2 065 2 à1000 2 @@endereço 2 @€conteúdo 2 0 Memória RAMû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿCompatibility WarninÇJËFê!~è…üó3À&‰GX~ýGúþÿ ÿÿÿÿÀFMicrosoft DrawMSDraw€¨$à Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_154753120ÿÿÿÿÿÿÿÿNÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿtCompObjMOÿÿÿÿu>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿv„‚ƒ„…†‡ˆþÿÿÿþÿÿÿþÿÿÿŒŽ‘’“”•–—˜þÿÿÿþÿÿÿþÿÿÿœžŸ ¡¢£¤¥¦§¨©ª«¬þÿÿÿ®¯°±þÿÿÿ³þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿTimes New Roman_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdëX ¸ ë ÍPÿÿÿ  &MrEd°0 üÿÿÿÿÿ-ú-¤4¬ .ûÿTimes New Roman‰D-2 @pc2 c2 b&MrEdÀP°´T¼  & MrEd%À°&MrEdÀP°´T¼  & MrEd%À°&MrEdÀP °´T ¼ 2 a2 Pp1 2 P` NIL & MrEd% À °2 Pp22 Pa2 Pp32 Pb 2 PHeaderû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿ&§$%BDR##T¡7ƒü h,%% %WhÅ©¯,¼*¿,)* *=3"þÿ ÿÿÿÿÀFMicrosoft DrawMSDraw`R  ’Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿTimes New Roman_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdØ{˜ {Ø @ÿÿ_154753376LTRÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿ‰CompObjQSÿÿÿÿŠ>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿ‹dÿ  &MrEdà@üÿÿÿÿÿ-ú-”<Ü.ûÿTimes New Roman- 2 pPrimeiro2 àn 2 0Último & MrEd%Ð@Ð & MrEd%P@P 2 àÀ DESCRITORû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿ$$þÿ ÿÿÿÿÀFMicrosoft DrawMSDraw`1$´  Z&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿTimes New Roman_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdPë… K ëP `5ÿÿ_154754144ÿÿÿÿÿÿÿÿVÀFPÞ{›ÉJÌPÞ{›ÉJÌOle ÿÿÿÿÿÿÿÿÿÿÿÿ™CompObjUWÿÿÿÿš>Ole10Nativeÿÿÿÿÿÿÿÿÿÿÿÿ›dÿ  &MrEdð°@püÿÿÿÿÿ-ú-tD¬ì&MrEd@P04T<ü&MrEdÐ0€ $„,Ì.ûÿTimes New Roman-2 À22 Ð3&MrEd@ @D<2 °1 2 à`E/S2 °€12 €22 p€3 & MrEd%ðÐ@Ð & MrEd%ð @ 2 P€E2 0€S 2 ÀPPilha 2 À Filaû¼"System-ðúÿÿÿ-ðü-ð'ÿÿ'ÿÿ ++++<<+++q]+]r632#"&ÿ)++++þÿÕÍÕœ.“—+,ù®0 hp€ˆ˜  ¨°¸ À éäSEDUe®,Ü·Õ_nG©ãÔ7q;·£q¸o«$¾{²ð'{²Ë­bÛêˆ/·²ïþHÚ÷dÅž\)Êí+jƒÏ ´çø^öyn“o!{q+ø5Ö ‹dæ'¾³]Çä.×#Ô1£Ç©çoÄäu a=tC|ÖƒÈÖ÷+kÙ=£ æ¿®†õP!)ºî å[Þ§îÆíïZŠIùÿ¶÷ß"Ó´ÓüvC|¿“Èù-ßIܳ]±p¶WG|¹•çnáÖ}&W¬(·{ýŸqÒ´IkËö2ã4giÿ´c–Dd©_ `è5§§ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð€"ðè!ãGä˜ 7#F ÿÄ@=ð¼!ãGä˜ 7#F À€©_\î𶅊þxœíY¿kAþöv7ÑEB”(§à¯I «hqj QÄÎMaRX¤4–‚‚)"؈±¬ôŠ+ìl,¬lüüÎïÝθ³³w¸ë±à<øx3ïͼ™}ß¼c/°‚TîÏ´ÿð5°ÿP¿|uÐ><¢=BVîqÞsÎ{¿,ß±ÏèïV}=gœíQb1¦Ú ƒ#Ä.dýfû1¡ÆŠt:®>fÄ8N&jDlìAÆêqâ;­bg§%9áÞÞi¬a`ó¤1ÞŒk‹Wò4×#nlÙLŸØµneŸçÏ‚‚Ï_dÿEó²${|U+7/fÜز™>±k½T'/[µdOÃróbÆ-›é»Ö[%q3E4¸h[é'aâ³me­U’¸¢õZ¶m‘í’'¯§m²lÄl¥ -a÷qPÇ5ê êE¬Óvk=öó?Ê$L(Œ*»æFr¼D,_˜Û&óþ’ÆAZW0|2~½ù–87q½ËŸœí+ļ±Öˆqv$Žç¹<)ʳ`3J¸üåyÖ>±õã¹IÜ@±çöß‹ ·ÛqÂß·8Ï­öý[©ÙYxn!.ÜJ§ÁüÎQ¿©e¹Õ>_·ÕWngˆYâE˜çv&ôu[%q½o¥6?DùºÕ>ÏmuÄõ¾•Ú”ûÖ®[íóÜVG\¹•ÚüçëVûʼoÛä¶aÌ÷ܺ‰ë;Yjó-õF˜'©[áö |ÝBŠrû˜hFÉ÷ŒSCÀgd¹Õ>ùVÝ[ñ_bþ×°Bf~â;Ûu\èÖñ4qVá1©lÓj_þ< F\΃ˆ|¿úÊÜŸ³[+Ÿûy¸Xø<ôû_ã¨jó(tLû^5N?§´4‘ß„DdJómˆ î‰XM§§ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð€"ðÖõ•n0S7‚Vˆ ÿ²«@=ðªõ•n0S7‚Vˆ Kómˆx!VHÙ¿xþxœíX1kQþvs§—å"!¤XM šäÂìD-$Ê®°N4`༂XB ÁæúXÜ´³Iao @ ;ÁRäüfß{îìºgî`s;ðÝÌ›y;óî}óÞçx‚H*£ÀL1ßý4_Áí{w˜Ó_@\–øÜ,ŸkùÀC/#Êj¥5?eóÜ{‰ÿ >H‘aDdCÇ98 øp১ðZ² ð  “ ð6‚ƒ„A ?ƒ¿ÿð€"ð³ ýr”8 ÿ˜@=ð‡ ýr”8 „DÇ98 7(OUþxœíXÍjT1þ[ÔREKÑ …Ž‚ZÐU:nD©u¡õo좋Y(´ PõRu×EÁ»³¸šð!æ ìÒGð|¿Óœ˜43Cg0íÆ{à#'çäž“äKÎ;À*‚|< ÌØÐ_ø Ôë@mñþÀ`ë4PÐ>‚½Rò¹Ÿûm€O‰oŒ8õkß?3I}œ8AL¨Î08OÃ^¬_&¦t¬H§ÓÙm/F1.Ó„,i4šƒŒõãÄwEc5¸µmqnÓ6Äbws6ÇM%Ž+±n÷ˆ;šØbŸØ}+ö±ÄÅ°‹mN¼ˆrm›¿êÄ2^à%Öð5<`ûŽm¯i{†W=æù?Ê8n¦ãj÷œÉ/ëÄ&7–ûû‹d}1áœ!ò Kè}Vvc5ð ¸w Ÿw,:_2‡Šó|2(çïÕÞ"šÜãÉ„sïã5íËy“XäοÅX%¤Ì3šsŽ¨k[ñð2Ìis²½f»ùopçŸpï(÷7àxîSÎÿår•øÆÎs¸´Ô—ÚræjiÜÿœæßNæ\+ÆÅ/MXWlË™«Ô¸mÖ%6ñµMuGC½£‚ïÆ»³¶»F{ŸØúÝÑGpµ~·‡!Ãr+wÝÜ–fn?ב¯FÜŒjŸ¯³^÷¾œ¹Ê¤öyÝûræ’šZØËç(Ô—{]… u6µåÌ%ïÀ¾ÈLŒÎg¬’ üŠÌÄè|Å*Óßç\®Îg,“¯c+ÖqB±ÚˆæÐÕùŒe°©Z±ª ൓Õùsèê¼k\ãeÅru>c™3´­Xí˜Xy+–Ô”´†û£ak¸ð’®û”§†›èúÕðGäDëtŠmr4*¶R·)?Ä`[Rƒ±=DðNN±Mž†Åö5¹©ëj%×Û{›|GôÃv]®íⱇ-4ˆÂÑî#軤ž î3šE·H¾ ï‹o*ø~ùS¿s]ÏXâOî{;–­ó}.ñ›Cô\Fç+ÖR.ð×Ê…±\¯X-ËïGCWçó\âÏŽåêÒš”< [“¶Èe¸\#Ïg¢5ÉØä»þ_߃™û_¬EuŽå{PêŽÔŸE=N1Ož†Åü@ë¥G¬©ÞþÑØX úb^#/3ó ìvßAõî<è'gtLóîIñ?¥Çl"è#?£·Ç4¶A=æ&RlOŠFy¶ËAy”ïí1mг-=fƒì»¿45]âʳ>½ƒüg“½µ2½ÿÞZÚæû?Ÿø­ÆĪªþÿç/é1o鎭?«× Mëñ_}¹\­Dd©L ` +§§ðZ² ð  “ ð6‚ƒ„A ?ƒ¿ÿð €"ðÿÜ!Ù¼à}x6S ÿÛÿ!@=ðÓÜ!Ù¼à}x6S 8€©L\îè÷j¡þxœíX=hAþfcü QŽåÁP£‘(¨ i´0’"Ê‘¤¸Ââ‚Œ 1DÁ(‚–'Z¤°°´µkmìlí´¼FIw~/3ã¾Ìí‘;˜Mã>øx3ïí¾7;ßܾ}gÔ‘ÊíÝÀ÷$?{”f€‘©ë׃K—´ïÂVYâ}?xß{| |DIÍ÷¹¹¿g˜ãAb?1äÆ ƒcÄ^lõëñI¢ì®iµZ›ú¸Šq‚8BÈ#õ«5ȵþ:ñ»X¯úì~Ô¹¶§Ikð|L]¯ã†¢ãÊ>]͈ÛØ´Oì^‹}–˜áÃpŠ·\xMåZ7ÿ†Có¸ƒ{XÄŒàõ#êYܧmËëüå,7e‡Ag÷œÉϯ‰_œ4¸¿HÖo“ž3(ŸÜßGæ9î*X%·ÈFݱ³Œ‡´\¤ï(q–8å ãÃÄ´›O¸ù8âœÃ3ÄN¾P¯÷YdØbæªWt’a‹™«éâ6U.m‹•«Æxo‚= m1syn6T®œr|…¶˜¹ü9h¨\œr} ÎFh‹™ËŸ¹r’æ’qì\cë£èo.Wh‹«”XdØbæ’µK\ý\ÚæïP¹äÝ]ÔÊxÒm­”\ ¹L}>¨•Þ'¶Nµ²B¬ÁÖÀ‚Ûü¥Wnå},õôs·U³=·‰s(¸Ý é•[©I“ÔsI;·Í.¸}BœFÁíNH·ÜÞuöi’ö•úCÀ­÷IÚ‰Û*1ǽÿÉÞeã °}‰ô$¾o)8Ï_ºå|ÍÙ¥ÖŽšö:ì}ü>ëÈùMbj³G]%–÷I¤½¨ô¬¾WÕüÇèßä{|%iïßVœ/v¯(qý7zh+ÎuþÒKªÁö†/Ðþ_Œ÷mW§aÏl§ÿGݘ´¶´ý€»Î¯YÆ1ï ODd©L ` +§§ðZ² ð  “ ð6‚ƒ„A ?ƒ¿ÿð €"ð¡îõs¹€u3S ÿ}¬%@=ðuîõs¹€u3S €©L\îè÷jCþxœíW1K\Aþö©Ñˆ 9$5Š bc“QR9Œ…E Å ÑBFPC@Ë+,®°°´M™Î:iòÒÅòJAvç7¾Ý¼q}‡'ìÙä>f÷ÛÝ™}û­7®P@j¢´¿÷ ˆgÞé·3€A)>“oÆu[åºS®ûn€ÞX;«þCÛwkºØî ¶Í0è#Úp}\·ˆœ+V©T®ü3ã9ñ„OjQ{¹nžŒ ÛXMÉy¸·¯Q«ØTóu\ßt\9§×q[ì®ÚJMš¢ÝÔ¶\ƒ¶_ˆhh{V«¶;–—ÿ§úÍÍ÷‹c­®ªí{búê½²I ï Òw‰¼_Ü»E|µwz¿mSúŠæÛy} À®À$Dd‰¤L H] +§§ðZ² ð  “ ð6‚ƒ„A ?ƒ¿ÿð €"ðvg>TÚ”r)S ÿRû(@=ðJg>TÚ”r)S d Š¤Lbçè÷jþxœíW¿K\AþvÕ$Š‘‡^õ‚¢Š)ShH¡"ÆÂFðÇY=ÁÆBH£…€…éS¦ ±³M*¯´I•ÆîüÆç­ï½C…µò>fwfwfw¿·w@\ØJïhr“ÓƒB °H{=îÊ;Î+qÞOœ$|MD«×oÔ~<§íf‚¡Ñ¦m†Áâîúýv?éX‘r¹|£{½}D![jðÖ cãqâÐXƒuî™ÃòȼÂÝ,¾‘U²QPvÖ±IË}ÝÄ0ñV!íNâ£ö‡´?€0÷pÈWS¢ÿXçKÚBç*©¶¶¹dí¥Ä¾|[<¯ÉË%|×ê+œ<´¾¿x¶WÔ©WõûÄV­¾f‰e¸Z©qûôòXn#’vAýæ¹ìýÜ®À}kÜ>½<”Û/j—·ïéw1öÉï›jÜ.Ÿxöÿø&JýŽÂÕ°¼uñ{ê]xoÝwd¤Îi›a ™ëÒ¸¸¢m†-d®3ê¢M﫨¾Ðg(qó&+x_¿‹›<âúBó%q#›ÎÙêÿ=z´ÍÏNÙ·¿Öq"Ú¾¼œž¥ADdQ98 ð-১ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð €"ð“Ä£xFv +8 ÿo,@=ðgÄ£xFv +8 ìQ98Øñq(O5þxœåSÝJQþŽi–l?ˆ„”àTJ W‚PÑ…F‰`d^hPA·½AA]t¾Q/â;lßäœv\¶'hàã|3ßœÙsvæ8#ĶµT3±¿zt:@xÚ;æÔ÷ÏbÙ¶¹ï‹ü%¡D7þºú~O‰< 6ˆ¢rGÔˆ5,ë–eÍ‹¢èg=05‰ !WÊ™3H®ÏíXkeÏVÉĵòÀsÝäÛºI³u¥ÖIJÝ\"f5á~ô‰./C3|h¾õê~iq€1&¸ÅB\p}âÚÇcט¦œó?Ú½)+ûžÉ?ïÄQçÿýd/Þ\{sá<÷Ëë*°ÆÏ- ¹L\½q ðð{ øF~­KWÞÐçîó’L{½±!Òíy·|VŸÙGíaÒ=¤c²Í)&I©KO\oO“ŽË¾,N§kk9Ž$¥i!ÒæÀ}U?Ž“¹ÎÓC‹ì§]Àm/ÎE¯Žjýõ¼¦èyyŸ®¤ä Ÿc¿²­Þõü›ƒ—sýyæŸw_<1Ç~±û¢ç Ÿc¿² Þàì˨/æø³à}ÑóF†O±_ÙQpöeSÎñ]Pì¾èy#çÇدìæíK+ßõ°àóEË>=Ö=_Â8¾H}çh‘ÔÄ:Mü©6Öz|–-¡Ç¨c ¸Iö9ÙE¬¯†')óüe?›q©ÃÒ¯˜ñ/I}Ïï$íï²¼øýƒcßÒ߃yÒÒ³Zþ!í=â±ÛâÄ–í¶d[ó“l·s°= Ƕ,±e»á ¶“A’톟ÍvŽmYb˶¶[)lëA6ÛSplË[¶mr|&Û “lÛ9Øž#=„bê¶ã¤34æ[io…"fúŠëc(ò²Uc™¾ÂÖU‘k¨hë2|E5OÐÚdG|aý_Qcý¢¼_±L_‘c©5p-¨Æâ¶9–;cú'yϘ—ÒÏ\^Ð7š^ÅøNk§3f|άÐÞ?# ¬RûÄïɈ³gñtî(C¬k²ß¹†@J ìß™gǶÿbÃöK øý ’lU,‹í]¸ú°,±a{1üV£$[Ëb{î{[–Ø°©Šºér5yצbYl™¿c[ŽØ²åû´ÓÕä]›Še±} s;¶ý[¶|Ÿv½š¼kS±,¶á~oË[¶|ŸÆlÍ»6ËbûŽmYbU'Wd\I©“+ùj)þ_ ³ÝéÿS²MX;º¯ì§æÌí¿BÍñDdËÝC} ¾}G§§ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð€"ðCäï|#5e]d ÿ}2@=ðäï|#5e]d ô ÌÝD}àæ7 '°åþxœíVM/CQ=O[ÔWhDŠ BÚ&v"A#‚…4BbÐDâ#a„Dú ú¬ì±dÁÚoð/¬lêLÍõî{i“'ÁF'9¹3óæλg^s;pe«x»ë—W`æHÌ-eoMÀýVJY¶ùÜ#“uÀ´ãñ´[먮Í3´[ˆV"¦¶”è'˜â‰Ûö×\‘R©TÖCVa¢‡`[ˆX=H®É“ؘÖÚ Ä[=°vk5WI+߮뻮œÓl…ºŸÏŽ‰ßè‚÷}¾zp¾þƒœË‹9öõ^÷sçâ¯ñùì˜øÿ s©CÔ×l|ÓÚ«èÎ`,‡=`'H`™ú”zGômá°BŸÿQºðÉM\Ñ¢~ÙœqŽ8#<Û,%·Ž;°bœ ,¢òÈ\'Yiã8çï(×}DšèÖý3jX=4Y³&ýÔøÿ9ùÿO\¬÷ü.ŸC^þM,ÿù2ÿyÿ}pù{5þÿB‚ò¿¯þUâŽx†—“ÿñjü¯AøÏýÌ÷)Ý7¥{Ö8ÿ} ÊyQœ¼›Üð{ïå…¬#âã\cͨιÜ1“d^ÎÿŒÌ¯«eø—»À‚®÷DdWŸ” L•BT§§ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð€"ðI·Ò½ÊN/—s®” ÿ%n5@=ð·Ò½ÊN/—s®” ,XŸ”ÀSr˜ÿÐëþxœíYAkAþv“mM©‹„¢¢`µXj,Z¼ˆ ÚS•RjõfŠ¶(Ä*ñâ¡‚9ˆÁR{ðÜ“7!‚gÅKÏý"zßËÌ°³›m›…I ¸oæ{³ïÍÎ÷f²»ñKÖcEšÍfËž±bŒP9epZ°n«5ÖŒßy«ÆÎu^øs{„±úÕsÖx;n\츲N7â1Ìö n¬à.æ0F}ÆÎm£ ¬Ÿ€¹ÊµÊyOyʾ ”/Ž¹¼¯ym?[÷ec®rÉ:ÍkkrÅ1W¹fôzmië'`.s '[_ql–Ø4Û9Ú n ª³îù¡9<Æ,beܦ}A;‹§Ä°œ0ŸÿQJP kÔ¸áFÖxŽú†º“WõµÒ|ExÞÁòÉ;d¾«Ô+¨…d¡†çdaì\ >®óR¥BÛqZs°jLæ—Õƒ;é´^k|À®ñï\´ŒO~c÷ª‡ \& 52³ŒG­j@¤¤Žë¾àR#p{fo{êÌÜöÂ3ÛÆ\æZòU\±~–Õx÷¥ÓÝ 'Ÿ¸¾ßiúÑ7>Áv«ñjª~3n»/i¸­ä÷síÜß~ÜN@K·Ý—4Ü64¿¸mtÈí%dÜ”¤á¶¨ÏÝk gr±Ã3ù"2nJÒr;é+n?&p;éggr/IÚg©×÷í+¯ýYª”íÛž’´ÏR%ý,çÖø²}Û;Ò)·÷¨Õ‚âïK¡[ãN÷âV¾û·6¿.Þ§ûõîÜ„ïÓ6æ*—,ˆ|çk¾KÆ1W¹ê:nÝÊÇ\å*çU\±&Ws•«RPqÅš\q,ÛûÝ—4{‡k»D^®’¬ŸA웯öí·÷åŸÙû»ý‡vZ·ImÓÆèqfÞÒþ7O%ZóDdÈP pq´-§§ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð€"ðE?œeD{&—·P ÿ!e9@=ð?œeD{&—·P <ÈžPX`0^qçþxœí™¿kQÇ¿»{?b<% ‡ˆFÁQ¢ñÇÅÂR…(‚\i þhD°’j!˜*Ú,­¬mm$•µ‚\wÎ8o¼wo/ì-¾ÛÆ70™·3»3/ûÙÛ}XFGÞUÝIg{lغŒ_¾6 D¸xøLþºeƒŽ«ñq1ð݉ “ŽXۻ̶³Æ5Ò=¤£f‘&BwÜ#­›}YÚíö{ÔÊ1Az@¦…²5ÞW÷ãØ “‹ÿ¯uÒ·4·Q'm¾œ´ö·óºbçå|—zä-;>;Æ~µëð3‡“¤-ÒWÆ®Es} dçÉ2Êt’nY97¢¿ÃÑE¬ànã Æqìs² xH¾%¬ö˜Ïÿ(cu£5ãW6|ŽÞ#½Iúžô+:×4¬ûæÑ›7Ý¢˜!=×ËÏH® ¶z½¸>_µ~Ä’—­Ör}¾jm'’—­Ör}¾j})I^¶ZËõùªõ¦*yÙj-×ç«Ö§²äe«µ\Ÿ¯Z*’—­Ör}zÜ°U‹ï¯ÐÏüIž~ÖŒ¤g½ŽÒýLcYý¬î~ØNò°½ ¿µ8ÍVcYlÏ“N!°-Bò°½¿»Iš­Æ²ØžC¸o‹’Ÿk œ—­Ör}>×N8/[­åúB¼ôÛcîCÖê¾Å²Ž6t÷ñzôN=¦I:‹gtî—‰‚¼»ñoÉ”±áy°é—ù#Èsݬ¤™kŒB̉U<¥¿Ìüéq÷ýï/ûà%ïw„_t‹ìR’þŽÀ±¬ç ]Ÿ l/yßß™ß\)ÍVcYl¯Bî㾩1cÂÚ¶ý{Í~:gÿÏÞ@>õDdæ Ø n‚Ðz§§ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð€"ðGNØ’B_–r!I ÿ#X=@=ðNØ’B_–r!I H*æ¡Ø€†Ch¢0éþxœíšÏKaÇŸÝÙÝÌ~ ‚4Ø2+W­„A** ¬ñ IDØ¡Ûvˆêzð0èn‡N]Š:桺t0ºuپϾïÛ¾;3ÛÎÐì®ÐûÄãóÎó̾ïÌûyÞ3MŒˆ&©(«i¢éâñ®¯DKŸˆZúÏÅèB;ÑGøT*¯ð:`µ[¥±èníx›_°­ŽCÐýP¾$[»>WDZ£²®ïÐ ü°'?NëBñA›v¾^¯[ôz¹Ÿú|êµ]>=Æ~eÙ? ;‡ÍáÂ絶r±?Ŧ1š¡Yš¢j¡!Ø;°£t¾«4çsÿ£ì#Á¦Yj£ô+fÜÇc$ÆÄ0úö6 :ÐV1ÏH‹1ßòÏ®§ƒœÂ¿Ó(ëªÚkÐòŠÛ6¬£“°¬§â‚õFÜËšcÁXwÖu°¬Ç‚õ‡„—5Ç‚±ÎÖu°¬ûmÁúíeͱ`¬; ë:HXÖÝIÁz5éeͱ`¬» ë:HXÖ™”`½œò²æX0ÖÝeYÿËžÿtúÝk kùø¢jk _bÂ>J‰˜Ûå}­[¢^¶–/ʶ^'D½l-_”m­Ø¢^¶–/ʶž&E½l-Ÿ™sª/AçœKÒ¿6/a[]Ï*ÆËÍ9ÃÐ^ôü4ì4¾µ°|yï¿DÞç«ÌwÞÃ7Š¹}<&Ö ¶–/ʶ2jÍÐÚÒ}QµÅמ‘÷ ÚrûÌ©¾#ÜÇN\𹠈˱Ò1¢bXºÊŽg`pŽîÒ-ðàýçÌEhô@!]ŽñÅðˆ­Ú¹}Qµõ^îéœdq¿çöEÙ߃#ïÅòñEÙ÷“£õ¡ÛgÆiõ%è8eŽg°]{cßßÖ2î÷SdØÖB²]Çø{;’ô²]·+³eV=dØÖB‚²]„®É±9”öŽ[ãÿ?-ÇvÚFYP¸&WØ:BbÎWk-[µÖfIÌñÇÉäB-$L.lʱ|?íç*V9ºL.lQ ólºcßIøÌ 2VéÙô¤ö®Ó𭾄yŸ‹‹ñ<ŸðŽu3ßl] Êú‰÷¼{1§/ä“´k^—1þî©ë+Ð)ôü$þÞ„~ ž»y¯Î¼³²Ý¬¦&ª/ar€ß•0çw o¨X¥¸ŽþŸ+¬ë¿ "˜?çZÏ{¤¯“LÔB‚æ@ú™¿+‚}ŽØ ÒP±íT>xÝÄY³ôóÀ (0³ð‰ó罃ZTN¨÷m#Ð3Tþûʃ²Œ”Èëþò‹=élYbGšÌÞ›ÙñzßîŒuIl!—-à»ÊŸÿö°pûþ ÁÑàñ&Š²Æy?8o¹Á¨¤è›¥žtž™g;çÇsÔãÔ¶KŠE*C ~w|‘:obEúýþÀžwr\ ž¥rYH5H¬ße“K¾×ê'Lò\3À›KN¼›×7¯ä»U’7õ0×'¸µ‚¯S;|Zö¹ðWÎgíç{ÝÞÀs¼@»XÀ*íkÚulëâeÉ:ÿG9 ÍͼÑ9ƒ[Îd7Œ>£>Jôy?HòsÇ'Xåç`ú”zÕÉ?ëœ#ù¬Èm}R…[©+HÚuÚEUäÖú"·Ó#•¸Uš¿›ª„[Æíê5zÉ_nenHï éA=‰k> Ðað7UcOòò¦æú·Vð:Ö°D=b¾Ÿ m¿*íó±©àf?5sàåM=Ìõ nm­Àì7Ž+ìó?Z\n ­*¯9“;Þ!®ˆGâ–÷%–]ÔŒšès•u&’8U¬då0§Öê'RĤŠ%7aì£ÅЛ쩮ÚYµ„.ϱ@¹tMr~HrïÓ¨sûV-·rÇ©—¿‡`9·ºÆŸd_nåý}Ã!Î ¼ä° ÷]Öújó2N|qó¯ÊwÛnÍ›«ÕZ—¶ÛW¼^Ë›«ëù÷­Z=ß¼Û ý.I|G©žuM¾½üô¼ùVI` äa‰}7 \Š®„üw-+põW5ñ~ßhƒ*¦ 3ß®Æé3Jü Z6u§ºDd$Ù6Ž { P§§ðZ² ð “ ð6‚ƒ„A?ƒ¿ÿð€"ð ëtŸoga• ÿèÒH@=ðàëtŸoga• ˜%Ù7Ž\1XýÇ®þxœíY¿kAþv÷öNC”D‚IÄŸDÑÓD´n@ˆ’ÄZ™ˆQÑÂÂ&…¤,,lÒYùÌŸ`ai¡•……¶žß»™qgwï¼]Ý»¸>Þì÷fßÎÎ÷fwnÏp¡MînûáñáÀùÀXpmpðêð’| Q›âyK¶‰=Ä°nKŠq‚]"q»}ŒÑ}ÅFÓ±r%¬Ûjö5ý$6¡s½f§-úïeày)ÌUž·úÛyãfç•yºÒ"¯ãì˜ðÆoEïç÷œ”÷Ÿfüiæå-“Í%¸êæ7/ñ¼~Œ³cÂ/|?ÌËS&›&1É1^ôò›—x^?ÆÙ1á~}gÙ&… ü¾u­pm/bwQÇCŒá:ýcúÜ#WÃZ‹qþ¶J›AÍÍdŽ5.sî?Oˆy/¬?X1áfѺ戳Ä+ÿ€UGr­BÛü,«¶Ÿ¥mÍMj+±NÚžCTÛ|n}%ª¼Á÷Ä­ßsñ¼~Œ³cÂ_õŠšï…e­ùmOÕüt)YóÛ^皯¢xžõÊÒj»D Q°ôïè8QmMLú·ÓVò8MŒB½» »oYÖð™²Z§Ëåä6±b ÷eÕvÓUÚŽ{Im7‹ýf_YVm×¥­ã&µ]ÿ‹ýæ¿ìíNo|µÏýVVÞmÁåy­)Oåï¶àŠší¾e­Ù:ý#úOHÖlk6Ð(´í¾eÕ6àú[“o•~RÛÀשּׂì/¡Ð¶–VÛUÍË·©/H~·21ùßNÛ›}W˜k™ (G5äýs …æ½°´šËÿ=s¥ëÏJRs“wñŸ~ÿÍ45¯Eô>öÿ×ÒmÊÜ°ù½ºŸ¹iÿQ×"Þ1Tableÿÿÿÿò¼SummaryInformation(Zÿÿÿÿs8UDocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿ­8CompObjÿÿÿÿÿÿÿÿÿÿÿÿ²u      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwyýÿÿÿz{|}~€†œd@ñÿd Normal$*$1$A$a$+B*CJOJPJQJ^J_HaJmHsHtHX@X Título 1@& & F & F¤ð¤OJQJCJ>*5V@V Título 2@& & F & F¤x¤OJQJCJ5V@RV Título 3$ & F„„b„@&]„^„b`„CJ5V@RV Título 4$ & F„„b„@&]„^„b`„CJ>*R@RR Título 5$ & F„„Ä„@&]„^„Ä`„5R@RR Título 6$ & F„„Ä„@&]„^„Ä`„>*R@RR Título 7$ & F„„Ä„@&]„^„Ä`„6R@RR Título 8$ & F„„Ä„@&]„^„Ä`„6R @RR Título 9$ & F„„Ä„@&]„^„Ä`„6>Aòÿ¡> Fonte parág. padrãoXi@óÿ³X  Tabela normal :V ö4Ö4Ö laö ,k@ôÿÁ, Sem lista @þOòÿñ@ Fonte parág. padrão1NþON Heading ¤ð¤x$CJOJPJQJ^JaJ@B@@ Corpo de texto ¤¤x&/@"& ListaDþO2D Caption ¤x¤x $6CJ]aJ*þOB* Index $NþORN Recuo normal1„„Ä„]„^„Ä`„4 @b4 Rodapé  ÆàÀ!:@r: Cabeçalho  ÆàÀ!J‚J Texto de nota de rodapé,Uèÿÿÿÿ] ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ  z™ ÿÿ  z™ ÿÿ  z™ ÿÿ  z™ ÿÿ  z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ z™ ÿÿ  z™ ÿÿ! z™ ÿÿ" z™ ÿÿ# z™ ÿÿ$ z™ ÿÿ% z™ ÿÿ& z™ ÿÿ' z™ ÿÿ( z™ ÿÿ) z™ ÿÿ* z™ ÿÿ+ z™ ÿÿ, z™ ÿÿ- z™ ÿÿ. z™ ÿÿ/ z™ ÿÿ0 z™ ÿÿ1 z™ ÿÿ2 z™ ÿÿ3 z™ ÿÿ4 z™ ÿÿ5 z™ ÿÿ6 z™ ÿÿ7 z™ ÿÿ8 z™ ÿÿ9 z™ ÿÿ: z™ ÿÿ; z™ ÿÿ< z™ ÿÿ= z™ ÿÿ> z™ ÿÿ? z™ ÿÿ@ z™ ÿÿA z™ ÿÿB z™ ÿÿC z™ ÿÿD z™ ÿÿE z™ ÿÿF z™ ÿÿG z™ ÿÿH z™ ÿÿI z™ ÿÿJ z™ ÿÿK z™ ÿÿL z™ ÿÿM z™ ÿÿN z™ ÿÿO z™ ÿÿP z™ ÿÿQ z™ ÿÿR z™ ÿÿS z™ ÿÿT z™ ÿÿU z™ ÿÿV z™ ÿÿW z™ ÿÿX z™ ÿÿY z™ ÿÿZ z™ ÿÿ[ z™ ÿÿ\ z™ ÿÿ] z™kÉ>»2 Xj3šç ã(/©4ž;ÀAF–IbLÉAŠEUH>K_NšR,U 3  J  Ó 6"%/ !"^#2$%&' ()*+, -./01)2]3 4G56h7.8>9 :;<=>?@ AB2CDEFGHI J K$L>MNO0PQRSTUVWXYZ[\!89:;<=>?@ABCDEFGHghlmŠ‹ŒŽ‘’“¨©ª«¬­º»÷økl‚ƒ¤¥´Ãýþ",5BOZk‚ƒ¦§¼Íâ",6@MYdn|Š‹™š¶·ÉÞ45AMXYx•–¢®¯ÂÃÌØáêóý",6BNWdeqr‰Šœ¬¾ÑÒò>VpŽ ²³ÆÇáõ$%1=IVWno{ ­ÃÙèé56ST^hu€š§±»ÉÔäå  " 3 Y „ “ £ ¤ ± ² Æ Ç × æ õ   " 1 B P Q _ ` m ~   ¡ É Ê × Ø î ï ü   1 2 ? L Y Z ‰ ¡ µ Ò ê ü  S | › œ · â ã þ ÿ  4 b c … † ¢ Ê ø ù XYgh‹Œ§ÂÃá 5Xj‹Œš›$%34m‰ŠÀÁö2…Ö×ôõ÷ø013OP Ž¥¦§¨³´YZmn/0°±ÇÈDEcdšÍÎ67LM¢£¾¿QRvw‘ÎÏúûbc†‡ö÷€Ÿ óôDEefƒ„³´ÆÇst†‡ØÙœµ¶  $ % k l ‹ Œ Å Æ ä å ç þ ÿ Q!R!Ð!Ñ!p"q" # #“#”#ô#õ#\$]$ý$þ$§%¨%c&d&¼&½&1'2'¾'¿';(<(ã(-)n)°)±)¸)¹)"*#*S*T*y*Á*+R+S+•+–+Ï+,,,,F,G,Ë,Ì,|-}-Ï-Ð-../.ˆ.‰.//2/3///ñ/ò/J0K0¹0º011f1g1º1»122'2(2ƒ2„2 2¡2à2á233G3H3g3h3Ë3Ì3$4}4©4|5Í5Î5E6F6÷6ø6‚7ƒ7³78,8-8`8a8z8{8,9-9­9®9þ9ÿ9W:X:¡:¢: ; ;Y;Z;œ;ž;´;µ; < <{<|<è<é<_=`={>|>??l?Â?Ã?j@k@í@î@¾AÀAãAäAøAùA&B'BFBbB{B¡BÀBÜBüBýBCCHCcC›CüCýC DD”D•D²D·DÒDÓDçDèD)E*ETEUE–E—E¼E½EþEÿEFF9FZF{F™F¾FãF G$GHGIGaGbGuGG‰GŠGËGÌGøGþG HHHDHJHUHZH[HœHH£H®H³H´HÒHÓHII"I#INeN‚N NªN°N¹NÎNÕNèNûNO!O'OQHQIQ\QlQ‡QˆQŽQ—Q Q©QÐQóQRR9R:RYRZRlRŠR•R¥R¹RÇRòRóRSSS&S8SJSRSZS[StSuSŒSS¨S©SºSÕSÖSçSTTT:T;TYTZT¥T¦T³T´T»TËTêT U!U,U-U4UDUU·U¸UÅUÆUÍUÙU V:V;VFVGVNVZV‹VºV»V×VØVâVãV#W$WGWHWcWW€WŠW‹WËWÌWïWðW X(X)Xf?fJfMfsf™f»fÀfåfêfëf÷fúfg.gIg]gxg}g¦g«g¬gÚgÛgégêg)h9h:héhêh i6i7iLiXi˜iµiÀiÁiÖiñij2jUjejfj”j•j£j¤j·jËjÌj;k’I’_’z’’’ª’³’Á’Ò’ï’“ “)“;“B“H“I“c“d“m“n“·“¸“ß“à“ê“ý“”””%”:”L”g”¢”µ”º”»”ĔŔ••>•?•I•\•m•s•{•…•œ•³•Î• –H–M–N–Z–[–¦–§–ß–à–ê–———%—6—H—V—o—}—‹—™—É—ã—è—é—ó—ô—0˜1˜s˜t˜~˜–˜©˜¯˜¸˜Õ˜ð˜™/™I™N™O™[™\™™™È™É™Ó™ê™ð™ù™š+šUšoštšušš‚šÑšÒš›››&›7›=›F›S›m›€›Ž›¾›Ø›Ý›Þ›ê›ë›$œ%œNœOœYœoœuœ~œ›œªœåœÿœOPz{…˜©¼ÂËÜöž"žTžZž|ž—žœžž¦ž§ž_Ÿ`Ÿ˜Ÿ™Ÿ£Ÿ±ŸÀŸÆŸÏŸáŸìŸ 4 : ; H I ‡ ˆ ® ¯ ¹ Ç Í Ö Þ ý ¡%¡>¡C¡D¡N¡\¡b¡k¡s¡™¡²¡Ê¡Ï¡Ð¡Ú¡Û¡©¢ª¢ñ¢ò¢ü¢£ £0£6£?£G£~£‹£ £±£º£Ó£ò£ù£¤¤>¤C¤D¤S¤T¤¡¤¢¤ï¤ð¤ú¤¥(¥.¥G¥€¥›¥¯¥°¥ã¥ä¥¦¦¦¦Ã¦Ä¦Ô¦Õ¦‡§ˆ§•§–§¨F¨¸¨$©%©6©@©c©q©³©Ã©É©Õ©Þ©ë©ð©ª!ª'ª>ªeªjªpªxª‚ª—ª§ªÀªÔªùª!«X«•«½«â«ë«¬%¬@¬E¬F¬|¬}¬¯¬Î¬Ï¬ß¬à¬¨­©­Ü­Ý­ø­ù­® ®F¯G¯i¯x¯~¯•¯¤¯©¯ª¯Õ¯Ö¯þ°ÿ°±.±4±@±I±V±[±\±t±u±¶²·²ö²û²³"³(³3³i³n³o³Š³‹³©³ª³™´š´Í´Ò´Ø´Ü´â´í´ò´ó´µµSµTµmµ‡µˆµ£µ¤µçµèµ¶¶ ¶!¶b¶c¶¶‚¶Ò¶Ó¶î¶ï¶$·%·/·0·^·h·y·‡·¨·Ã·É·¸(¸0¸Q¸r¸Ž¸ª¸Æ¸Ì¸ì¸ô¸¹)¹U¹¹¹¤¹©¹¯¹·¹Á¹ß¹ê¹ ºº;ºHºjºwº‰º°º¹ºÖºóº» » »;»E»V»h»v»„»¹»Ô»Ú»¼+¼a¼f¼l¼u¼¼¼¨¼Ê¼×¼ù¼½(½5½Q½z½ƒ½’½¡½¾½Û½ø½ÿ½¾(¾U¾‚¾Ÿ¾§¾Î¾×¾ô¾¿%¿*¿+¿8¿9¿T¿U¿r¿€¿“¿”¿»¿á¿fÀ×À<Á™ÁûÁüÁ¦§µ¶ÂéÂ,Ã-Ã5Ã6ÃwÃxÃÃÄÃôÃ&ÄCÄbÄwÄxċČĚěÄÅÅQÅRÅlÅmÅ„ÅūűźÅáÅøÅÆÆÆÆ6Æ7ÆQÆ`ÆfÆoƫƬƹƺÆçÆèÆÇÇÇÇUÇVÇ„Ç…Ç‘Ç’ÇáÇâÇÈÈ)È*È|È}ȷȸÈÆÈÇÈþÈÿÈFÉHÉUÉVɅɆɭɮÉÊŽÊŸÊ©ÊÃÊÒÊíÊóÊüÊË0ËKËdËeËuÌv̖̺̻ÌÑÌíÌóÌÍÍ)Í*ÍÏÍÐÍùÍúÍÎÎoÎpΪΫθιÎÒÎÓÎFÏGÏuÏvυφÏÐÐ5Ð6ÐFÐGФХÐØÐÙÐçÐèÐ)Ñ*ÑXÑYÑwÑxтњѰÑÁÑ×ÑâÑ"ÒPÒnÒyÒÒˆÒ¥Ò¿ÒÝÒöÒ ÓÓ&Ó0ÓFÓ\ÓsÓŠÓ Ó·ÓíÓÔ!Ô=ÔYÔkÔqÔwÔ™Ô¦Ô«Ô¬Ô¹ÔºÔÏÔÐÔÛÔÜÔÕ,Õ-ÕÕŽÕ™ÕšÕØÕÖÖÖÖSÖÖÇÖÈÖáÖâÖíÖîÖÿÖ × ×××'×8×9×D×E×V×l×mכל×&Ø'؈؉ؕؖؠادضؿØÊØÕØáØëØòØýØþØGÙHÙvÙ¤ÙÒÙÚ.Ú_ÚÚÁÚóÚ$Û%Û<ÛLÛeÛkÛ}ÛÊÛçÛÜÜÜÜ0Ü@ÜYÜ_܀ܱÜöÜÝCÝDÝ[Ý\ݩݪÝáÝâÝòÝÞÞ*Þ6Þ<ÞKÞ[Þ¨Þ´Þ¼ÞÐÞäÞùÞß!ß.ß3ß4ßGßHߩߪßÔßÕßäßôß à$à0à6àEàUàpà|à„à™à®àÃàØàíàþàá&á3á8á9áUáVáââ6â7âKâ[âtâ‹â—ââ¬â¼â×âßâôâ ãã3ãHãYãsã†ã“ã˜ã™ã°ã±ã$ä%äWäXäjäzä“ä¤äµä»äÊäÚäõäýäå'å<åSådåzååšåŸå¡å²å³å@æAæ‡æˆæ—æ§æÁæÒæëæüæçç!ç<çDçYçnç‰ç£ç¸çÏçàçèè$è)è*èDèEè¯è°èñèòèééié£é¼éÂéÑéáéüé-êAêzêêÅêØê ëëMëjë¥ë¼ëöëìAìXìpìŠì—ìœììÁìÂìííCíDíííÆíÇíþíÿíî îXîYî{î|î¤î¥îöî÷î2ï3ïVïWïsïŽï¡ï¸ïÍïÎïð ðXðYðhðyð’ð˜ð§ð·ðÒðåðøð ñ/ñXñrñwñxñ–ñ—ñªñ«ñòò>ò?ò|ò}ò²ò³òÂòÃòïòüòóó$ó3óDóQó_óqóó’óŸó ó±óÂóÜóëó÷óýó ôô7ôQôYôsôŽô£ô®ôµôÂôÇôÈôÚôÛôÒõÓõöö!ö2öŒö¦öµö»öÊöÚöõö&÷@÷Z÷b÷œ÷É÷Ô÷Û÷è÷í÷î÷ûøüø9ù:ùSùdùwùÏùúEúFú`úoúuú„ú”ú¯ú×úû:û…ûÇûÐûÝûâûãûüüüüOüPükülü¯ü°üÊüâü3ý4ýVýfýyý…ýýýªý¸ýÑýàýîýôýþþ.þOþbþ¨þ¸þâþíþøþÿÿ-ÿAÿTÿpÿ}ÿ‚ÿ“ÿ¦ÿ¹ÿÍÿÔÿñÿöÿ÷ÿÒÓðñNŒ£¤¸ÌëþÌÍBCvwçè"#op§¨¹Éáú"CD„Š Ä×î(-.`f”ºÝâã6Ip—œ£²ÂÝþ 0 L U t  ˜ ¸ Õ ß   - 6 X a n s t ” • ø ù   Í Î ä å ï ð õ û     C L U V e f p v {  …  • – Ÿ ¥ ª ® ´ ¿ Ä É Ê Ó Ô ü ý   "#78Ww§Õ.b¢£²³áâ"#RSsƒ‰•žª¯°èé-8=>tu¢¨¶ÂÇÈÿ-<BX`|˜Ÿµ½Ùõü2Mhmn©ªÙèî (DKai…¡¨ÃÞùLM‡˜®·ËÐÑûü<J\bo}”®½ÍÖÞçù.GOak ¾Òáêðö%AShv~¦«¬±²åæù 7Tp¬»Úâ#$±²ÇÈžŸº»ÛÜ*+FGd†¤ÈÉàáëì#/:;bcš­³Üùþÿ #:DVgp—®èû  K L ¬ ­ Å Æ !!F!G!w!x!Œ!”!™!š!¯!Ð!ê!ë!W"X"b"r"~"„""¦"Î"Ô"Ü"ñ"##/#6#;#<#P#Q#f#…#¡#¢#>$?$I$J$a$m$w$…$–$œ$¥$¾$ì$ò$ú$%1%K%s%{%…%–%£%·%Ñ%í%ø% &"&.&=&Y&l&‚&& &±&Ù&ü& ''('3'H'R'b'j'q'w'|'}'˜'·'½'¾'Ó'ô'('(((ž(Ÿ(ª(¾(Ì(Ú(à(é()2)8)@)U)m)‚)•) )¶)Ï)Ü) ****:*;*]*^*„*…*A+B+L+M+{+«+¬+Ò+Ó+é,ê,#-$-Q-R-—-˜-Â-Ã-Ö-×-à-á-..-.@.f.o.”.•.ò.ó.'/(/=/>/K/L/“/”/¤/¥/Á/Â/ñ/ò/û/ü/00!03090B0c0o0²0È0Ù0ý01&1'1:1;1X1Y1‰1Š1•1–1Í1ï1222.2=2C2L2V2‹2¦2«2Æ2Ç2ã2ä2ì2í2*3v3w3€33‹3Ÿ3°3¶3¿3Ü3 4'4X4a4f4g4„4…4œ44³4´4C5D5r5†5‡5*6+65666L6j6p6„6–6ž6Ï6à6ö6û6ü67/7=7C7W7i7q7‰7ª7¼7Ò7×7Ø7Þ7æ7ô78888A8B8L8M8„88ž8Ÿ8Ã8Ù8ß89(9-9.949<9F9\9s9}9˜9±9º9Í9Ò9Ó9ê9ë9^:_:¤:¥:À:Á:Ý;Þ;ù;ú;<<5<6<±<²<==1=D=E=`=p=q=‘=­=®=É=Ê=U>V>e>o>Š>>°>Ã>Ì>ä>ñ>÷>???.?;?L?U?a?u?œ?¥?°?È?Ü?ð?ú?@@-@E@M@l@|@ƒ@ @©@®@¯@É@Ê@SATAbAlA‡AšA­AÀAÉAãAðAöAÿABB(B6BFBUB]BgB|B‰BšB£B¯B»BÏBöBÿB CC1CGCQCYCgCuCC•C´CÄCËCèCñCöC÷CDD¼D½DŠE‹E¯E°EºE»EÖEéEFF-F6FJFbFoF…FFF¡F°F½FÈFÉFéFïFGG G%G&GMG^GdGnGG£G©G±GÄGÎGçGúGH*H9HMHUH]HgH}H–H©HÁHØHîHI IIII?IPIVI_IpI”IšI¢IµIÀIÙIìIJJ+J?JGJOJYJmJ„J—J±JÉJÝJòJûJKKK(K.K>K[KcK‚K—KžK»KÀKÁKâKèKúKL L?LUL\LyL~LL…LœL¤L®LÃLÐLáLêLMM9MTM`MgM…M¢M«M³MÁMÊMÒMNN)NFNUN_NdNƒN¡N¨N¹N¾N¿NÐNÑNÅO9P:PVPWPP‘P›PœPýPþP;Q?@ABCDEFGHghlmŠ‹ŒŽ‘’“¨©ª«¬­º»÷økl‚ƒ¤¥´Ãýþ",5BOZk‚ƒ¦§¼Íâ",6@MYdn|Š‹™š¶·ÉÞ45AMXYx•–¢®¯ÂÃÌØáêóý",6BNWdeqr‰Šœ¬¾ÑÒò>VpŽ ²³ÆÇáõ$%1=IVWno{ ­ÃÙèé56ST^hu€š§±»ÉÔäå  " 3 Y „ “ £ ¤ ± ² Æ Ç × æ õ   " 1 B P Q _ ` m ~   ¡ É Ê × Ø î ï ü   1 2 ? L Y Z ‰ ¡ µ Ò ê ü  S | › œ · â ã þ ÿ  4 b c … † ¢ Ê ø ù XYgh‹Œ§ÂÃá 5XYj‹Œš›$%34m‰ŠÀÁö2…Ö×ôõ÷ø0123OP Ž¥¦§¨³´YZmn/0°±ÇÈDEcdšÍÎ67LM¢£¾¿QRvw‘ÎÏúûbc†‡ö÷€Ÿ óôDEefƒ„³´ÆÇst†‡ØÙœµ¶  $ % k l ‹ Œ Å Æ ä å æ ç þ ÿ Q!R!Ð!Ñ!p"q" # #“#”#ô#õ#\$]$ý$þ$§%¨%c&d&¼&½&1'2'¾'¿';(<(ã(-)n)°)±)¸)¹)"*#*S*T*y*Á*+R+S+•+–+Ï+,,,,F,G,Ë,Ì,|-}-Ï-Ð-../.ˆ.‰.//2/3///ñ/ò/J0K0¹0º011f1g1º1»122'2(2ƒ2„2 2¡2à2á233G3H3g3h3Ë3Ì3$4}4©4|5Í5Î5E6F6÷6ø6‚7ƒ7³78,8-8`8a8z8{8,9-9­9®9þ9ÿ9W:X:¡:¢: ; ;Y;Z;œ;;ž;´;µ; < <{<|<è<é<_=`={>|>??l?Â?Ã?j@k@í@î@¾A¿AÀAãAäAøAùA&B'BFBbB{B¡BÀBÜBüBýBCCHCcC›CüCýC DD”D•D²D·DÒDÓDçDèD)E*ETEUE–E—E¼E½EþEÿEFF9FZF{F™F¾FãF G$GHGIGaGbGuGG‰GŠGËGÌGøGþG HHHDHJHUHZH[HœHH£H®H³H´HÒHÓHII"I#INeN‚N NªN°N¹NÎNÕNèNûNO!O'OQHQIQ\QlQ‡QˆQŽQ—Q Q©QÐQóQRR9R:RYRZRlRŠR•R¥R¹RÇRòRóRSSS&S8SJSRSZS[StSuSŒSS¨S©SºSÕSÖSçSTTT:T;TYTZT¥T¦T³T´T»TËTêT U!U,U-U4UDUU·U¸UÅUÆUÍUÙU V:V;VFVGVNVZV‹VºV»V×VØVâVãV#W$WGWHWcWW€WŠW‹WËWÌWïWðW X(X)Xf?fJfMfsf™f»fÀfåfêfëf÷fúfg.gIg]gxg}g¦g«g¬gÚgÛgégêg)h9h:héhêh i6i7iLiXi˜iµiÀiÁiÖiñij2jUjejfj”j•j£j¤j·jËjÌj;k’I’_’z’’’ª’³’Á’Ò’ï’“ “)“;“B“H“I“c“d“m“n“·“¸“ß“à“ê“ý“”””%”:”L”g”¢”µ”º”»”ĔŔ••>•?•I•\•m•s•{•…•œ•³•Î• –H–M–N–Z–[–¦–§–ß–à–ê–———%—6—H—V—o—}—‹—™—É—ã—è—é—ó—ô—0˜1˜s˜t˜~˜–˜©˜¯˜¸˜Õ˜ð˜™/™I™N™O™[™\™™™È™É™Ó™ê™ð™ù™š+šUšoštšušš‚šÑšÒš›››&›7›=›F›S›m›€›Ž›¾›Ø›Ý›Þ›ê›ë›$œ%œNœOœYœoœuœ~œ›œªœåœÿœOPz{…˜©¼ÂËÜöž"žTžZž|ž—žœžž¦ž§ž_Ÿ`Ÿ˜Ÿ™Ÿ£Ÿ±ŸÀŸÆŸÏŸáŸìŸ 4 : ; H I ‡ ˆ ® ¯ ¹ Ç Í Ö Þ ý ¡%¡>¡C¡D¡N¡\¡b¡k¡s¡™¡²¡Ê¡Ï¡Ð¡Ú¡Û¡©¢ª¢ñ¢ò¢ü¢£ £0£6£?£G£~£‹£ £±£º£Ó£ò£ù£¤¤>¤C¤D¤S¤T¤¡¤¢¤ï¤ð¤ú¤¥(¥.¥G¥€¥›¥¯¥°¥ã¥ä¥¦¦¦¦Ã¦Ä¦Ô¦Õ¦‡§ˆ§•§–§¨F¨¸¨$©%©6©@©c©q©³©Ã©É©Õ©Þ©ë©ð©ª!ª'ª>ªeªjªpªxª‚ª—ª§ªÀªÔªùª!«X«•«½«â«ë«¬%¬@¬E¬F¬|¬}¬¯¬Î¬Ï¬ß¬à¬¨­©­Ü­Ý­ø­ù­® ®F¯G¯i¯x¯~¯•¯¤¯©¯ª¯Õ¯Ö¯þ°ÿ°±.±4±@±I±V±[±\±t±u±¶²·²ö²û²³"³(³3³i³n³o³Š³‹³©³ª³™´š´Í´Ò´Ø´Ü´â´í´ò´ó´µµSµTµmµ‡µˆµ£µ¤µçµèµ¶¶ ¶!¶b¶c¶¶‚¶Ò¶Ó¶î¶ï¶$·%·/·0·^·h·y·‡·¨·Ã·É·¸(¸0¸Q¸r¸Ž¸ª¸Æ¸Ì¸ì¸ô¸¹)¹U¹¹¹¤¹©¹¯¹·¹Á¹ß¹ê¹ ºº;ºHºjºwº‰º°º¹ºÖºóº» » »;»E»V»h»v»„»¹»Ô»Ú»¼+¼a¼f¼l¼u¼¼¼¨¼Ê¼×¼ù¼½(½5½Q½z½ƒ½’½¡½¾½Û½ø½ÿ½¾(¾U¾‚¾Ÿ¾§¾Î¾×¾ô¾¿%¿*¿+¿8¿9¿T¿U¿r¿€¿“¿”¿»¿á¿fÀ×À<Á™ÁûÁüÁ¦§µ¶ÂéÂ,Ã-Ã5Ã6ÃwÃxÃÃÄÃôÃ&ÄCÄbÄwÄxċČĚěÄÅÅQÅRÅlÅmÅ„ÅūűźÅáÅøÅÆÆÆÆ6Æ7ÆQÆ`ÆfÆoƫƬƹƺÆçÆèÆÇÇÇÇUÇVÇ„Ç…Ç‘Ç’ÇáÇâÇÈÈ)È*È|È}ȷȸÈÆÈÇÈþÈÿÈFÉGÉHÉUÉVɅɆɭɮÉÊŽÊŸÊ©ÊÃÊÒÊíÊóÊüÊË0ËKËdËeËuÌv̖̺̻ÌÑÌíÌóÌÍÍ)Í*ÍÏÍÐÍùÍúÍÎÎoÎpΪΫθιÎÒÎÓÎFÏGÏuÏvυφÏÐÐ5Ð6ÐFÐGФХÐØÐÙÐçÐèÐ)Ñ*ÑXÑYÑwÑxтњѰÑÁÑ×ÑâÑ"ÒPÒnÒyÒÒˆÒ¥Ò¿ÒÝÒöÒ ÓÓ&Ó0ÓFÓ\ÓsÓŠÓ Ó·ÓíÓÔ!Ô=ÔYÔkÔqÔwÔ™Ô¦Ô«Ô¬Ô¹ÔºÔÏÔÐÔÛÔÜÔÕ,Õ-ÕÕŽÕ™ÕšÕØÕÖÖÖÖSÖÖÇÖÈÖáÖâÖíÖîÖÿÖ × ×××'×8×9×D×E×V×l×mכל×&Ø'؈؉ؕؖؠادضؿØÊØÕØáØëØòØýØþØGÙHÙvÙ¤ÙÒÙÚ.Ú_ÚÚÁÚóÚ$Û%Û<ÛLÛeÛkÛ}ÛÊÛçÛÜÜÜÜ0Ü@ÜYÜ_܀ܱÜöÜÝCÝDÝ[Ý\ݩݪÝáÝâÝòÝÞÞ*Þ6Þ<ÞKÞ[Þ¨Þ´Þ¼ÞÐÞäÞùÞß!ß.ß3ß4ßGßHߩߪßÔßÕßäßôß à$à0à6àEàUàpà|à„à™à®àÃàØàíàþàá&á3á8á9áUáVáââ6â7âKâ[âtâ‹â—ââ¬â¼â×âßâôâ ãã3ãHãYãsã†ã“ã˜ã™ã°ã±ã$ä%äWäXäjäzä“ä¤äµä»äÊäÚäõäýäå'å<åSådåzååšåŸå å¡å²å³å@æAæ‡æˆæ—æ§æÁæÒæëæüæçç!ç<çDçYçnç‰ç£ç¸çÏçàçèè$è)è*èDèEè¯è°èñèòèééié£é¼éÂéÑéáéüé-êAêzêêÅêØê ëëMëjë¥ë¼ëöëìAìXìpìŠì—ìœììÁìÂìííCíDíííÆíÇíþíÿíî îXîYî{î|î¤î¥îöî÷î2ï3ïVïWïsïŽï¡ï¸ïÍïÎïð ðXðYðhðyð’ð˜ð§ð·ðÒðåðøð ñ/ñXñrñwñxñ–ñ—ñªñ«ñòò>ò?ò|ò}ò²ò³òÂòÃòïòüòóó$ó3óDóQó_óqóó’óŸó ó±óÂóÜóëó÷óýó ôô7ôQôYôsôŽô£ô®ôµôÂôÇôÈôÚôÛôÒõÓõöö!ö2öŒö¦öµö»öÊöÚöõö&÷@÷Z÷b÷œ÷É÷Ô÷Û÷è÷í÷î÷ûøüø9ù:ùSùdùwùÏùúEúFú`úoúuú„ú”ú¯ú×úû:û…ûÇûÐûÝûâûãûüüüüOüPükülü¯ü°üÊüâü3ý4ýVýfýyý…ýýýªý¸ýÑýàýîýôýþþ.þOþbþ¨þ¸þâþíþøþÿÿ-ÿAÿTÿpÿ}ÿ‚ÿ“ÿ¦ÿ¹ÿÍÿÔÿñÿöÿ÷ÿÒÓðñNŒ£¤¸ÌëþÌÍBCvwçè"#op§¨¹Éáú"CD„Š Ä×î(-.`f”ºÝâã6Ip—œ£²ÂÝþ 0 L U t  ˜ ¸ Õ ß   - 6 X a n s t ” • ø ù   Í Î ä å ï ð õ û     C L U V e f p v {  …  • – Ÿ ¥ ª ® ´ ¿ Ä É Ê Ó Ô ü ý   "#78Ww§Õ.b¢£²³áâ"#RSsƒ‰•žª¯°èé-8=>tu¢¨¶ÂÇÈÿ-<BX`|˜Ÿµ½Ùõü2Mhmn©ªÙèî (DKai…¡¨ÃÞùLM‡˜®·ËÐÑûü<J\bo}”®½ÍÖÞçù.GOak ¾Òáêðö%AShv~¦«¬±²åæù 7Tp¬»Úâ#$±²ÇÈžŸº»ÛÜ*+FGd†¤ÈÉàáëì#/:;bcš­³Üùþÿ #:DVgp—®èû  K L ¬ ­ Å Æ !!F!G!w!x!Œ!”!™!š!¯!Ð!ê!ë!W"X"b"r"~"„""¦"Î"Ô"Ü"ñ"##/#6#;#<#P#Q#f#…#¡#¢#>$?$I$J$a$m$w$…$–$œ$¥$¾$ì$ò$ú$%1%K%s%{%…%–%£%·%Ñ%í%ø% &"&.&=&Y&l&‚&& &±&Ù&ü& ''('3'H'R'b'j'q'w'|'}'˜'·'½'¾'Ó'ô'('(((ž(Ÿ(ª(¾(Ì(Ú(à(é()2)8)@)U)m)‚)•) )¶)Ï)Ü) ****:*;*]*^*„*…*A+B+L+M+{+«+¬+Ò+Ó+é,ê,#-$-Q-R-—-˜-Â-Ã-Ö-×-à-á-..-.@.f.o.”.•.ò.ó.'/(/=/>/K/L/“/”/¤/¥/Á/Â/ñ/ò/û/ü/00!03090B0c0o0²0È0Ù0ý01&1'1:1;1X1Y1‰1Š1•1–1Í1ï1222.2=2C2L2V2‹2¦2«2Æ2Ç2ã2ä2ì2í2*3v3w3€33‹3Ÿ3°3¶3¿3Ü3 4'4X4a4f4g4„4…4œ44³4´4C5D5r5†5‡5*6+65666L6j6p6„6–6ž6Ï6à6ö6û6ü67/7=7C7W7i7q7‰7ª7¼7Ò7×7Ø7Þ7æ7ô78888A8B8L8M8„88ž8Ÿ8Ã8Ù8ß89(9-9.949<9F9\9s9}9˜9±9º9Í9Ò9Ó9ê9ë9^:_:¤:¥:À:Á:Ý;Þ;ù;ú;<<5<6<±<²<==1=D=E=`=p=q=‘=­=®=É=Ê=U>V>e>o>Š>>°>Ã>Ì>ä>ñ>÷>???.?;?L?U?a?u?œ?¥?°?È?Ü?ð?ú?@@-@E@M@l@|@ƒ@ @©@®@¯@É@Ê@SATAbAlA‡AšA­AÀAÉAãAðAöAÿABB(B6BFBUB]BgB|B‰BšB£B¯B»BÏBöBÿB CC1CGCQCYCgCuCC•C´CÄCËCèCñCöC÷CDD¼D½DŠE‹E¯E°EºE»EÖEéEFF-F6FJFbFoF…FFF¡F°F½FÈFÉFéFïFGG G%G&GMG^GdGnGG£G©G±GÄGÎGçGúGH*H9HMHUH]HgH}H–H©HÁHØHîHI IIII?IPIVI_IpI”IšI¢IµIÀIÙIìIJJ+J?JGJOJYJmJ„J—J±JÉJÝJòJûJKKK(K.K>K[KcK‚K—KžK»KÀKÁKâKèKúKL L?LUL\LyL~LL…LœL¤L®LÃLÐLáLêLMM9MTM`MgM…M¢M«M³MÁMÊMÒMNN)NFNUN_NdNƒN¡N¨N¹N¾N¿NÐNÑNÅO9P:PVPWPP‘P›PœPýPþP;Q?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopžþÿÿÿýÿÿÿtuvwxyz{|}~€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€¨‘0tÆž˜0€€¨‘0¨ ® ŠX×u$þ(2ñ7ô>éDåKkSÜYþ[K_exi4nÌq\w`| †<’pŸ¥×«F´\¹Ÿ½ŽÃ>Ì‹ÐlÖÝÙ>äVé‚õYùÌ N$#‘*ô4^:?@1EtM:X,]¯¶¸»¿ÂÅÇÊÌÏÑÔÙÝàãæèëîñô÷û  #&(.27:?CGPTZ]adip¥ , – Š V§1Zù4 d ö#Ø&R)<0Ë49©<¡BGÜJ¼M P—QES(U¹VtXÐYu[-]G_ObeßgØiõkÀn7q_s$uvwzy|%j6ƒr…ä‡LŠÖË‘”–J˜_šœHžôŸù¡ê£Â¥4¨²©¬Ä®>²Ï´þ¸ª»b¾QÀ‰ÂÊÄ*ǵÊmÍÏUÑíÔØnÚ™ÜÇÞ–à<ãâå©çUé™ë íàïØòþõhø³úQü@ÿ¯y}Ì D£ø…w°Ÿ¨®~ ±"/&(ê)¢+–-q/m1é4=79ã:´<i?AùCFEH(JÄKNPµQcSUÐVþY¯[],]°²³´µ·¹º¼½¾ÀÁÃÄÆÈÉËÍÎÐÒÓÕÖ×ØÚÛÜÞßáâäåçéêìíïðòóõöøùúüýþÿ    !"$%')*+,-/01345689;<=>@ABDEFHIJKLMNOQRSUVWXY[\^_`bcefghjklmnoqrs+]±R5R7RS¤S¦SºSÑSÓSçSþSTT6T8T!u8u:un~…~‡~Ý­ô­ö­o³†³ˆ³ó´ µ µˆµŸµ¡µ¶¶¶Ó¶ê¶ì¶9¿P¿R¿PügüiüŸ¶¸+BD«2Â2Ä2¥:¼:¾:Þ;õ;÷;E=\=^=,U:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€:ÿ€ !ÿ€UUU(U-UUUU(U-UUUU(U-U!j U-Uÿÿÿÿÿÿÿÿÿÿ„„Æ^„`„ÿ„„Æ^„`„ÿ„„Æ^„`„ÿ„„Æ^„`„ÿ„„Æ^„`„ÿ„„Æ^„`„ÿ„„Æ^„`„ÿ„„Æ^„`„ÿ„„Æ^„`„ÿÿÿÿÿÿÿÿåw¯-Uÿ@HP Officejet 4500 G510a-f (cópia 1)Ne03:winspoolHP Officejet 4500 G510a-fHP Officejet 4500 G510a-f (cópÜCÿ€ š 4dXXA4ÿÿÿÿDINU"ØìLXÎØSMTJÈHP Officejet 4500 G510a-fInputBinFORMSOURCERESDLLUniresDLLPaperSizeLETTEROrientationPORTRAITResolution600dpiColorModeColor24HPSimplifiedUITrueìIUPH¨3Â/KC j}(ÐÓ!XXKKÌÏbe ‰²C:\Arquivos de programas\Microsoft Office\OFFICE11\WINWORD.EXEiaüÀxÚíßoÛTÇóÃÉJK»2 í¶¶±u ¡%i›t0¶´ÍÚI¨[¶"†¦‰ uHüè6MŒÖ@â'ÞÚŸX$@Bâ…7 14U"H0VÑk'7ε–_“ÈüýD§Ç¾NìøØþø¦N]"xÙ¢ I¢!þã G†C=gŸ´/pl¡êx3¨ùÇy^“<åÜ#š±ÜeF9 qn㼟c1<õÞ¶r\åçLpþœã£¸û~Õë÷ÚD Î9Ž)Û]5¾ÊöÌÿ2\ç8ÌÊ7ˆîüq³2ÿòûÖ&•ÿ\Ðy¶|­_£kDƒß^ÿ8¹ûàÆf‡è£ü½ÅÛ¨4Fôó¡¹ÁZS»Î$;„Yáˆp<ÿãÔ#Õ’6K‹ž€vD ÑÈë¬&×Íêðüþ/ÕÏjr[n5¹ "]oÖSíë|ä[î_Þ¼*Ó-™ÿ8q©ˆS–ÌUµŸ’ýÅmÿHû,[ï(G¡×àö\/t=‘û^7ùß©sLÓ:¯Ìˆ§*Ö9–å}-wÙsܶÜeÏqÌsD7Ê™Ìé<Ñùõb,°ç9¦jcí†×TÚ¼iS‰gUf@¾ºèǼ"&5ºŸñúùcE;.ôm“¶~9Qaÿõ^3!㥄[#uy†óW¶;~KrL¦&Ü×æîÉççhÌYиœÔÛ:ÛÇ%äj}Ã9ÆËI#úòoÎãî"¿ãjåùÌ9NiJñì*çÊÒ*?ˆNÒEºÀ·é]â眤+ôÿ|Þ¡ËܶÊmy~ÎEuf¥ãô:à©YžÏ»ô,ÍÓ‹üð¦ås|ДBÝ¢%RyœNÓy~çyig„Ešå}êoÿÙ—9«½„9>ö¯ðvÃÙú l¨ÏtŸj§NçY*Ur3ÝÎV£¿‹»ê ó¸—¤úE—ø,ô*9Ž (!$‚£NpÌ¢(!$Š€@'äQ”C €Ñ 8!¤ÄQ`tÂ2œ'8Áçü>Np‚î„9Np‚æ\‹„œ ;aEœ 9aEœ€ë!ÇF €Ñ ¯À p€|N˜GQBH%F'¼„~BHI¢Àè„"®; uG(ï ú-—Þ5 Û÷9#)¯ñnçÝÞí!ɽ’û$?LÕû5¨e HÞ*yPò#’·I~Tòc’—<$yXòˆäí’wHÞIîß}ŽÊ:É:íòÕ`˜ÌúÓ€›½úLR†ÒÎÝ ºÅûÇíê8ö  ûSç7£K²(€K@ ¦ï…übtIÅp ÄnØ%i T\¢—…éšó¯F—L¡XýˆéZõïF—Ì XÀ¡E¿Ô³ÅÐöf_­K¦—äP,àìÛ†áPÏ°¡íëA¿$ÇûË$ %wl¿ŒeÙ4¹ÊðtMû´ W_…ÏI"p PŒÜ'—Àp Û;êôEàVvtÐ%ð\ÂËÎ6\‚߸xŒvÈ%ð\ÂÍX[.A_À%Àe¼a—d¿/©¶ä*C3Z{ªî™)~xCi§tÞwÔŽôÂ% ž] º$E™¾Q’ªéÍxîð{e Fé*—|‚ï½OtÌ%ð\ÂÌ“mº}¸.Š§Zp >×À%p ð³»-—Àp \\ö´ô}¸.µL4ì’©š+À©š±´ñ ±[®Ødúž¶Ýá\&ö¶éØ.K€âé]‚ž\—}M»¤êü—‹pºDû½¸¨ÿó—>ˆ [Ö¹ ™º»³‰²HP Officejet 4500 G510a-f (cópÜCÿ€ š 4dXXA4ÿÿÿÿDINU"ØìLXÎØSMTJÈHP Officejet 4500 G510a-fInputBinFORMSOURCERESDLLUniresDLLPaperSizeLETTEROrientationPORTRAITResolution600dpiColorModeColor24HPSimplifiedUITrueìIUPH¨3Â/KC j}(ÐÓ!XXKKÌÏbe ‰²C:\Arquivos de programas\Microsoft Office\OFFICE11\WINWORD.EXEiaüÀxÚíßoÛTÇóÃÉJK»2 í¶¶±u ¡%i›t0¶´ÍÚI¨[¶"†¦‰ uHüè6MŒÖ@â'ÞÚŸX$@Bâ…7 14U"H0VÑk'7ε–_“ÈüýD§Ç¾NìøØþø¦N]"xÙ¢ I¢!þã G†C=gŸ´/pl¡êx3¨ùÇy^“<åÜ#š±ÜeF9 qn㼟c1<õÞ¶r\åçLpþœã£¸û~Õë÷ÚD Î9Ž)Û]5¾ÊöÌÿ2\ç8ÌÊ7ˆîüq³2ÿòûÖ&•ÿ\Ðy¶|­_£kDƒß^ÿ8¹ûàÆf‡è£ü½ÅÛ¨4Fôó¡¹ÁZS»Î$;„Yáˆp<ÿãÔ#Õ’6K‹ž€vD ÑÈë¬&×Íêðüþ/ÕÏjr[n5¹ "]oÖSíë|ä[î_Þ¼*Ó-™ÿ8q©ˆS–ÌUµŸ’ýÅmÿHû,[ï(G¡×àö\/t=‘û^7ùß©sLÓ:¯Ìˆ§*Ö9–å}-wÙsܶÜeÏqÌsD7Ê™Ìé<Ñùõb,°ç9¦jcí†×TÚ¼iS‰gUf@¾ºèǼ"&5ºŸñúùcE;.ôm“¶~9Qaÿõ^3!㥄[#uy†óW¶;~KrL¦&Ü×æîÉççhÌYиœÔÛ:ÛÇ%äj}Ã9ÆËI#úòoÎãî"¿ãjåùÌ9NiJñì*çÊÒ*?ˆNÒEºÀ·é]â眤+ôÿ|Þ¡ËܶÊmy~ÎEuf¥ãô:à©YžÏ»ô,ÍÓ‹üð¦ås|ДBÝ¢%RyœNÓy~çyig„Ešå}êoÿÙ—9«½„9>ö¯ðvÃÙú l¨ÏtŸj§NçY*Ur3ÝÎV£¿‹»ê ó¸—¤úE—ø,ô*9Ž (!$‚£NpÌ¢(!$Š€@'äQ”C €Ñ 8!¤ÄQ`tÂ2œ'8Áçü>Np‚î„9Np‚æ\‹„œ ;aEœ 9aEœ€ë!ÇF €Ñ ¯À p€|N˜GQBH%F'¼„~BHI¢Àè„"®; uG(ï ú-—Þ5 Û÷9#)¯ñnçÝÞí!ɽ’û$?LÕû5¨e HÞ*yPò#’·I~Tòc’—<$yXòˆäí’wHÞIîß}ŽÊ:É:íòÕ`˜ÌúÓ€›½úLR†ÒÎÝ ºÅûÇíê8ö  ûSç7£K²(€K@ ¦ï…übtIÅp ÄnØ%i T\¢—…éšó¯F—L¡XýˆéZõïF—Ì XÀ¡E¿Ô³ÅÐöf_­K¦—äP,àìÛ†áPÏ°¡íëA¿$ÇûË$ %wl¿ŒeÙ4¹ÊðtMû´ W_…ÏI"p PŒÜ'—Àp Û;êôEàVvtÐ%ð\ÂËÎ6\‚߸xŒvÈ%ð\ÂÍX[.A_À%Àe¼a—d¿/©¶ä*C3Z{ªî™)~xCi§tÞwÔŽôÂ% ž] º$E™¾Q’ªéÍxîð{e Fé*—|‚ï½OtÌ%ð\ÂÌ“mº}¸.Š§Zp >×À%p ð³»-—Àp \\ö´ô}¸.µL4ì’©š+À©š±´ñ ±[®Ødúž¶Ýá\&ö¶éØ.K€âé]‚ž\—}M»¤êü—‹pºDû½¸¨ÿó—>ˆ [Ö¹ ™º»³dT' Apostila da Linguagem PASCAL Título Normþÿ ÿÿÿÿ ÀF#Documento do Microsoft Office Word MSWordDocWord.Document.8ô9²q]J5ÈG\Sÿÿÿÿ‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œþÿÿÿŸ ¡¢£¤¥¦§¨þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿà…ŸòùOh«‘+'³Ù0U˜ ÈÔø (4 T ` l x„Œ”œ¤ä Apostila da Linguagem PASCALNewton Schoeder de Carvalho Normal.dotSEDU2Microsoft Office Word@FÃ#@8>{>@Rÿ€ÉJÌ@Rÿ€ÉJÌ]J5ÈG\SÿÿÿÿVT$mO ž)&" WMFCì­ pp:lìÈUT#m EMFp:‚ÌÏÌ#¼o   ìÈ% €Rp­ÿÿÿ@Times New RomanœW/G‡z €ÿTimes ew Romanü%µ0ü%Ln¯0&dv%   TT >E ›-©‡@!¯‡@ ˆLìÈP1*TTF >j ›-©‡@!¯‡@F ˆLìÈP %!ìÈ" ÿÿÿÿRpYÿÿÿ¼@Times New RomanÉ0XÉ0%T%…‘|É0Ý &|‘|É0°%°%ØLß0§|‘|tá—|Q|‘|Ý \Dª0ÿÿðý˜6%ØLß0%`&É0G‡z €ÿTimes ew Romanÿÿÿ@&µ0@&Ln¯0X&dv%  T ’V»-©‡@!¯‡@’ï LìÈŒUniversidade Católica de Pelotasy].TJJA.]T]J*yT8T..JT*]J*fJ.T8TATT¼V-©‡@!¯‡@¼ïLìÈP Z!ìÈ" ÿÿÿÿ TÐa Ö-©‡@!¯‡@³LìÈxEscola de Informática oAJT.T*]J*A]8TJ‹T8.JT*TTb » Ö-©‡@!¯‡@b ³LìÈP Z!ìÈ" ÿÿÿÿRpœÿÿÿ@Times New RomanG‡z €ÿTimes ew Romanÿÿÿ@&µ0@&Ln¯0X&dv%  TT' ÛS L-©‡@!¯‡@' 5LìÈP -!ìÈ" ÿÿÿÿ TT' QS Â-©‡@!¯‡@' «LìÈP -!ìÈ" ÿÿÿÿ TT' ÇS 8-©‡@!¯‡@' !LìÈP -!ìÈ" ÿÿÿÿ TT' =S ®-©‡@!¯‡@' —LìÈP -!ìÈ" ÿÿÿÿ TT' ³S $-©‡@!¯‡@' LìÈP -!ìÈ" ÿÿÿÿ TT' )S š-©‡@!¯‡@' ƒLìÈP -!ìÈ" ÿÿÿÿ TT' ŸS -©‡@!¯‡@' ùLìÈP -!ìÈ" ÿÿÿÿ TT' S †-©‡@!¯‡@' oLìÈP -!ìÈ" ÿÿÿÿ TT' ‹S ü-©‡@!¯‡@' åLìÈP -!ìÈ" ÿÿÿÿ TT' S r-©‡@!¯‡@' [LìÈP -!ìÈ" ÿÿÿÿ TT' wS è-©‡@!¯‡@' ÑLìÈP -!ìÈ" ÿÿÿÿ TT' íS ^ -©‡@!¯‡@' G LìÈP -!ìÈ" ÿÿÿÿ TT' c S Ô -©‡@!¯‡@' ½ LìÈP -!ìÈ" ÿÿÿÿ TT' Ù S J -©‡@!¯‡@' 3 LìÈP -!ìÈ" ÿÿÿÿ TT' O S À -©‡@!¯‡@' © LìÈP -!ìÈ" ÿÿÿÿ TT' Å S 6 -©‡@!¯‡@'  LìÈP -!ìÈ" ÿÿÿÿRpÿÿÿ¼@Times New RomanG‡z €ÿTimes ew Romanÿÿÿ@&µ0@&Ln¯0X&dv%  T¤B ¬X -©‡@!¯‡@¬# LìȈL i n g u a g e m P a s c a l™?E?‹?}?‹?}?}?o?Â??™?}?a?o?}?ETT¡B X -©‡@!¯‡@¡# LìÈP }!ìÈ" ÿÿÿÿ % TT' ] S Î -©‡@!¯‡@' · LìÈP -!ìÈ" ÿÿÿÿ T`ä Ó h D -©‡@!¯‡@ä - LìÈTpor22!TTi Ó • D -©‡@!¯‡@i - LìÈP -!ìÈ" ÿÿÿÿ TT' I S º -©‡@!¯‡@' £ LìÈP -!ìÈ" ÿÿÿÿRpœÿÿÿ@Times New RomanG‡z €ÿTimes ew Romanÿÿÿ@&µ0@&Ln¯0X&dv%  Tô°¿ 0-©‡@!¯‡@°LìÈ„Paulo Roberto Gomes Luzzardi8,22C22,!2H2N,';2--,!2TTž ¿ Ê 0-©‡@!¯‡@ž LìÈP -!ìÈ" ÿÿÿÿ % TT' 5S ¦-©‡@!¯‡@' LìÈP -!ìÈ" ÿÿÿÿ TT' «S -©‡@!¯‡@' LìÈP -!ìÈ" ÿÿÿÿ TT' !S ’-©‡@!¯‡@' {LìÈP -!ìÈ" ÿÿÿÿ TT' —S -©‡@!¯‡@' ñLìÈP -!ìÈ" ÿÿÿÿ TT' S ~-©‡@!¯‡@' gLìÈP -!ìÈ" ÿÿÿÿ TT' ƒS ô-©‡@!¯‡@' ÝLìÈP -!ìÈ" ÿÿÿÿ TT' ùS j-©‡@!¯‡@' SLìÈP -!ìÈ" ÿÿÿÿ TT' oS à-©‡@!¯‡@' ÉLìÈP -!ìÈ" ÿÿÿÿ TT' åS V-©‡@!¯‡@' ?LìÈP -!ìÈ" ÿÿÿÿ Rpœÿÿÿ¼@Times New RomanG‡z €ÿTimes ew N &’WMFCpp:Romanÿÿÿ@&µ0@&Ln¯0X&dv% T|n[Û Ì-©‡@!¯‡@n·LìÈ\Revisão:H,2'22!% T”Ü ]Þ Î-©‡@!¯‡@Ü · LìÈd Junho, 1996(22222222TTß ] Î-©‡@!¯‡@ß ·LìÈP m-!ìÈ" ÿÿÿÿ TT' ÓS D-©‡@!¯‡@' -LìÈP -!ìÈ" ÿÿÿÿ TT' IS º-©‡@!¯‡@' £LìÈP e-!ìÈ" ÿÿÿÿ TT' ¿S 0-©‡@!¯‡@' LìÈP m-!ìÈ" ÿÿÿÿ TT' 5S ¦-©‡@!¯‡@' LìÈP a-!ìÈ" ÿÿÿÿ TT' «S -©‡@!¯‡@' LìÈP -!ìÈ" ÿÿÿÿ%  T”O!O’-©‡@!¯‡@O} LìÈdBibliografiaC822,2"2TTP!…’-©‡@!¯‡@P}LìÈP x6!ìÈ" ÿÿÿÿ % TTO—{-©‡@!¯‡@OñLìÈP p-!ìÈ" ÿÿÿÿ % TxO B~-©‡@!¯‡@OiLìÈ\CARROLL8HHHHNCC% TC€-©‡@!¯‡@Ci LìÈd, David W. oH,22_TT3€-©‡@!¯‡@iLìÈP-4!TT4L€-©‡@!¯‡@4iLìÈP eRpœÿÿÿ¼@Times New RomanG‡z €ÿTimes ew Romanÿÿÿ@&µ0@&Ln¯0X&dv% TðJ ~-©‡@!¯‡@MiLìÈ„Programação em TURBO PASCAL ='22'2O2,22,O=HCCH=C8CC=% TT + ~-©‡@!¯‡@ iLìÈP i% Tp, Ž €-©‡@!¯‡@, iLìÈXMcGrawY,H!,HTTŽ ® €-©‡@!¯‡@Ž iLìÈP-2!Td¯ J€-©‡@!¯‡@¯ iLìÈTHillHTTKw€-©‡@!¯‡@KiLìÈP I-!ìÈ" ÿÿÿÿ TTO…{ö-©‡@!¯‡@OßLìÈP l-!ìÈ" ÿÿÿÿ % TxOûcl-©‡@!¯‡@OWLìÈ\RAMALHOnHH^HCNN% TTdý|n-©‡@!¯‡@dWLìÈP,CT}ý\n-©‡@!¯‡@}W LìÈd Luciano & n;2,,22M% Tp]ûæl-©‡@!¯‡@]WLìÈXPRATES<HHCC8% T„çý_ n-©‡@!¯‡@çW LìÈ`, Rubens eC22,2'TT` ý€ n-©‡@!¯‡@` WLìÈP-e!T¨ ýÚ n-©‡@!¯‡@ WLìÈl Turbo Pascal, P=2!228,',,% TÄÛ ýHl-©‡@!¯‡@Û WLìÈtCartão de ReferênciaC2'222,C,!,',8,2% TTIûal-©‡@!¯‡@IWLìÈP,s% T´býn-©‡@!¯‡@bWLìÈp Livros Técnicos K;2!2'=,,2,2'!ìÈ" ÿÿÿÿ TèOsTä-©‡@!¯‡@OÍLìÈ€e Científicos Editora S.A.,C,2!,2'=22!,8HTTUsä-©‡@!¯‡@UÍLìÈP n-!ìÈ" ÿÿÿÿ% €6È6ìÈ6ì66Ç6ëÇ6ë66Æ6êÆ6ê66Å6éÅ6é66Ä6èÄ6è66Ã6çÃ6ç66Â6æÂ6æ66Á6åÁ6å66À6äÀ6ä6 6 ¿6ã¿6ã 6  6 ¾6â¾6â 6  6 ½6á½6á 6  6 ¼6à¼6à 6  6 »6ß»6ß 6 6º6Þº6Þ66¹6ݹ6Ý66¸6ܸ6Ü66·6Û·6Û66¶6Ú¶6Ú6  ^`.û¼"System-ûòÿ@Times New Roman-  2 )·a_1¼ 2 )¾a_ ¼,_a'ÿÿûäÿ¼@Times New Roman-;2 ò a_Universidade Católica de Pelotas        2 €a_ ¼,_a'ÿÿ,2 ¡4a_Escola de Informática         2 ¡Ea_ ¼,_a'ÿÿûïÿ@Times New Roman- 2 ·¹a_ ¼,_a'ÿÿ 2 ˹a_ ¼,_a'ÿÿ 2 ß¹a_ ¼,_a'ÿÿ 2 ó¹a_ ¼,_a'ÿÿ 2 ¹a_ ¼,_a'ÿÿ 2 ¹a_ ¼,_a'ÿÿ 2 /¹a_ ¼,_a'ÿÿ 2 C¹a_ ¼,_a'ÿÿ 2 W¹a_ ¼,_a'ÿÿ 2 k¹a_ ¼,_a'ÿÿ 2 ¹a_ ¼,_a'ÿÿ 2 “¹a_ ¼,_a'ÿÿ 2 §¹a_ ¼,_a'ÿÿ 2 »¹a_ ¼,_a'ÿÿ 2 Ϲa_ ¼,_a'ÿÿ 2 ã¹a_ ¼,_a'ÿÿûÖÿ¼@Times New Roman-82 Ëa_L i n g u a g e m P a s c a l       !      2 ¦a_ ¼,_a'ÿÿ- 2 (¹a_ ¼,_a'ÿÿ2 <­a_por  2 <Äa_ ¼,_a'ÿÿ 2 P¹a_ ¼,_a'ÿÿûïÿ@Times New Roman-52 dNa_Paulo Roberto Gomes Luzzardi       2 d$a_ ¼,_a'ÿÿ- 2 x¹a_ ¼,_a'ÿÿ 2 Œ¹a_ ¼,_a'ÿÿ 2  ¹a_ ¼,_a'ÿÿ 2 ´¹a_ ¼,_a'ÿÿ 2 ȹa_ ¼,_a'ÿÿ 2 ܹa_ ¼,_a'ÿÿ 2 ð¹a_ ¼,_a'ÿÿ 2 ¹a_ ¼,_a'ÿÿ 2 ¹a_ ¼,_a'ÿÿûïÿ¼@Times New Roman-2 -na_Revisão:  -2 -¬ a_ Junho, 1996     2 -a_ ¼,_a'ÿÿ 2 A¹a_ ¼,_a'ÿÿ 2 U¹a_ ¼,_a'ÿÿ 2 i¹a_ ¼,_a'ÿÿ 2 }¹a_ ¼,_a'ÿÿ 2 ‘¹a_ ¼,_a'ÿÿ-2 ¥d a_Bibliografia    2 ¥»a_ ¼ ,_a'ÿÿ- 2 ¹da_ ¼,_a'ÿÿ-2 Ída_CARROLL: -2 ͹ a_, David W.     2 Ía_-¼ 2 Í a_ ¼ûïÿ¼@Times New Roman-42 Ía_Programação em TURBO PASCAL       - 2 Í a_ ¼-2 Ía_McGraw  2 ÍLa_-¼2 ÍRa_Hill  2 Íla_ ¼,_a'ÿÿ 2 áda_ ¼,_a'ÿÿ-2 õda_RAMALHO:  - 2 õ¿a_,¼2 õà a_ Luciano &    -2 õa_PRATES -2 õW a_, Rubens &   2 õ—a_-¼"2 õa_ Turbo Pascal,    -)2 õa_Cartão de Referência      - 2 õ˜a_,¼-%2 õœa_ Livros Técnicos c    ,_a'ÿÿ22 da_e Científicos Editora S.A.       2 a_ ¼,_a'ÿÿ-__aa__aa__``__``__``__``^^``^^``^^__^^__^^__^^__]]__]]__]]^^]]^^]]^^]]^^\\^^‰²€$U/,U@@ÿÿUnknownÿÿÿÿÿÿÿÿÿÿÿÿG‡z €ÿTimes New Roman5€Symbol3& ‡z €ÿArialWTms RmnTimes New RomanG€  MS Mincho-ÿ3ÿ fg5& ‡za€ÿTahomaBˆÄhsÊ÷&sÊ÷&Q-J5È]®ƒeJ5È]®e!€4dTdT2ƒ€ÜHP ðÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿw¯²ÿÿApostila da Linguagem PASCALNewton Schoeder de CarvalhoSEDU